项目7第05章数据库的数据完整性.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
项目7第05章数据库的数据完整性.ppt

?第 5 章 数据库的数据完整性 通过本章的学习,掌握以下内容: ? 使用约束来保证数据的完整性 ? 使用规则、默认值和自定义数据类型来保证数据完整性 ? 对实现数据完整性的各种方法进行分析 ?第 5 章 数据库的数据完整性 5.1 数据完整性的基本概念 5.2 使 用 约 束 5.3 默 认 值 5.4 规 则 5.5 自定义数据类型 5.6 标识列IDENTITY 5.1 数据完整性的基本概念 数据库的完整性表明数据库的存在状态是否合理,是通过数据库内容的完整性约束来实现的。数据库系统检查数据的状态和状态的转换,判定它们是否合理,是否应予接受。对于每个数据库操作要判定其是否符合完整性约束,全部判定无矛盾时才可以执行,数据完整性包括实体完整性、域完整性、参照完整性、用户定义的完整性。 1.实体完整性(行完整性) 实体完整性体现实体的惟一性,它可以通过主键约束、惟一键约束、索引或标识属性来实现。 2.域完整性(列完整性) 域完整性就是保证数据库中的数据取值的合理性。通过CHECK约束、规则、默认值和非空属性的定义来确定数据的格式及其取值范围。 实体完整性约束是一个关系内的约束,而参照完整性是在不同关系之间或同一关系的不同元组之间的约束。 3.参照完整性(引用完整性) 参照完整性定义了一个关系数据库中,不同的表中列之间的关系(父键与外键)。要求一个表中(子表)的一列或一组列的值必须与另一个表(父表)中的相关一列或一组列的值相匹配。被引用的列或一组列称为父键,父键必须是主键或惟一键,通常父键为主键,主键表是主表。 保证参照表和被参照表中数据的一致性。 引用父键的一列或一组列称为外键,外键表是子表。如果父键和外键属于同一个表,则称为自参照完整性。子表的外键必须与主表的主键相匹配,只要依赖某一主键的外键存在,主表中包含该主键的行就不能被删除。 4.用户定义的完整性 用户可以根据自己的业务规则定义不属于任何完整性分类的完整性。由于每个用户的数据库都有自己独特的业务规则(是由应用环境决定的 ,它反映某一个具体应用所涉及的数据必须满足的语义要求),所以系统必须有一种方式来实现定制业务规则,即定制的数据完整性约束。 用户定义的完整性可以通过自定义数据类型、规则、存储过程和触发器来实现。 5.2 使 用 约 束 约束是实现数据完整性的有效手段,约束包括:主键(PRIMARY KEY)约束、唯一键(UNIQUE)约束、检查(CHECK)约束、默认值(DEFAULT)约束、外键(FOREIGN KEY)约束等。 5.2 使 用 约 束 5.2.1 主键(PRIMARY KEY)约束 向表中添加主键约束时,SQL Server将检查现有记录的列值,以确保现有数据符合主键的规则,所以在添加主键之前要保证主键列没有空值和重复值。 5.2.2 惟一键(UNIQUE)约束 和添加主键一样,向表中添加惟一键约束时,SQL Server也将检查现有记录的列值,以确保现有数据符合惟一键的规则,所以在添加惟一键之前要保证惟一键列没有重复值,但可以有空值。 5.2.3 检查(CHECK)约束 CHECK约束通过限制可输入或修改的一列或多列的值来强制实现域完整性,它作用于插入(INSERT)和修改(UPDATE)语句。 在默认情况下,检查(CHECK)约束同时作用于新数据和表中已有的老数据,可以通过关键字WITH NOCHECK禁止CHECK约束检查表中已有的数据。当然,用户对禁止检查应该确信是合理的。 与其他约束不同的是,CHECK约束可以通过NOCHECK和CHECK关键字设置为无效或重新有效,语法格式如下。 ALTER TABLE 表名 NOCHECK CONSTRAINT 约束名 | CHECK CONSTRAINT 约束名 5.2.4 默认值(DEFAULT)约束 默认值约束的作用就是当向表中添加数据时,如果某列没有指定具体的数值而是指定了关键字DEFAULT,则该列值将自动添加为默认值。 和检查约束一样,默认值约束也是强制实现域完整性的一种手段。DEFAULT约束不能添加到时间戳TIMESTAMP数据类型的列或标识列上;也不能添加到已经具有默认值设置的列上,不论该默认值是通过约束还是绑定实现的。 5.2.5 外键(FOREIGN KEY)约束 外键(FOREIGN KEY)约束是为了强制实现表之间的参照完整性,外键FOREIGN KEY可以和主表的主键或惟一键对应,外键约束不允许为空值,但是,如果组合外键的某列含有空值,则将跳过该外键约束的检验。 5.2.6 级联参照

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档