1
数据库技术及应用
1.7.4.1 4.4.1 完整性的概念
4.4.1 完整性的概念

数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability),是为防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。数据完整性分为4类:实体完整性(Entity Integrity)、域完整性(Domain Integrity)、参照完整性(Referential Integrity)和用户定义的完整性(Userdefined Integrity)。

1.实体完整性(Entity Integrity)

实体完整性规定表的每一行在表中是唯一的实体。表中定义的UNIQUE、PRIMARYKEY和IDENTITY约束就是实体完整性的体现。

2.域完整性(Domain Integrity)

域完整性是指数据库表中的列必须满足某种特定的数据类型或约束。其中约束又包括取值范围、精度等规定。表中的CHECK、FOREIGNKEY约束和DEFAULT、NOT NULL定义都属于域完整性的范畴。

3.参照完整性(Referential Integrity)

参照完整性是指两个表的主关键字和外关键字的数据对应一致。它确保了有主关键字的表中对应其他表的外关键字的行存在,即保证了表之间数据的一致性,防止数据丢失或无意义的数据在数据库中扩散。参照完整性是建立在外关键字和主关键字之间或外关键字和唯一性关键字之间的关系上的。在SQL Server2008中,参照完整性作用表现在如下几个方面:

(1)禁止在表中插入包含主表中不存在的关键字的数据行。

(2)禁止会导致表中的相应值孤立的主表中的外关键字值改变。

(3)禁止删除在表中有对应记录的主表记录。

4.用户定义的完整性(Userdefined Integrity)

不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。SQL Server提供了定义和检验这类完整性的机制,以便用统一的系统方法来处理它们,而不是用应用程序来承担这一功能。其他的完整性类型都支持用户定义的完整性。