数据库与数据挖掘1-3要点解析.pptVIP

  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文档。上传文档
查看更多
* * 3. 恢复技术 (1)数据转储 (2)运行记录+后备复本 (3)多复本技术 运行记录-----日志文件 日志文件是用来记录事务对数据库更新操作的文件。内容包括: 事务标识、操作类型、操作对象、 更新前数据的旧值(前像)、 更新后数据的新值(后像) * * 日志文件的登记原则: 按事务执行时间顺序 先写日志文件,后写数据库 二、恢复操作与恢复策略 1. 操作: 撤销事务(undo)----使用前像 重做事务(redo)----使用后像 2. 恢复步骤: (1)事务故障恢复 采用undo * * 反向扫描日志文件,查找更新操作 对更新操作执行逆操作 重复执行,直到此事务开始标识 (2)系统故障恢复 根据事务状态采取恢复策略(undo/redo) 恢复步骤: 正向扫描日志文件,查找已提交的事务和未提交的事务 对于已提交的事务?redo 对于未提交的事务?undo * * (3)介质故障恢复 数据和日志文件均被破坏 ------只有重装数据库,重做已完成的事务,用复本恢复。 三、并发控制引论 什么是并发? 交叉并发----单CPU 同时并发----多CPU 并发执行引起的问题 读写冲突、写写冲突? 数据不一致 举例: * * 3. 并发控制的任务 避免访问冲突引起数据不一致。 并发控制的正确性原则 若某个调度是可串行化的,则是正确的 什么是调度? 对n个事务的所有操作顺序的一个安排。 例如: 调度的等价性 目标等价:两个调度读出的数据一样,数据库的 最终状态一样。 冲突等价:通过调换不冲突的操作,得到的新调度。 * * 冲突等价 目标等价 目标等价 冲突等价 7. 可串行化调度 若某个调度与一个串行调度等价, 则称此调度可串行化。 目标可串行化 冲突可串行化 例: S为冲突可串行化。 不一定 * * 目标可串行化不一定是冲突可串行化。 例: 目标等价于: 它是目标可串行化,但不是冲突可串行化。 8. 可串行化调度判断算法 前趋图法 画前趋图,若无回路,则可串行化。 举例: 并发控制的基本方法 加锁, 基于时间标记的方法,乐观并发控制 * * 四、用加锁方法实现并发控制 X锁, 排斥锁 在数据对象进行读写之前,要加锁。 获得X锁后,才能进行读或写操作。 某事务获得X锁后,其他事务不能再加锁。 不论是读还是写,X锁要保持到事务结束,否则出错。 例: * * 2. 两段封锁协议 两段事务:加锁都在释放锁之前。 合式事务:先加锁,后操作。 定理: 如果所有事务都是两段、合式事务, 则任何调度都是可串行化的。 [反证法] 是充分条件,不是必要条件 * * 3. (S, X)锁 S锁用于读操作, 对S锁相容 X锁用于写操作 若其他事务拥有S锁,此时某事务申请S锁可以获得,但不能获得X锁。 4. (S, U, X)锁 U锁用于更新操作。 多粒度封锁 数据库----关系----元组 * * 6. 死锁的检测与防止 (1)死锁的检测与处理 超时法 等待图法 选择一个事务作为牺牲者,卷回。 (2)死锁的防止 等待—死亡策略 击伤—等待策略 * * 五、基于时间标记的封锁协议 要求事务的执行等效于按事务的时间标记顺序串行执行。 时间标记 系统生成的随时间增长的整数 事务的时间标记ts(T): 事务T启动时赋一个时间标记 数据读时间标记tr: 读过该数据的所有事务的时间标记最大值 数据写时间标记tw: 写过该数据的所有事务的时间标记最大值 * * 2. 事务读数据的实现 read(D); if ts(T)=tw then //符合时间标记协议 tr=max(ts(T), tr); else rollback T and restart it; * * 3. 事务写数据的实现 if ts(T)=tr and ts(T)=tw then //符合时间标记协议 { write(D); tw=ts(T); else rollback T and restart it; 举例: * *

文档评论(0)

挺进公司 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档