大学讲义第6章数据库完整性.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文档。上传文档
查看更多
第6章 数据库完整性 6.1 数据库完整性概述 6.2 数据库完整性约束条件 6.2.1 完整性约束条件作用的对象 6.2.2 静态约束和动态约束 6.2.3 六类完整性约束条件 6.3 数据库完整性控制与违约处理 6.3.1 完整性控制的功能 6.3.2 参照完整性控制及其违约处理 6.4 实体完整性 6.4.1 关系数据库中实体完整性的定义 6.4.2 实体完整性检查和违约处理 第6章 数据库完整性 6.5 参照完整性 6.5.1 关系数据库中参照完整性的定义 6.5.2 参照完整性检查和违约处理 6.6 用户定义的完整性 6.6.1 属性上的约束条件的定义 6.6.2 元组上的约束条件的定义 6.6.3 约束条件检查和违约处理 6.7 完整性命名子句 6.8 域中的完整性限制 6.1 数据库完整性概述 数据库的完整性是指数据的正确性和相容性。 数据库是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维护数据库的完整性是非常重要的。 为维护数据库的完整性,DBMS必须提供一种机制来检查数据库中的数据,看其是否满足语义规定的条件。 这些加在数据库数据之上的语义约束条件称为数据库完整性约束条件,它们作为模式的一部分存入数据库中。 而DBMS中检查数据是否满足完整性条件的机制称为完整性检查。 DBMS若发现用户的操作违背了完整性约束条件,就采取一定的动作,如拒绝执行该操作,级联执行其他操作等违约处理。 6.2 数据库完整性约束条件 6.2.1 完整性约束条件作用的对象 完整性检查是围绕完整性约束条件进行的,因此完整性约束条件是完整性控制机制的核心。 完整性约束条件作用的对象可以是关系、元组、列三种。 其中列约束主要是列的类型、取值范围、精度、排序等的约束条件。 元组的约束是元组中各个字段间的联系的约束。 关系的约束是若干元组间、关系集合上以及关系之间的联系的约束。 6.3 数据库完整性控制与违约处理 6.3.1 完整性控制的功能 DBMS的完整性控制机制应具有三个方面的功能: 定义功能,提供定义完整性约束条件的机制。 检查功能,检查用户发出的操作请求是否违背了完整性约束条件。 如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。 完整性约束条件包括有六大类,约束条件可能非常简单,也可能极为复杂。 一个完善的完整性控制机制应该允许用户定义所有这六类完整性约束条件。 检查是否违背完整性约束的时机通常是在一条语句执行完后立即检查,我们称这类约束为立即执行约束(Immediate constraints)。 有时完整性检查需要延迟到整个事务执行结束后再进行,检查正确方可提交,我们称这类约束为延迟执行约束(Deferred constraints)。 在关系系统中,最重要的完整性约束是实体完整性和参照完整性,其他完整性约束条件则可以归入用户定义的完整性。 下面讨论实现参照完整性要考虑的几个问题。 6.3.2 参照完整性控制及其违约处理 外码能否接受空值问题 因此在实现参照完整性时,系统除了应该提供定义外码的机制,还应提供定义外码列是否允许空值的机制。 在被参照关系中删除元组的问题 一般地,当删除被参照关系的某个元组,而参照关系存在若干元组,其外码值与被参照关系删除元组的主码值相同,这时可有三种不同的策略: (1) 级联删除(CASCADES) (2) 受限删除(RESTRICTED) 仅当参照关系中没有任何元组的外码值与被参照关系中要删除元组的主码值相同时,系统才执行删除操作,否则拒绝此删除操作。 (3) 置空值删除(NULLIFIES) 删除被参照关系的元组,并将参照关系中相应元组的外码值置空值。 在参照关系中插入元组时的问题 一般地,当参照关系插入某个元组,而被参照关系不存在相应的元组,其主码值与参照关系插入元组的外码值相同,这时可有以下策略: (1)受限插入 (2)递归插入 修改关系中主码的问题 不允许修改主码 允许修改主码 在有些RDBMS中,允许修改关系主码,但必须保证主码的唯一性和非空,否则拒绝修改。 从上面的讨论我们看到DBMS在实现参照完整性时,除了要提供定义主码、外码的机制外,还需要提供不同的策略供用户选择。选择哪种策略,都要根据应用环境的要求确定。 6.4 实体完整性 6.4.1 关系数据库中实体完整性的定义 关系模型的实体完整性在CREATE TABLE中用PRIMARY KEY定义。对于单属性构成的码有两种说明方法,一种是定义为列级约束条件,另一种是定义为表级约束条件。对于多个属性构成的码只能定义为表级约束条件。 例:略。 6.4.2 实体完整性检查和违约处理 用PRIMAR

文档评论(0)

好文精选 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档