关系数据库与SQL Server 2012(第3版)
上QQ阅读APP看书,第一时间看更新

1.5 关系的完整性规则

关系的完整性规则也可称为关系的约束条件,它是对关系的一些限制和规定。通过这些限制保证数据库中的数据合理、正确和一致。关系的完整性规则包括实体完整性、参照完整性和域完整性3个方面。

1.5.1 实体完整性

这条规则要求,在任何关系的任何一个元组中,主键的值不能为空值。

这条规定的现实意义是,关系模型对应的是现实世界的数据实体,而主键是实体唯一性的表现,没有主键就没有实体,所有主键不能是空值。这是实体存在的最基本的前提,所以称之为实体完整性。

1.5.2 参照完整性

参照完整性规则也可称为引用完整性规则。这条规则要求“不引用不存在的实体”,是对关系外键的规定,要求外键取值必须是客观存在的,即不允许在一个关系中引用另一个关系不存在的元组。

例如,前面给出的学生表和系表中,系编号是学生表的外键,也是系表的主键。根据参照完整性规则,要求学生表系编号的取值只能是以下两种情况:

①取空值。表明该学生还未被分配到任何系。例如,某位学生还没有确定在哪个系,则该学生元组的系编号处可空着不写,待以后填写。注意空值不是0或空格。

②若取非空值,则它必须是系表中系编号存在的值,即学生表系编号的值必须和系表系编号的值保持一致,因为一个学生不能属于一个不存在的系。

1.5.3 域完整性

由用户根据实际情况对数据库中数据的内容所作的规定称为域完整性规则,也称用户定义完整性规则。通过这些规则限制数据库只接受符合完整性约束条件的数据,不接受违反约束条件的数据,从而保证数据库的数据合理可靠。

例如,表中的性别数据只能是男和女。对年龄数据也应该有一定的限制,不能是任意值。