你的浏览器不支持本网站所要求的功能, 现在看到的是本网站简化版本.
为了获得最佳体验, 请使用最新的Chrome, Safari, Firefox 或 Edge 浏览器.
2. 关系数据库
2.3 关系的完整性
### 关系的完整性
- 对关系的约束条件
- 使关系的值满足语义要求
### 关系的完整性约束
- 实体完整性 (Entity Integrity)
- 参照完整性 (Referential Integrity)
- 用户定义的完整性 (User-defined Integrity)
### 实体完整性
- 关系中的每个实体都有唯一标识
- 又名主键约束或主码约束
- 实体完整性约束是必须满足的
### 规则 2.1
- 若属性 (或属性组) $A$ 是基本关系 $R$ 的主属性, 则 $A$ 的值不允许为空值, 且 $A$ 的值必须唯一
### 参照完整性
- 维护关系之间的参照关系
- 又名外键约束或外码约束
- 当表相关时必须满足参照完整性
### 外码
- 设 $F$ 是基本关系 $R$ 的一组属性, 但不是 $R$ 的主码
- $K\_s$ 是基本关系 $S$ 的主码
- 如果 $F$ 与 $K\_s$ 相对应, 则称 $F$ 是 $R$ 的外码 (foreign key)
- $R$ 是参照关系 (referencing relation), $S$ 是被参照关系 (referenced relation) 或目标关系 (target relation)
- 关系 $R$ 和 $S$ 不一定是不同的关系
### 参照完整性规则
- 若属性 (或属性组) $F$ 是基本关系 $R$ 的外码, 它与基本关系 $S$ 的主码 $K\_s$ 相对应, 对于 $R$ 中每个元组在 $F$ 上的值必须满足以下条件:
- 或者取空值 ($F$ 的每个属性值均为空值)
- 或者等于 $S$ 中某个元组的主码值
### 用户定义的完整性
- 应用领域特定的约束条件
- 体现具体领域中的语义约束
- 由用户根据应用需求自定义
### 用户定义的完整性
- 属性的唯一性
- 非主属性的非空性
- 关系模型提供机制来定义和验证这些完整性约束

### 2.3 关系的完整性
- 什么是关系的完整性约束, 它包含哪几种类型?
- 实体完整性是什么? 主键约束如何确保实体完整性?
- 参照完整性的含义是什么?
- 什么是外码?
- 参照关系和被参照关系的概念是什么?
- 用户定义的完整性是什么意思?
----
[ 2.2 关系操作](dbds-2-2.html#/overview)
[| 练习 |](dbds-exec.html)
[ 2.4 关系代数](dbds-2-4.html#/overview)