关系数据库关系的完整性

1、关系:D1×D2×…×Dn的子集叫做在域D1,D2,…Dn上的关系,表示为R(D1,D2,…Dn),R表示关系的名字,n是关系的。关系中的每个元素是关系中的元组。
2、关系模型中有三类完整性约束:实体完整性、参照完整性、用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。用户定义的完整性是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。
3、实体完整性规则:若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。所谓空值就是“不知道”或“不存在”的值。
按照实体完整性的规则的规定,基本关系的主码都不能取控制。如果主码由若干属性组成,则所有这些主属性都不能取空值。
对于实体完整性规则说明:
(1)、实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。如学生关系对应于学生的集合。
(2)、现实世界中的实体是可区分的,即他们具有某种唯一性标识。例如每个学生都是独立的个体,是不一样的。
(3)、关系模型中以主码作为唯一性标识。
(4)、主码中的属性,即主属性不能取空值,如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与(2)相矛盾,因此这个规则称为实体完整性。
4、参照完整性:(1)设F是基本关系R的一个或一组属性,但不是关系R的码。K是基本关系S的主码。如果F与K相对应,则称F是R的外码(foreign key)。并称基本关系R为参照关系。基本关系S为被参照关系。外码并不一定要与相应的主码同名。
(2)若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码K相对应(基本关系R与S不一定是不同的关系),则对于R中每个元组在F上的值必须为:?或者取空值(F的每个属性值均为空值)?或者等于S中的某个元组的主码值。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。