并发调度的可串行性.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 数据库保护技术 10.5 并发控制 主要内容 一、数据库并发操作带来的数据不一致问题 一、数据库并发操作带来的数据不一致问题 一、数据库并发操作带来的数据不一致问题 一、数据库并发操作带来的数据不一致问题 一、数据库并发操作带来的数据不一致问题 二、锁 二、锁 二、锁 二、锁 二、锁 例:查看加共享锁情况。 在SQL Server中,运行SELECT事务。选择“对象资源管理器”,展开“管理”-“活动监视器”-“选择按对象分类的锁”。可看到锁的具体信息。 二、锁 二、锁 三、锁协议 三、锁协议 三、锁协议 三、锁协议 四、封锁带来的问题--活锁和死锁 四、封锁带来的问题--活锁和死锁 四、封锁带来的问题--活锁和死锁 四、封锁带来的问题--活锁和死锁 (3)切换回第一个查询窗口,执行如下语句。 UPDATE t2 SET i=3; 四、封锁带来的问题--活锁和死锁 四、封锁带来的问题--活锁和死锁 四、封锁带来的问题--活锁和死锁 四、封锁带来的问题--活锁和死锁 四、封锁带来的问题--活锁和死锁 四、封锁带来的问题--活锁和死锁 五、并发调度的可串行性 五、并发调度的可串行性 五、并发调度的可串行性 例10.12 通过银行的转账业务,来说明事务调度及可串行化调度的相关概念。假设有事务T1和事务T2。 事务T1:从账号A将数量为100的款项转到账号B; 事务T2:从账号B将20%的款项转到账号C。 假设A、B和C的初值分别为600、300和100。 六、两段锁协议 六、两段锁协议 七、锁的粒度 七、锁的粒度 七、锁的粒度 七、锁的粒度 小 结 本章总结 作业 10.12 10.13 1、事务的调度 调度:按某一执行次序安排的事务执行的步骤。 串行调度:多个事务依次执行。 并发调度:利用分时方法同时处理多个事务。 2、可串行化调度 多个事务的并发执行是正确的,当且仅当其结果与按某一顺序串行地执行它们时的结果相同,称这种调度为可串行化调度。 (a) T2 Read(A) A:=A-100 Write(A) Read(B) B:=B+100 Write(B) Read(B) Temp:=B*0.2 B:=B-temp Write(B) Read(C) C:=C+temp Write(C) T1 (b) Read(B) Temp:=B*0.2 B:=B-temp Write(B) Read(C) C:=C+temp Write(C) Read(A) A:=A-100 Write(A) Read(B) B:=B+100 Write(B) T2 T1 Read(A) A:=A-100 Write(A) Read(B) Temp:=B*0.2 B:=B-temp Write(B) Read(B) B:=B+100 Write(B) Read(C) C:=C+temp Write(C) Read(A) A:=A-100 Write(A) Read(B) B:=B+100 Write(B) Read(B) Temp:=B*0.2 B:=B-temp Write(B) Read(C) C:=C+temp Write(C) T1 T2 (c) T1 T2 (d) 1、定义 在每一个事务中,所有的加锁语句都在解锁语句之前的规则称为两段锁协议。 加锁段(扩展阶段):事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁。 解锁段(收缩阶段):事务可以释放任何数据项上的任何类型的琐,但是不能再申请任何琐。 2、两段锁协议 ① 两段锁协议和可串行化调度 若并发执行的所有事务均遵守两段锁协议,则对这些事务的任何并发调度策略都是可串行化的(充分条件,不是必要条件)。 ② 两段锁协议和一次加锁法 一次加锁法遵守两段锁协议; 遵守两段锁协议的事务并不遵守一次加锁法。 加锁项的大小称为锁的粒度。 当锁的粒度较小时,数据库所能加锁的项就较多,即同时可更多的事务并行操作,系统开销较大;当锁的粒度较大时,事务加锁的项就较少,事务的并行度就会降低,但系统开销较小。 1、多粒度锁 如果在一个系统中可同时提供多种锁粒度供不同的事务选择,则称这种加锁方法为多粒度锁。 最优效果:选择锁粒度时,同时考虑锁系统开销和并发度两个因素。 数据库 关系R1 关系Rn 元组 … 元组 元组 … 元组 三级粒度树 1、多粒度锁 多粒度锁协议允许多粒度树中的每个结点被独立地加锁。对一个结点加锁意味着这个结点的所有后裔结点也被加以同样类型的锁。 显式锁:事务的请求直接加到数据项上的锁; 隐式锁:该数据项没有独立加锁,但由于其上级结

文档评论(0)

136****3783 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档