数据库系统概论(第四版)王珊Part_8 121页-高清.pptx

数据库系统概论(第四版)王珊Part_8 121页-高清.pptx

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

数据库系统概论

AnIntroductiontoDatabaseSystem;第八章 并发控制;并发控制概述

多事务执行方式(1)事务串行执行

每个时刻只有一个事务运行,其他事务必须等到这个事务结束以后方能运行

不能充分利用系统资源,发挥数据库共享资源的特点;并发控制(续);并发控制(续);事务并发执行带来的问题;8.1 并发控制概述;T1的修改被T2覆盖了!;并发操作带来的数据不一致性

丢失修改(lostupdate)

不可重复读(non-repeatableread)

读“脏”数据(dirtyread);1.丢失修改;2.不可重复读;三类不可重复读;3.读“脏”数据;图8.1 三种数据不一致性;图8.1 三种数据不一致性(续);图8.1 三种数据不一致性(续);第八章 并发控制;8.2 封锁;一、什么是封锁;8.2 封锁;二、基本封锁类型;排它锁

排它锁又称为写锁

若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁;共享锁

共享锁又称为读锁

若事务T对数据对象A加上S锁,则其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁;8.2 封锁;三、锁的相容矩阵;第八章 并发控制;8.3 封锁协议;1级封锁协议;1级封锁协议;1级封锁协议;1级封锁协议;2级封锁协议;不可重复读;3级封锁协议;3级封锁协议;;4.封锁协议小结;封锁协议小结(续);第八章 并发控制;8.4 活锁和死锁;如何避免活锁;8.4.2 死锁;解决死锁的方法;1.死锁的预防;死锁的预防(续);(1)一次封锁法;一次封锁法(续);(2)顺序封锁法;顺序封锁法(续);死锁的预防(续);2.死锁的诊断与解除;检测死锁:超时法;等待图法;死锁的诊断与解除(续);第八章 并发控制;8.5 并发调度的可串行性;8.5 并发调度的可串行性;一、什么样的并发操作调度是正确的

计算机系统对并行事务中并行操作的调度是的随机的,而不同的调度可能会产生不同的结果。

将所有事务串行起来的调度策略一定是正确的调度策略。

如果一个事务运行过程中没有其他事务在同时运行,也就是说它没有受到其他事务的干扰,那么就可以认为该事务的运行结果是正常的或者预想的;什么样的并发操作调度是正确的(续)

以不同的顺序串行执行事务也有可能会产生不同的结果,但由于不会将数据库置于不一致状态,所以都可以认为是正确的。

几个事务的并行执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同。这种并行调度策略称为可串行化(Serializable的调度。;什么样的并发操作调度是正确的(续);什么样的并发操作调度是正确的(续);(a)串行调度策略,正确的调度;(b)串行调度策略,正确的调度;(c)不可串行化的调度;(c)不可串行化的调度(续);(d)可串行化的调度;(d)可串行化的调度(续);8.5 并发调度的可串行性;二、如何保证并发操作的调度是正确的;如何保证并发操作的调度是正确的(续)

保证并发操作调度正确性的方法

封锁方法:两段锁(Two-PhaseLocking,简称2PL)协议

时标方法

乐观方法;第八章 并发控制;8.6 两段锁协议;两段锁协议(续);两段锁协议(续);两段锁协议(续);两段锁协议(续);两段锁协议(续);两段锁协议(续);两段锁协议(续);第八章 并发控制;8.7 封锁的粒度;8.7.1封锁粒度;一、什么是封锁粒度;什么是封锁粒度(续);8.7.1封锁粒度;二、选择封锁粒度的原则;选择封锁粒度的原则(续);8.7 封锁的粒度;8.7.2多粒度封锁;多粒度封锁(续);多粒度封锁协议;显式封锁和隐式封锁;对某个数据对象加锁时系统检查的内容

该数据对象

有无显式封锁与之冲突

所有上级结点

检查本事务的显式封锁是否与该数据对象上的隐式封锁冲突:(由上级结点封锁造成的)

所有下级结点

看上面的显式封锁是否与本事务的隐式封锁

(将加到下级结点的封锁)冲突。;8.7 封锁的粒度;8.7.3意向锁;什么是意向锁;意向锁(续);常用意向锁;意向锁(续);意向锁(续);意向锁(续);意向锁(续);意向锁(续);第八章 并发控制;8.8 Oracle的并发控制;1.字典锁;2.数据锁;数据锁(续);数据锁(续);数据锁(续);数据锁(续);数据锁(续);第八章 并发控制;8.9 小结;小结(续);小结(续);小结(续);小结(续);下课了。。。

文档评论(0)

182****1884 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档