关系数据库——关系的完整性约束

引言

关系模型中有三类完整性约束:实体完整性、参照完整性、用户自定义完整性

其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称为关系的两个不变性,应该由关系系统自动支持。

用户定义的完整性约束条件是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。

实体完整性

若属性(指一个或者一组属性)A是基本关系R的主属性,则A不能取空值。

规则说明:

  1. 实体完整性规则是针对基本关系而言的。
  2. 现实世界中的实体是可区分的,即他们具有某种唯一性标识。
  3. 相应地,关系模型中以主码作为唯一标识。
  4. 主码中的属性即主属性不能取空值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,与第二条相互矛盾,因此,这个规则称为实体完整性规则。

参照完整性

外码:设F是基本关系R的一个或者一组属性,但不是关系R的码,K(S)是基本关系S的主码。如果F与K(S)相对应,则称F是R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或是目标关系。

外码不一定要与相应的主码同名。

例:

学生(学号,姓名,性别,专业号,年龄)

专业(专业号,专业名)

若属性(或者属性组)F是基本关系R的外码,他与基本关系S的主码K(S)相对应,则对于R中每个元组在F上的取值要么取空值,要么等于S中某个元组的主码值。

用户自定义完整性

任何关系型数据库系统都应该支持实体完整性和参照完整性。这是关系模型所要求的。

除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的约束条件就是针对某一具体关系数据库的约束条件,它反映了某一具体应用所涉及的数据必须满足的语义要求。

例如在学生关系中,要求学生不能没有姓名,学生课程成绩关系中要求成绩必须在0到100之间。

猜你喜欢

转载自blog.csdn.net/qq_38234015/article/details/89105305