数据库原理与技术完整性.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
高 级 数 据 库 技 术 完 整 性 汤 娜 中山大学计算机科学系 isstn@zsu.edu.cn 系统篇 数据库系统中的数据是由DBMS统一管理和控制的,为了适应数据共享的环境,DBMS必须提供数据保护能力,以保证数据库中数据的安全可靠和正确有效。 数据保护 数据库完整性 数据库恢复技术 并发控制 数据库安全性 完整性类型 完整性约束条件 完整性控制 参照完整性控制 SQL中的完整性约束机制 数据库结构完整性 数据库对象能正确地创建、格式化和维护 数据语义完整性的基本含义是指数据的正确性、有效性、和相容性。 正确性。数据的合法性 有效性。数据是否在有效范围内 相容性。指表示同一个事实的两个数据应该一致。 数据库结构完整性 结构问题的类型 索引(如做数据恢复,没有重做指针) 特定的数据类型(如超大对象) 数据页的表头 备份文件 结构问题的管理 采用工具由DBMS进行检查 sybase\microsoft Sql Server:DBCC应用程序 DB2:CHECK和REPAIR工具 Informix:TBCHECK 数据语义完整性 作用的对象(粒度):关系、元组、列 对象状态:动态、静态。 1.? 静态约束 1)静态列约束:是对一个列的取值域等的限制。 2)静态元组约束:规定组成一个元组的各个列之间的约束关系。 例如:库存关系中出库数量不能大于库存数量。 3)静态关系约束:反映了一个关系中各个元组之间或者若干关系之间存在的联系或约束。 2.动态约束 1)动态列约束 2)动态元组约束 3)动态关系约束 2.? 动态约束 1)动态列约束:修改属性的定义或者属性的值的限制。 完整性控制 完整性控制机制应具有的三个功能 定义功能。提供定义完整性约束条件的机制 检查功能。检查用户发出的操作请求是否违背了约束条件。 立即执行约束(一条语句执行完成后立即检查) 延迟执行约束(整个事务执行完毕后再检查) 如果发现用户操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。 机制的工作原理 定义完整性时 定义完整性后 一条完整性规则用五元组(D,O,A,C,P)来描述 D(Data) 约束作用的数据对象 O(Operation) 触发完整性检查的数据库操作。即当用户发出什么操作请求时需要检查该完整性规则,是立即检查还是延迟检查。 A(Assertion) 数据对象要满足的断言或语义规则 C(Condition) 选择A作用的数据对象值的谓词 P(Procedure) 违反完整性规则时触发的过程 实体完整性 定义主键时定义,只约束定义了主键的表A 由DBMS负责检查(对表A做插入和修改操作时) 对于违反实体完整性的操作,系统一般采用拒绝执行的方式进行处理 创建关系数据库S (Sno ,Sname,Ssex,Sage ,Sdept);C (Cno ,Cname ,Pno);SC (Sno,Cno,Grade)。 CREATE TABLE S(Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20) , Ssex CHAR(1),Sage INT, Sdept CHAR(20), PRIMARY KEY(Sno),CHECK(Sa BETWEEN 15 AND 25)) CREATE TABLE C (Cno CHAR(4)) NOT NULL, Cname CHAR(30),Pno CHAR(4), PRIMARY KEY(Cno)) CREATE TABLE SC (Sno CHAR(5) NOT NULL, Cno CHAR(4) NOT NULL,Grade CHAR(1), PRIMARY KEY(Sno,Cno), FOREIGN KEY(Sno) REFERENCE S(Sno) ON DELETE CASCADE, FOREIGN KEY(Cno) REFERENCE C(Cno) ON DELETE No Action) 参照完整性 定义外键时定义,约束参照表A和被参照表B。 特殊的完整性定义 由DBMS负责检查(较复杂,四种情况) 对于违反参照完整性有时候并不是简单拒绝执行,而是接受该操作,同时执行必要的附加操作 对于违反用户自定义完整性的操作,系统一般采用拒绝执行的方式进行处理或根据用户定义的操作来处理 1.两张表互相参照的问题 2.表的自参照问题 Create table employee (emp_ id int NOT NULL PRIMARY KEY, emp_name varchar(30) NOT NULL, mgr_id int NOT NULL REFERENC

文档评论(0)

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

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

1亿VIP精品文档

相关文档