关系数据库关系的完整性

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中的某个元组的主码值。

posted @ 2018-03-15 18:24  zhchoutai  阅读(1648)  评论(0编辑  收藏  举报