数据库原理与应用 教学课件 作者 林 小 玲 第6章 数据库的管理.pptVIP

数据库原理与应用 教学课件 作者 林 小 玲 第6章 数据库的管理.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文档。上传文档
查看更多
第6章 数据库的管理 上海大学 自动化系 林小玲 * 6.2.5 并发调度的可串行性 如何保证并发操作的调度是正确的 什么样的并发操作调度是正确的 * 一、什么样的并发操作调度是正确的 计算机系统对并行事务中并行操作的调度是的随机的,而不同的调度可能会产生不同的结果。 将所有事务串行起来的调度策略一定是正确的调度策略。 几个事务的并行执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同。这种并行调度策略称为可串行化(Serializable)的调度。 * 什么样的并发操作调度是正确的(续) 可串行性是并行事务正确性的唯一准则 例:现在有两个事务,分别包含下列操作: 事务1:读B;A=B+1;写回A; 事务2:读A;B=A+1;写回B; 假设A的初值为2,B的初值为2。 * 什么样的并发操作调度是正确的(续) 对这两个事务的不同调度策略 串行执行 串行调度策略1 串行调度策略2 交错执行 不可串行化的调度 可串行化的调度 * (a) 串行调度策略,正确的调度 Slock B Y=B=2 Unlock B Xlock A A=Y+1 写回A(=3) Unlock A ? ? ? ? ? ? ? Slock A X=A=3 Unlock A Xlock B B=X+1 写回B(=4) Unlock B T1 T2 * (b) 串行调度策略,正确的调度 ? ? ? ? ? ? ? Slock B Y=B=3 Unlock B Xlock A A=Y+1 写回A(=4) Unlock A SlockA X=A=2 Unlock A Xlock B B=X+1 写回B(=3) Unlock B ? ? ? ? ? T1 T2 * (c) 不可串行化的调度 Slock B Y=B=2 ? ? Unlock B ? Xlock A A=Y+1 写回A(=3) ? ? ? Unlock A ? ? Slock A X=A=2 ? Unlock A ? ? ? Xlock B B=X+1 写回B(=3) ? Unlock B T1 T2 * (c) 不可串行化的调度(续) 由于其执行结果与(a)、(b)的结果都不同,所以是错误的调度。 * (d) 可串行化的调度 Slock B Y=B=2 Unlock B Xlock A ? A=Y+1 写回A(=3) Unlock A ? ? ? ? ? ? ? ? Slock A 等待 等待 等待 X=A=3 Unlock A Xlock B B=X+1 写回B(=4) Unlock B T1 T2 * (d) 可串行化的调度(续) 由于其执行结果与串行调度(a)的执行结果相同,所以是正确的调度。 * 二、如何保证并发操作的调度是正确的 为了保证并行操作的正确性,DBMS的并行控制机制必须提供一定的手段来保证调度是可串行化的。 从理论上讲,在某一事务执行时禁止其他事务执行的调度策略一定是可串行化的调度,这也是最简单的调度策略,但这种方法实际上是不可行的,因为它使用户不能充分共享数据库资源。 * 如何判断调度是可串行化调度? 冲突操作:不同的事务对同一个数据的读写操作与写写操作。 Ri(x) 与 Wj(x): 事务Ti读x, Tj写x Wi(x) 与 Wj(x): 事务Ti写x, Tj写x 其它的操作,如:读读操作都不冲突 * 续 不可交换的操作: 不同事务的冲突操作不可交换; 同一事务的两个操作不可交换; 可以交换的操作: 不同事务的不冲突操作可交换; * 续 因此: 如果一个调度SC在保证冲突操作的次序不变的情况下,通过交换两个事务的不冲突操作次序得到另一个调度SCC 如果SCC是串行的,称调度SC为冲突可串行化调度。 * 续 例: SC1 = R1(A)W1(A)R2(A)W2(A)R1(B)W1(B)R2(B)W2(B) SC2 = R1(A)W1(A)R2(A)R1(B)W1(B)W2(A) R2(B)W2(B) SC3 = R1(A)W1(A)R1(B)W1(B)R2(A)W2(A) R2(B)W2(B) 相当于串行调度事务T1与T2,是可串行化调度 冲突可串行化调度是可串化调度的充分条件。 * 如何保证并发操作的调度是正确的(续) 保证并发操作调度正确性的方法 封锁方法:两段锁(Two-Phase Locki

您可能关注的文档

文档评论(0)

时间加速器 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档