第四讲:事务及并发控制.pptVIP

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四讲:事务及并发控制

第三部分 事务的并发控制(5章内容);§1. 事务并发的概念;t1;③不可重复的读;(2)调度:若T = { T1 , T2 , ……,Tn }是一组并发执行的事务,则T中各事务的重要操作按时间排序的一个序列,记S = {ΣT,,∠T},是T 的一个调度。 a. 串行调度:若对于一个调度S 中的任意两个事务Ti 和Tj, i≠j, ΣiΣj,或ΣjΣi. b. 一致性调度: 如果执行一个调度S ,使数据库从一个一致性状 态转入另一个一致性状态,则称S 是一个一致性调 度。 注: 数据库状态的“一致性”与业务规则有关。 例:;;这两个调度 均为串行调度;(2)可串行化调度的概念:;例4 T1 、T2 的另一个可串行化调度S4 : S4 = { R2 (x); x := x – 20; W2 (x); R1 (x); x := x +10; W1 (x); R2 (y); y := y * 2; W2 (y); C2 R1 (y); y := y –15; W1 (y); C1 };(3)冲突可串行化:Ti={I1,I2…In},Tj={J1,J2,…,Jm}; 某一并行调度S经过非冲突指令转换成串行调度,且其该串行调度的执行结果一致,则S是冲突可串行化的。;T1;* 关于冲突可串行性调度的讨论 1. 构造冲突可串行性调度 允许不同事务上的非冲突操作交换执行次序。 2.冲突可串行调度必定是一致性调度。 3.冲突可串行性不是可串行性的必要条件。即,可串行性不一定是冲突可串行性。存在其它可串行调度策略!(如,视图可串行性调度)。;T1;T1;T1; 冲突可串行性的判断:优先图;T1;§2 基于锁的协议;T1;(4)加锁产生的问题:;②产生死锁现象:;③产生饿死现象:;(5)两阶段锁协议:;T1;T1;强两阶段锁协议:要求事务提交之前不得释放任何锁。 大部分数据库系统采用严格两阶段锁协议或强两阶段锁协议。;T1;(7)多粒度锁及意向锁:;对锁类型进行扩充:意向锁: 一个事务对一个数据对象显式加锁之前,必须对它的全部祖先结点加意向锁。 ∴ 如果一个结点上有意向锁,则它的后代结点必有被显式加锁。;意向锁分类:;锁类型的相容性矩阵:;可串行性多粒度锁协议:;多粒度锁协议的优点:增加并行性,减少锁开销。;多粒度锁协议在由如下事务类型混合 而成的应用中有用:;(8)封锁机制的实现是由锁管理器执行,锁管理器通过维护锁表控制加锁机制。;3 死锁的处理;抢占与事务回滚技术 基本措施:每一个事务赋予一个时间戳。若一个事务回滚,则当重启该事务时,必须保持原时间戳。然后 采用以下机制: * wait-die: 如果T1申请的数据被T2持有时,则只有: T1T2时,T1等待,否则回滚 * wound-wait: 与前面条件相同 时,只有: T1T2时,T1等待,否则回滚 基于超时的机制:事先给出事务的等待的时间,超时即回滚。;死锁的检验:等待图;从死锁中恢复:选择事务回滚;§3 基于时间戳的调度协议;排序协议: 1 若T执行读操作read(Q) 如 TS(T)W(Q) T回退 如TS(T)=W(Q) 执行读操作,并修改:R(Q)=max{TS(T),read(Q)} 2 若T执行写操作write(Q) 如TS(T)R(Q) T回退 如TS(T)W(Q) T回退 否则执行T,并修改:W(Q)=TS(T) 3 被回退的事务系统重新赋予时间戳,重新启动。;例:有两个事务T1,T2,T3;为了提高并行性,有时需要修改此协议,以使其忽略过时的写操作;;§4 基于有效性检验的调度协议;利用Validation(T)的值,按时间戳排序决定可串行化顺序。此时TS(T)=Validation(T);B:U在Validation中,Finish(U)validation(T) RS(T)∩WS(U)非空,U和T都写X;有效性检验规则: 对于经过有效性确认,且在T开始前还没有完成的事务Ti,如果满足以下的条件之一: Finish(Ti)Start(T) 或 WS(Ti) ∩RS(T)=¢,并且 Finish(Ti)Validation(T) 或 WS(Ti) ∩RS(T)=¢, WS(Ti) ∩WS(T)=¢,并且 Validation(Ti)Validation(T) 则Ti和T是可串行化的;T1;§5 多版本并发控制机制;* 数据库系统隔离性级别的控制;§6 逻辑层事务控制;? 长时间事务: ;1. 短时间事务的控制方法 ;②利用存储过程实现

文档评论(0)

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

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

1亿VIP精品文档

相关文档