关系的完整性
关系的完整性规则是对关系的某种约束条件。关系的值随着时间变化时应该要满足一些约束条件。
关系模型中有三类完整性约束:实体完整性(entity integrity)、参照完整性(referential integrity)和用户定义完整性(user-defined integrity)。其中实体完整性和参照完整性是关系模型必须满足的完整性约束,被称作是关系的两个不变性,应该由关系系统自动支持。用户定义的完整性是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。
实体完整性
关系数据库中的每个元组应该是可区分的,唯一的。因此需要实体完整性进行约束:
- 若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。所谓空值就是指“不知道”、“不存在”或“无意义”。
- 实体完整性规则是对于基本关系而言的。
- 相应的,关系模型中以主码作为唯一性标识。
参照完整性
关系与关系之间可能存在相互引用、相互约束的情况。下面先引入外码的概念,再给出参照完整性的定义
- 外码(foreign key),设F是关系R的一个或一组属性,但不是R的主码。而K是关系S的主码,若F与K相对应,则称F是R的外码,关系R和关系S不一定是不同的关系。
- 参照完整性,若F是关系R的外码,它与关系S的