第11章并发控制.ppt
《第11章并发控制.ppt》由会员分享,可在线阅读,更多相关《第11章并发控制.ppt(94页珍藏版)》请在优知文库上搜索。
1、 第十一章第十一章 并发控制并发控制目 录11.1 11.1 并发控制概述并发控制概述11.2 11.2 封锁封锁11.3 11.3 活锁和死锁活锁和死锁 11.3.1 11.3.1 活锁活锁 11.3.2 11.3.2 死锁死锁11.4 11.4 并发调度的可串行性并发调度的可串行性 11.4.1 11.4.1 可串行化调度可串行化调度 11.4.2 11.4.2 冲突可串行化调度冲突可串行化调度11.5 11.5 两段锁协议两段锁协议11.6 11.6 封锁的粒度封锁的粒度 11.6.1 11.6.1 多粒度封锁多粒度封锁 11.6.2 11.6.2 意向锁意向锁11.7 11.7 小结小
2、结问题的产生 多用户数据库系统的存在 允许多个用户同时使用的数据库系统n飞机定票数据库系统n银行数据库系统 特点:在同一时刻并发运行的事务数可达数百个 问题的产生(续)不同的多事务执行方式 (1)事务串行执行每个时刻只有一个事务运行,其他事务必须等到这个事务结束以后方能运行不能充分利用系统资源,发挥数据库共享资源的特点T1T2T3事务的串行执行方式问题的产生(续)(2)交叉并发方式(Interleaved Concurrency)在单处理机系统中,事务的并行执行是这些并行事务的并行操作轮流交叉运行单处理机系统中的并行事务并没有真正地并行运行,但能够减少处理机的空闲时间,提高系统的效率问题的产生
3、(续)事务的交叉并发执行方式问题的产生(续)(3)同 时 并 发 方 式(s i m u l t a n e o u s concurrency)多处理机系统中,每个处理机可以运行一个事务,多个处理机可以同时运行多个事务,实现多个事务真正的并行运行问题的产生(续)事务并发执行带来的问题会产生多个事务同时存取同一数据的情况 可能会存取和存储不正确的数据,破坏事务一致性和数据库的一致性11.1 并发控制概述 并发控制机制的任务对并发操作进行正确调度保证事务的隔离性保证数据库的一致性T1的修改被T2覆盖了!并发控制概述(续)并发控制概述(续)并发操作带来数据的不一致性实例并发操作带来数据的不一致性实
4、例例1飞机订票系统中的一个活动序列 甲售票点(甲事务)读出某航班的机票余额A,设A=16;乙售票点(乙事务)读出同一航班的机票余额A,也为16;甲售票点卖出一张机票,修改余额AA-1,所以A为15,把A写回数据库;乙售票点也卖出一张机票,修改余额AA-1,所以A为15,把A写回数据库 n 结果明明卖出两张机票,数据库中机票余额只减少1 并发控制概述(续)这种情况称为数据库的不一致性,是由并发操作引起的。在并发操作情况下,对甲、乙两个事务的操作序列的调度是随机的。若按上面的调度序列执行,甲事务的修改就被丢失。原因:第4步中乙事务修改A并写回后覆盖了甲事务的修改并发控制概述(续)并发操作带来的数据
5、不一致性丢失修改(Lost Update)不可重复读(Non-repeatable Read)读“脏”数据(Dirty Read)记号R(x):读数据xW(x):写数据x 1.丢失修改 两个事务T1和T2读入同一数据并修改,T2的提交结果破坏了T1提交的结果,导致T1的修改被丢失。上面飞机订票例子就属此类 丢失修改(续)T1T2 R(A)=16R(A)=16 AA-1 W(A)=15WAA-1W(A)=15丢失修改2.不可重复读 不可重复读是指事务T1读取数据后,事务T2 执行更新操作,使T1无法再现前一次读取结果。不可重复读(续)不可重复读包括三种情况:(1)事务T1读取某一数据后,事务T2
6、对其做了修改,当事务T1再次读该数据时,得到与前一次不同的值 不可重复读(续)n T1读取B=100进行运算n T2读取同一数据B,对其进行修改后将B=200写回数据库。n T1为了对读取值校对重读B,B已为200,与第一次读取值不一致 T1T2 R(A)=50 R(B)=100求和=150R(B)=100BB*2(B)=200 R(A)=50R(B)=200和=250(验算不对)不可重复读 例如:不可重复读(续)(2)事务T1按一定条件从数据库中读取了某些数据记录后,事务T2删除了其中部分记录,当T1再次按相同条件读取数据时,发现某些记录消失了(3)事务T1按一定条件从数据库中读取某些数据记
7、录后,事务T2插入了一些记录,当T1再次按相同条件读取数据时,发现多了一些记录。后两种不可重复读有时也称为幻影现象(Phantom Row)3.读“脏”数据 读“脏”数据是指:n事务T1修改某一数据,并将其写回磁盘n事务T2读取同一数据后,T1由于某种原因被撤销n这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致nT2读到的数据就为“脏”数据,即不正确的数据 读“脏”数据(续)T1T2 R(C)=100 CC*2 W(C)=200R(C)=200ROLLBACK C恢复为100例如例如读“脏”数据 n T1将C值修改为200,T2读到C为200n T1由于某种原因撤销,其修
8、改作废,C恢复原值100n 这时T2读到的C为200,与数据库内容不一致,就是“脏”数据 并发控制概述(续)数据不一致性:由于并发操作破坏了事务的隔离性 并发控制就是要用正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性 并发控制概述(续)并发控制的主要技术有封锁(Locking)时间戳(Timestamp)乐观控制法 商用的DBMS一般都采用封锁方法 11.2 封锁 什么是封锁 基本封锁类型 锁的相容矩阵什么是封锁 封锁就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁 加锁后事务T就对该数据对象有了一定的控制,在事务T释
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第11章 并发控制 11 并发 控制