SQLServer数据库实用技术(55)
时间:2007-12-23 来源:不详 作者:迈克DB
库系统,尤其是多用户的关系数据库系统首要关注的问题。数据完整性因此而提出。本章将讲述数据完整性的概念及其在SQLServer中的实现方法。
数据完整性(DataIntegrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。数据完整性分为四类:实体完整性(EntityIntegrity)、域完整
性(DomainIntegrity)、参照完整性(ReferentialIntegrity)、用户定义的完整性(User-definedIntegrity)。
9.1.1实体完整性(EntityIntegrity)
实体完整性规定表的每一行在表中是惟一的实体。表中定义的UNIQUEPRIMARYKEY和IDENTITY约束就是实体完整性的体现。
9.1.2域完整性(DomainIntegrity)
域完整性是指数据库表中的列必须满足某种特定的数据类型或约束。其中约束又包括取值范围、精度等规定。表中的CHECK、FOREIGNKEY约束和DEFAULT、NOTNULL定义都属于域完整性的范畴。
9.1.3参照完整性(ReferentialIntegrity)
参照完整性是指两个表的主要害字和外要害字的数据应对应一致。它确保了有主要害字的表中对应其它表的外要害字的行存在,即保证了表之间的数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散。参照完整性是建立在外要害字和主要害字之间或外要害字和惟一性要害字之间的关系上的。在SQLServer中,参照完整性作用表现在如下几个方面: 内容来自dedecms
禁止在从表中插入包含主表中不存在的要害字的数据行;
禁止会导致从表中的相应值孤立的主表中的外要害字值改变;
禁止删除在从表中的有对应记录的主表记录。
9.1.4用户定义的完整性(User-definedIntegrity)
不同的关系数据库系统根据其应用环境的不同,往往还需要一些非凡的约束条件。用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。SQLServer提供了定义和检验这类完整性的机制,以便用统一的系统方法来处理它们,而不是用应用程序来承担这一功能。其它的完整性类型都支持用户定义的完整性。
SQLServer提供了一些工具来帮助用户实现数据完整性,其中最主要的是:规则(Rule)、缺省值(Default)、约束(Constraint)和触发器(Trigger)。其中约束在前面的章节中已经介绍,触发器将在后面的章节中介绍。本章将介绍规则和缺省值。
文章评论
共有位Admini5网友发表了评论 查看完整内容