《数据的完整性》PPT课件

《数据的完整性》PPT课件

ID:36778467

大小:255.10 KB

页数:25页

时间:2019-05-10

《数据的完整性》PPT课件_第1页
《数据的完整性》PPT课件_第2页
《数据的完整性》PPT课件_第3页
《数据的完整性》PPT课件_第4页
《数据的完整性》PPT课件_第5页
资源描述:

《《数据的完整性》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章数据库的完整性P151数据库的完整性是指数据的正确性和相容性。例如,学生的学号必须唯一;性别只能是男或女;等。数据库是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维护数据库的完整性是非常重要的。为了维护数据库的完整性,DBMS必须提供如下功能:1.定义功能:提供定义完整性约束条件的机制。2.检查功能:检查用户发出的操作请求是否违背了完整性约束条件。完整性检查的时机:(1)立即执行约束:在一条语句执行完后立即检查是否违背完整性约束。(2)延迟执行约束:有时完整性检查需要延迟到整个事务执行结束后再进行,检查正确方可提交,称这类约束为延迟执行约束。3.违约处理:如果发现用户的操

2、作请求使数据违背了完整性约束条件,则采取一定的操作,以保证数据的完整性。8.1实体完整性的定义P152实体完整性的检查及违约处理P1538.2参照完整性的定义P154参照完整性的检查及违约处理P154实现参照完整性要考虑的几个问题P155表5.11.在被参照关系中删除元组的问题当删除被参照关系的某个元组,而参照关系存在若干元组,其外码值与被参照关系删除元组的主码值相同,这时可有三种不同的策略:(1)级联删除(CASCADES)将参照关系中所有外码值与被参照关系中要删除元组主码值相同的元组一起删除。(2)受限删除仅当参照关系中没有任何元组的外码值与被参照关系中要删除元组的主码值相同时,系统才

3、执行删除操作,否则拒绝此删除操作。(3)置空值删除删除被参照关系的元组,并将参照关系中相应元组的外码值置空值。2.在参照关系中插入元组时的问题当参照关系插入某个元组,而被参照关系不存在相应的元组,其主码值与参照关系插入元组的外码值相同,这时可有以下策略:(1)受限插入仅当被参照关系中存在相应的元组,其主码值与参照关系插入元组的外码值相同时,系统才执行插入操作,否则拒绝此操作。(2)递归插入首先向被参照关系中插入相应的元组,其主码值等于参照关系插入元组的外码值,然后向参照关系插入元组。3.修改被参照表主码值的问题(1)不允许修改主码值在有些RDBMS中,不允许修改被参照表的主码值。(2)允许

4、级联修改或外码值置空在有些RDBMS中,允许修改关系主码,但必须保证主码值与对应外码值一致。4.外码是否允许空值的问题实现参照完整性时,系统除了应提供定义外码的机制,还应提供定义外码列是否允许空值的机制。例:部门表与职工—部门表,职工—部门表中部门可取空值;但学生表与学生—选课表,学生—选课表不能取空值。8.3用户定义的完整性P156——P1598.4完整性约束命名子句P1585.5用触发器实现数据的完整性1.触发器简介触发器是定义在表或视图上的一类特殊的子程序,用于维护表中的数据,当有操作影响到触发器关联的数据时,触发器自动执行,例如:通过触发器维护多个表间数据的一致性。一般情况下,对表

5、数据的操作有:插入、修改、删除,因而维护数据的触发器也可分为三种类型:INSERT、UPDATE和DELETE触发器。同一个表可定义多个触发器。2.Oracle触发器的定义P161-1633.SQLSERVER触发器的定义利用触发器可以方便地实现数据库中数据的完整性。例如,对于图书管理数据库xsbook如下:xs(借书证号,姓名,专业名,性别,出生时间,借书数,照片)Book(ISBN,书名,作者,出版社,价格,复本数,库存数)JY(借书证号,ISBN,索书号,借书日期)SQLServer触发器定义的语法CREATETRIGGERtrigger_nameON{table

6、view}/*指定

7、触发器名及操作对象*/{FOR

8、AFTER

9、INSTEADOF}{[DELETE][,][INSERT][,][UPDATE]}/*定义触发器的类型*/ASsql_statements/*T-SQL语句序列*/触发器中使用的特殊表执行触发器时,系统创建了两个特殊的逻辑表:inserted表和deleted表,inserted逻辑表:当向表中插入数据时,INSERT触发器触发执行,新的记录插入到触发器表和inserted表中。deleted逻辑表:用于保存已从表中删除的记录,当触发一个DELETE触发器时,被删除的记录存放到deleted逻辑表中。修改一条记录等于插入一新记录,同时删除旧记录

10、。当对定义了UPDATE触发器的表记录修改时,表中原记录移到deleted表中,修改过的记录插入到inserted表中。触发器可检查deleted表、inserted表及被修改的表。例如,若要检索deleted、inserted表中的所有记录,可使用如下语句:SELECT*FROMdeletedSELECT*FROMinserteddeleted、inserted逻辑表的查询方法与数据库用户表的查询方法相同。使用触发器的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。