第 2 章 · 第五节 · 课件第 35 页
关系的三类完整性
实体完整性、参照完整性和用户自定义完整性。

重 点
实体完整性和参照完整性是关系模型必须满足的,由 DBMS 自动支持。
实体完整性、参照完整性和用户自定义完整性。

实体完整性和参照完整性是关系模型必须满足的,由 DBMS 自动支持。
主码的值不能为空,也不能部分为空。
向学生表插入一个学号为空的学生,数据库会拒绝,因为无法区分这个学生。
主码中的 sno 为空,违反实体完整性。成绩为空是允许的,它不是主属性。
外码的值必须在被参照的主码中存在,或者为空。
| 方法 | 做法 | SQL |
|---|---|---|
| 拒绝删除 | 参照它的记录还在,就不允许删除 | RESTRICT |
| 级联删除 | 连同参照它的记录一起删除 | CASCADE |
| 置空 | 把参照它的记录的外码置为空 | SET NULL |
置空的前提是外码允许为空。sc 的 sno 是主码的一部分,不能为空,所以只能用前两种方法。
| 订单号 | 用户 | 商家ID |
|---|
具体应用对数据的要求,例如成绩在 0 到 100 之间。

第 5 章用 CHECK、NOT NULL、UNIQUE 等约束实现用户自定义完整性。
这是具体应用对数据的语义要求,属于用户自定义完整性。