数据库完整性(二).docVIP

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

数据库完整性 【本章综述】 数据库的完整性是指数据的正确性和相容性。比如:学生的学号唯一。性别字段的值只能是“男”和“女”。数据库的完整性关系到数据库中的数据是否真实地反映了现实世界。 数据库的完整性和安全性是两个不同的概念。数据库的完整性是为了防止数据库中存在不符合语义的数据。数据库的安全性是为了防止恶意的破坏和非法的存取。 为了维护数据库的数据的完整性,必须在数据库数据之上的加上一定的约束条件。称之为完整性约束条件。它们作为模式的一部分存入数据库中。比如可以限制一个属性值取值范围,可以限制两个关系之间的元组之间的关联。 DBMS中检查数据是否满足完整性条件的机制成为完整性检查。 【本章重点】数据库实现数据完整性定义的方法。 【本章难点】自定义完整性的实现方法。 完整性约束条件 完整性检查的依据 围绕完整性约束条件进行的。 完整性约束条件作用的对象-对象的粒度 关系:若干元组之间、关系集合上以及关系之间的联系的约束。 元组:元组中各个字段间的联系的约束。 列:类型、取值范围、精度、排序等约束。 完整性约束的状态 静态约束:数据库每一确定状态时的数据对象所应满足的约条件。反映数据库状态合理性的约束。 动态约束:数据库从一种状态转变为另一种状态时,新、旧值之间所应满足的约束条件。比如:工资调整的时候不能比原来的工资低。外码的值必须在别的关系中存在。 静态列级约束 静态列级约束 是对一个列的取值域的说明。最容易实现的一类完整性约束。 静态列级约束包含的方面 对数据类型的约束。数据的类型、长度、单位、精度等。 对数据格式的约束。时间日期的格式。电话号码区号后面加杠。 对取值范围或取值集合的约束。学生成绩的0~100之间。 对空值的约束。空值表示未定一或未知的值。具体在实现的时候,就是在插入记录的时候,没有给某个字段赋值。 其他约束。关于列的排序说明,组合列等。 静态元组的约束 静态元组约束 一个元组由若干列组成,静态元组约束就是规定元组的各个列之间的约束关系。 静态元组约束举例 订货关系中包含发货量、订货量,规定发货量不得超过订货量。教师关系中包含职称、工资等列,规定教授的工资不得低于1000元。 静态关系的约束 静态关系约束 在一个关系的各个元组之间或者多个关系之间存在着联系。 静态关系约束包含的方面 实体完整性约束:关键字不能为空值。其语义是:一个记录所表示的实体应该是确定的。不然毫无意义。 参照完整性约束:子表中的外码必须存在,不然就是无意义的记录。比如:学生表和成绩表之间是主/子关系。成绩表中的学号至必须在学生表中存在,表明是哪一个学生的成绩。否则,这个成绩记录没有存在的必要。 函数依赖约束:大部分函数依赖约束都在关系模式中定义。 统计约束:字段值与关系中多个元组的统计值之间的约束关系。部门经理的工资不得高于本部门职工平均工资的5倍。 动态列级约束 动态列级约束 修改列定义或列值时应满足的约束条件。 动态列级约束包含的方面 修改列定义时的约束:原来允许空值现在改为不允许空值,如果表中有记录而且该字段的值为空,则不允许修改。 修改列值时的约束:修改列值时参照其旧值。比如:修改工资时不能低于其原来的工资。当然,这种约束应该与具体的应用需求相匹配。比如:如果一个单位的职工的工资有可能降级,此时就不能增加这种约束。 动态元组约束 修改元组的值时要考虑元组中各字段之间应该满足的约束条件。比如:职工工资调整不得低于其原来工资+工龄*1.5等。 动态关系的约束 动态关系约束是加在关系变化前后状态上的限制条件,例如:事务的一致性、原子性等约束条件。 完整性控制 DBMS应该具备的完整性控制机制 定义功能:提供定义完整性约束条件的限制。 检查功能:检查用户发出的操作请求是否违背了完整性约束件。 如果用户的操作请求是数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。 立即执行约束 检查是否违背完整性约束的时机通常是在一条语句执行完后立即检查。如果操作违背了约束,系统将拒绝执行。 延迟执行约束 完整性检查需要延迟到整个事务执行结束后再进行,检查正确方可提交。比如:划转帐务的操作就应该是延迟执行约束。A帐支出到B帐时,A帐支出是账目就不平了,只有到B帐收入后才能检查平衡。如果事务执行到最后违背了约束,系统将回滚整个事务。 完整性规则的五元组表示 (D,O,A,C,P) D(Data) —— 约束作用的数据对象。 O(Operation)——触发完整性检查的数据库操作,Update , delete ,insert。 A(Assertion) —— 数据对象必须满足的断言或语义约束,这是规则的主体。就是实际工作中对数据对象的要求的描述。 C(Condition) —— 选择A作用的数据对象值的谓词条件。元组必须符合的条件。或者说是对那

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档