- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ch11 数据完整性
第11章 数据完整性 学习目标 无论是产品,还是信息,质量都是非常重要的。信息的质量是指信息的准确性、完整性、一致性等。在许多数据库应用系统中,数据质量的高低往往是导致系统成功与否的重要因素。数据完整性是保证数据质量的一种重要方法,是现代数据库系统的一个重要特征。 Microsoft SQL Server 2005系统提供了一系列的数据完整性方法和机制,例如约束、触发器等。其中,约束技术是应用最为广泛的数据完整性方法。 本章详细讨论有关数据完整性的技术和方法。 本章重点 约束概念和类型 DEFAULT约束 CHECK约束 主键约束 UNIQUE约束 外键约束 本章内容 11.1 概述 11.2 约束的概念和类型 11.3 管理约束 11.4 上机练习 11.5 习题 11.1 概述 数据完整性就是指存储在数据库中的数据的一致性和准确性。在评价数据库的设计时,数据完整性的设计是数据库设计好坏的一项重要指标。在Microsoft SQL Server 2005系统中,有3种数据完整性类型,即域完整性、实体完整性和引用完整性。 域完整性,也可以称为列完整性,指定一个数据集对某一个列是否有效和确定是否允许空值。域完整性通常是经过使用有效性检查来实现的,还可以通过限制数据类型、格式或者可能的取值范围来实现。例如,设置员工进入公司的日期大于员工的出生日期, 实体完整性,也可以称为行完整性,要求表中的所有行有一个唯一的标识符,这种标识符一般称为主键值。 引用完整性保证在主键(在被参考表中)和外键之间的关系总是得到维护。如果被参考表中的一行被一个外键所参考,那么这一行数据便不能直接被删除,用户也不能直接修改主键值。 实现数据完整性 在Microsoft SQL Server 2005系统中,可以使用两种方式实现数据完整性,即声明数据完整性和过程数据完整性。 声明数据完整性就是通过在对象定义中定义的数据标准来实现数据完整性,是由系统本身自动强制实现的。声明数据完整性的方式包括使用各种约束、缺省和规则。例如,在某个表中定义了主键约束,那么这种定义就由系统自动强制实现。 过程数据完整性是通过在脚本语言中定义的数据完整性标准来实现的。在执行这些脚本的过程中,由脚本中定义的强制完整性的实现。过程数据完整性的方式包括使用触发器和存储过程等。 11.2 约束的概念和类型 约束是通过限制列中数据、行中数据和表之间数据来保证数据完整性的非常有效的方法。约束可以确保把有效的数据输入到列中和维护表和表之间的特定关系。Microsoft SQL Server 2005系统提供了5种约束类型,即PRIMARY KEY(主键)、FOREIGN KEY(外键)、UNIQUE、CHECK、DEFAULT约束。 每一种数据完整性类型,例如域完整性、实体完整性和引用完整性,都由不同的约束类型来保障。表11-1描述了不同类型的约束和完整性之间的关系。 定义约束 定义约束表示从无到有地创建约束,这种操作可以使用CREATE TABLE语句或ALTER TABLE语句完成。使用CREATE TABLE语句表示在创建表的时候定义约束,使用ALTER TABLE语句表示在已有的表中添加约束。即使表中已经有了数据,也可以在表中增加约束。 定义约束时,既可以把约束放在一个列上,也可以把约束放在多个列上。如果把约束放在一个列上,该约束称为列级约束,因为它只能由约束所在的列引用。如果把约束放在多个列上,该约束称为表级约束,这时可以由多个列来引用该约束。 查看有关约束的信息 当创建约束时,可以指定约束的名称。否则,Microsoft SQL Server系统将提供一个复杂的、系统自动生成的名称。对于一个数据库来说,约束名称必须是唯一的。一般来说,约束的名称应该按照这种格式:约束类型简称_表名_列名_代号。 可以使用目录视图查看有关约束的信息,这些目录视图包括sys.key_constraints、sys.check_constraints、sys.default_constraints。sys.key_constraints目录视图用于查看有关主键和UNIQUE约束的信息,sys.check_constraints目录视图用于查看有关CHECK约束的信息,在sys.default_constraints目录视图中可以查看有关DEFAULT约束的信息。 【例11-1】查看约束信息 11.3 管理约束 本节详细研究各种DEFAULT、CHECK、主键、UNIQUE、外键等约束的特点、适用范围、创建方法、修改方式等内容。 DEFAULT约束 当使用INSERT语句插入数据时,如果没有为某一个列指定数据,那么DEFAULT约束就在该列中输入一个值。 例如,在记录了人事信息的pers
文档评论(0)