关系数据库关系的完整性
时间:2021-07-01 10:21:17
帮助过:38人阅读
1、关系:D1×D2×…×Dn的子集叫做在域D1,D2,…Dn上的关系,表示为R(D1,D2,…Dn),R表示关系的名字,n是关系的 目 或 度 。关系中的每个元素是关系中的元组。 2、关系模型中有三类完整性约束: 实体完整性、参照完整性、用户定义的完整性 。其中实体完整性
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中的某个元组的主码值。