第9章 数据库系统的恢复和并发控制技术.pptVIP

第9章 数据库系统的恢复和并发控制技术.ppt

  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文档。上传文档
查看更多
第9章 数据库系统的恢复和并发控制技术

事务:是一个不可分割的操作序列,该操作序列要么全做,要么全不做。 强调:事务和程序是两个概念。 一个程序中可以包含多个事务。 隐式控制:由DBMS按缺省规定自动划分。 显式控制: BEGIN TRANSACTION [事务开始] COMMIT [事务提交,重新改写数据库] ROLLBACK [事务提交,发生错误撤消] 1、原子性(Atomicity) 事务是不可分割的工作单位 2、一致性(Consistency) 事务提交后,数据库从一个一致性状态变到另一个一致性状态。 3、隔离性(Isolation) 在事务完成之前,它对数据库产生的结果不能被其它事务引用。 4、持续性(Durability) 一旦事务执行成功(提交),其对数据库产生的效果永久有效。 数据库的恢复: 把数据库从错误状态恢复到某一已知的正确状态。 1.事务故障 是事务内部的故障。 预期故障: 通过在程序中加判断条件来实现 非预期的故障: 如由于死锁而被迫撤销的事务等 2.系统故障 (需要系统重新启动) 原因:硬件错误、操作系统故障、DBMS代码错误、突然停电等。 特点:故障影响正在运行的所有事务,但不破坏数据库。可能会造成数据库中数据的不一致性。其原因: 故障发生时,尚未完成的事务的结果可能已送入到物理数据库。 故障发生时,有些已完成的事务所做的数据更改还在缓冲区中,尚未写到物理数据库中。 3.介质故障 是指存储数据库的磁盘发生故障。 原因:可能是磁盘损坏、磁头碰撞、瞬时强磁场干扰等。 特点:使数据库受到破环。虽然可能性小,但破坏性最大。 两个关键问题: 1 如何建立冗余数据 2 如何利用这些冗余数据实施数据库恢复 1、数据转储 转储:定期将DB复制到其它外存保存(副本) 1、转储类型 静态转储:在系统空闲的时候进行,转储期间不允许对数据库进行操作。 优点:简单、保证副本和数据库数据的一致性。 缺点:需等待。 动态转储:转储期间允许对数据库进行操作。 优点:效率高。 缺点:不能保证副本和数据库数据的一致性。 2、转储方式 海量转储:每次转储数据库中的全部数据 增量转储:每次转储上一次转储后更新过的数据 2、日志文件 1、内容 事务标识(标明是哪个事务) 操作类型及对象(插入、删除、修改,记录内部标识) 更新前后的值 2、作用: 用于数据库恢复 3、登记要求 按时间次序 先写日志文件,后写数据库。 3、数据库镜像:自动将数据库中的全部数据或关键数据复制到另外一张盘上。 1、事务故障的恢复 恢复策略:反向扫描日志文件,将日志中更新前的数据写回到数据库中,直至事务的开始标志。 2、系统故障的恢复 恢复策略:撤销故障发生时未完成的事务,重做已完成的事务。 方法:扫描日志文件;找出故障发生前提交的事务,让该事务重做(REDO);找出故障发生前未提交的事务,让其撤销(UNDO)。 例:银行中,C账户上原有存款500元,现有两位顾客同时给此账户存款,分别运行下面两个事务: T1:READ(C), C=C+100,WRITE(C); T2:READ(C), C=C+200,WRITE(C); 运行过程可能如下: (1)先执行事务T1,然后执行事务T2 (2)先执行事务T2,然后执行事务T1 (3)事务T1和事务T2并发执行 1、事务的表示方法: Ri(X)表示事务Ti的读X操作; Wi(X)表示事务Ti的写X操作。 例:事务T1(Read(B);A=B+1;write(A)), 事务T2(Read(A);B=A+1;write(B)) 可以表示成: T1:R1(B)W1(A) T2:R2(A)W2(B) 例: 事务 T1:R1(X)R1(Y)W1(Y) 的执行顺序可表示为: 2、冲突操作 定义:如果两个操作来自不同的事务,它们对同一数据单位进行操作,并且其中至少有一个是写操作,则称这两个操作是相互冲突的或冲突操作。 例:事务T0:W0(X)W0(Y)W0(Z) 事务T1:R1(X)R1(Z)W1(X) 则在这两个事务中有冲突操作: 3、调度 设τ={T1,T2, …T n}是一事务集, τ的一个调度S是一拟序集(∑ ,s) 其中: 1) ∑说明S执行的操作正是T1,T2, …T n 的操作。 2) s 说明调度S遵守每个事务的操作的内部执行次序 3) 每对冲突操作的执行次序由S决定。 例如:考虑下列两个事务T0, T1 两个事务T0,T1的调度可以表示为: 两个事务T0,T1的调度可以表示为: 两

文档评论(0)

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

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

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档