第9章数据库完整性-Read.PPTVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章数据库完整性-Read

第9章 数据库完整性 9.1 概述 9.2 完整性约束条件 9.3 完整性控制 9.1 概述 数据库的完整性是指数据的正确性和相容性。 数据库是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维护数据库的完整性是非常重要的。 数据的完整性和安全性是两个不同的概念。安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。 为维护数据库的完整性,DBMS必须提供一种机制来检查数据库中的数据,看其是否满足语义规定的条件。 这些加在数据库数据之上的语义约束条件称为数据库完整性约束条件,它们作为模式的一部分存入数据库中。 而DBMS中检查数据是否满足完整性条件的机制称为完整性检查。 9.2 完整性约束条件 完整性检查是围绕完整性约束条件进行的,因此完整性约束条件是完整性控制机制的核心。 完整性约束条件作用的对象可以是关系、元组、列三种。 其中列约束主要是列的类型、取值范围、精度、排序等的约束条件。 元组的约束是元组中各个字段间的联系的约束。 关系的约束是若干元组间、关系集合上以及关系之间的联系的约束。 9.2 完整性约束条件 完整性约束条件涉及的这三类对象,其状态可以是静态的,也可以是动态的。 所谓静态约束是指数据库每一确定状态时的数据对象所应满足的约束条件,它是反映数据库状态合理性的约束,这是最重要的一类完整性约束。 动态约束是指数据库从一种状态转变为另一种状态时新、旧值之间所应满足的约束条件,它是反映数据库状态变迁的约束。 9.2 完整性约束条件 综合上述两个方面,我们可以将完整性约束条件分为六类。 9.2 完整性约束条件 静态列级约束:是对一个列的取值域的说明,这是最常用也最容易实现的一类完整性约束,包括以下几方面: 对数据类型的约束,包括数据的类型、长度、单位、精度等; 对数据格式的约束; 对取值范围或取值集合的约束; 对空值(NULL)的约束; 其他约束 9.2 完整性约束条件 静态元组约束:一个元组是由若干个列值组成的,静态元组约束就是规定元组的各个列之间的约束关系。 静态关系约束在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。常见的静态关系约束有: 实体完整性约束; 参照完整性约束; 实体完整性约束和参照完整性约束是关系模型的两个极其重要的约束,称为关系的两个不变性。 函数依赖约束。大部分函数依赖约束都在关系模式中定义。 统计约束。即字段值与关系中多个元组的统计值之间的约束关系。 9.2 完整性约束条件 动态列级约束:是修改列定义或列值时应满足的约束条件,包括下面两方面: 修改列定义时的约束 例如,将允许空值的列改为不允许空值时,如果该列目前已存在空值,则拒绝这种修改。 修改列值时的约束 修改列值有时需要参照其旧值,并且新旧值之间需要满足某种约束条件。例如,职工工资调整不得低于其原来工资,学生年龄只能增长等等。 9.2 完整性约束条件 5. 动态元组约束:动态元组约束是指修改元组的值时元组中各个字段间需要满足某种约束条件。例如职工工资调整时新工资不得低于 原工资+工龄*1.5,等等。 6. 动态关系约束:动态关系约束是加在关系变化前后状态上的限制条件,例如事务一致性、原子性等约束条件。 9.3 完整性控制 DBMS的完整性控制机制应具有三个方面的功能: 定义功能,提供定义完整性约束条件的机制。 检查功能,检查用户发出的操作请求是否违背了完整性约束条件。 如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。 完整性约束条件包括有六大类,约束条件可能非常简单,也可能极为复杂。 一个完善的完整性控制机制应该允许用户定义所有这六类完整性约束条件。 9.3 完整性控制 检查是否违背完整性约束的时机通常是在一条语句执行完后立即检查,我们称这类约束为立即执行约束(Immediate constraints)。 有时完整性检查需要延迟到整个事务执行结束后再进行,检查正确方可提交,我们称这类约束为延迟执行约束(Deferred constraints)。 在关系系统中,最重要的完整性约束是实体完整性和参照完整性,其他完整性约束条件则可以归入用户定义的完整性。 下面详细讨论实现参照完整性要考虑的几个问题。 9.3 完整性控制 外键能否接受空值问题 因此在实现参照完整性时,系统除了应该提供定义外键的机制,还应提供定义外键列是否允许空值的机制。 在被参照关系中删除元组的问题 一般地,当删除被参照关系的某个元组,而参照关系存在若干元组,其外键值与被参照关系删除元组的主键值相同,这时可有三种不同的策略: (1) 级联删除(CASCADE) (2) 受限删除(RESTRICT) 仅当参照关系中没有任何元组的

文档评论(0)

laolao123 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档