数据库的完整性是指数据的正确性相容性DBMS必须实现:

  1. 提供定义完整性约束条件的机制
  2. 提供完整行检查的方法
  3. 进行违约处理

5.1 实体完整性

5.1.1 定义实体完整性

单属性构成的码:列级/表级姐约束条件
多属性构成的码:表级约束条件

5.1.2 实体完整性检查和违约处理

  1. 检查主码值是否唯一
  2. 检查主码的各个属性是否为空

5.2 参照完整性

5.2.1 定义参照完整性

5.2.2 参照完整性检查和违约处理

  1. 拒绝(NOT ACTION)执行默认策略
  2. 级联(CASCADE)操作
  3. 设置为空值

5.3 用户定义的完整性

5.3.1 属性上的约束条件

  1. 属性上约束条件的定义
    1. 不允许空值(NOT NULL)
    2. 列值唯一(UNIQUE)
    3. 用CHECK短语指定列值应该满足的条件

5.3.2 元组上的约束条件

  1. 元组上约束条件的定义
    用CHECK短语定义元组上的约束条件,即元组级的限制
  2. 元组上约束条件的检查和违约处理

5.4 完整性约束命名子句

  1. 完整性约束命名子句
    CONSTRAINT <完整性约束条件名> <完整性约束条件>

  2. 修改表中的完整性限制
    先删除,再增加(ALTER TABLe)

5.7 触发器

触发器是用户定义在关系表上的一类由事件驱动的特殊过程

5.7.1 定义触发器

cerate trigger <触发器名>
{before|after} <触发器事件> on <表名>
referencing new|old row as <变量>
for each {row|statement}
[where <触发条件>]<触发动作>

5.7.2 激活触发器

执行顺序:

  1. 执行BEFORE触发器
  2. 寄货触发器的SQL语句
  3. 执行AFTER触发器

5.7.3 删除触发器

DROP TRAGGER <触发器名>ON<表名>