网站大量收购独家精品文档,联系QQ:2885784924

第十章 数据库完整性精要.ppt

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

* * 第十章 数据库完整性 1、数据库的完整性是指数据的正确性和相容性。 例如,学生的学号必须唯一;性别只能是男或女; 本科学生年龄的取值范围为14-30的整数; 学生所在的系必须是学校已开设的系; 2、数据的完整性和安全性区别: 完整性是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出(GarbagelnGarbageOut)所造成的无效操作和错误结果。 安全性是保护数据库防止恶意的破坏和非法的存取 10.1 完整性约束条件 ?完整性约束条件作用的对象可以是关系、元组、列三种。其中列约束主要是列的类型、取值范围、精度、排序等约束条件。 ?元组的约束是元组中各个字段间的联系的约束。 ?关系的约束是若干元组间、关系集合上以及关系之间的联系的约束。 ?静态约束是指数据库每一确定状态时的数据对象所应满足的约束条件,它是反映数据库状态合理性的约束,这是最重要的一类完整性约束。 ?动态约束是指数据库从一种状态转变为另一种状态时,新、旧值之间所应满足的约束条件,它是反映数据库状态变迁的约束。 一、静态列级约束 静态列级约束完整性约束,包括以下几方面; 1.对数据类型的约束(包括数据的类型、长度、单位、精度等) 例如中国人民大学数据库中学生姓名的数据类型规定为字符型,长度为8。 中央民族大学数据库中学生姓名的数据类型规定为字符型,长度为20,因为少数民族的姓名较长。 2.对数据格式的约束 例如,规定学号的前两位表示入学年份,中间两位表示系的编号,后三位为顺序编号。出生日期的格式为YY.MM.DD。 3.对取值范围或取值集合的约束 例如,规定学生成绩的取值范围为0~100,大学本科学生年龄的取值范围为14….29,性别的取值集合为[男,女]。 4.对空值的约束 空值表示未定义或未知的值,它与零值和空格不同。 有的列允许空值,的则不允许。 例如学生学号不能取空值,成绩可以为空值。 5.其他约束 例如关于列的排序说明,组合列等。 二、静态元组约束 一个元组是由若干个列值组成的,静态元组约束就是规定元组的各个列之间的约束关系。 例如 订货关系中包含发货量、订货量等列,规定发货量不得超过订货量; 又如教师关系中包含职称、工资等列,规定教授的工资不低于1000元。 三、静态关系约束 ?在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。 ?常见的静态关系约束有: (1)实体完整性约束。 (2)参照完整性约束。 实体完整性约束和参照完整性约束是关系模型的两个极其重要的约束,称为关系的两个不变性。 (3)函数依赖约束。大部分函数依赖约束都在关系模式中定义。 四、动态列级约束 (4)统计约束。即字段值与关系中多个元组的统计值之间的约束关系。 例如规定部门经理的工资不得高于本部门职工平均工资的5倍,不得低于本部门职工平均工资的2倍。这里,本部门职工的平均工资是一个统计值。 (1)修改列定义时的约束 例如,将允许空值的列改为不允许空值时,拒绝这种修改。 五、动态元组约束 (2)修改列值时的约束 如果该列目前已存在空值,则修改列值有时需要参照其旧值,并且新旧值之间需要满足某种约束条件。 例如,职工工资调整不得低于其原来工资,学生年龄只能增长等 动态元组约束是指修改元组的值时元组中各个字段间需要满足某种约束条件。 例如职工工资调整时新工资不得低于原工资+工龄*1.5等。 六、动态关系约束 动态关系约束是加在关系变化前后状态上的限制条件. 例如事务一致性、原子性等约束条件。 10.2 完整性控制 DBMS的完整性控制机制应具有三个方面的功能; .定义功能,提供定义完整性约束条件的机制。 .检查功能,检查用户发出的操作请求是否违背了完整性约束条件。 .保证措施,如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的 动作来保证数据的完整性。 ?立即执行约束:检查是否违背完整性约束的时机通常是在一条语句执行完后立即检查,称这类约束为立即执行约束(Immediate Constraints)。 ?延迟执行约束:有时完整性检查需要延迟到整个事务执行结束后再进行,检查正确方可提交,称这类约束为延迟执行约束(Deferred Constraints)。 例如 银行数据库中“借贷总金额应平衡”的约束就应该是延迟执行的约束,从账号A转一笔钱到账号B为一个事务,从账号A转出去钱后账就不平了,必须等转入账号B后账才能重新平衡,这时才能进行完整性检查: 如果发现用户操作请求违背了完整性约束条件,系统将拒绝该操作, 但对于延迟执行的约束,系统将拒绝整个事务,把数据库恢复到该事务执行前的状态。 ?完整性规则的表示 一条完整性规则可以用一

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档