实体完整性

  • 检查主码值是否唯一,如果不唯一则拒绝插入或修改

  • 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改

  • 为避免对基本表进行全表扫描,RDMBS核心一般都在主码上自动建立一个 索引

参照完整性

  • 外码,一个参照完整性将两个表中的相应元组联系起来
  • 对被参照表和参照表进行增删改的时候有可能破坏参照完整性,必须进行检查

用户定义的完整性

  • 针对某一具体应用的数据必须满足的语义要求
    • 属性上的:NOT NULL、UNIQUE或CHECK
    • 元组上的:CREATE TABLE的CHECK

完整性约束命名字句

1
CONSTRAINT <完整性约束条件名> <完整性约束条件>;
  • 完整性约束条件包括:NOT NULLUNIQUEPRIMARY KEY()FOREIGN KEY() REFERENCESCHECK
  • 查询 NOT NULLCHECK 约束,使用字段 SEARCH_CONDITION
  • 查询 UNIQUEPRIMARY KEY 约束,使用字段 INDEX_NAME

断言

1
CREATE ASSERTION <断言名> <CHECK字句>

触发器

1
2
3
4
5
CREATE TRIGGER <触发器名>
{BEFORE | AFTER} <触发事件> ON <表名>
REFERENCING NEW|OLD ROW AS <变量>
FOR EACH {ROW|STATEMENT}
[WHEN <触发条件>] <触发动作>;
  • 触发器只能定义在基本表上,不能定义在视图上