数据库的完整性是指数据的正确性和相容性DBMS必须实现:
- 提供定义完整性约束条件的机制
- 提供完整行检查的方法
- 进行违约处理
5.1 实体完整性
5.1.1 定义实体完整性
单属性构成的码:列级/表级姐约束条件
多属性构成的码:表级约束条件
5.1.2 实体完整性检查和违约处理
- 检查主码值是否唯一
- 检查主码的各个属性是否为空
5.2 参照完整性
5.2.1 定义参照完整性
5.2.2 参照完整性检查和违约处理
- 拒绝(NOT ACTION)执行默认策略
- 级联(CASCADE)操作
- 设置为空值
5.3 用户定义的完整性
5.3.1 属性上的约束条件
- 属性上约束条件的定义
- 不允许空值(NOT NULL)
- 列值唯一(UNIQUE)
- 用CHECK短语指定列值应该满足的条件
5.3.2 元组上的约束条件
- 元组上约束条件的定义
用CHECK短语定义元组上的约束条件,即元组级的限制 - 元组上约束条件的检查和违约处理
5.4 完整性约束命名子句
-
完整性约束命名子句
CONSTRAINT <完整性约束条件名> <完整性约束条件> -
修改表中的完整性限制
先删除,再增加(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 激活触发器
执行顺序:
- 执行BEFORE触发器
- 寄货触发器的SQL语句
- 执行AFTER触发器
5.7.3 删除触发器
DROP TRAGGER <触发器名>ON<表名>