数据库5版讲稿第十六章---并发控制课件.ppt
《数据库5版讲稿第十六章---并发控制课件.ppt》由会员分享,可在线阅读,更多相关《数据库5版讲稿第十六章---并发控制课件.ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023/3/291数据库系统概念-并发控制基于锁的协议基于锁的协议 l锁的概念锁的概念l事务T对某个数据对象操作之前,先向系统发出请求,对其加锁。加锁成功后,事务T开始对该数据对象进行操作,在事务T释放它的锁之前,其它的事务不能更新此数据对象。加锁不成功,事务T等待。l封锁协议:事务运用X锁和S锁对数据对象加锁时的约定。2023/3/292数据库系统概念-并发控制基于锁的协议基于锁的协议 l锁的类型锁的类型lX锁锁:排它型锁(exclusive lock),又称为写锁(为写操作而加得锁)。l若事务T对数据对象Q加上X锁,则只允许T读取和修改Q,直到T释放Q上的锁,其他任何事务都不能对Q加上加
2、上任何类型的锁,提出加锁,只能等待。l保证了其它事务在T释放A上的X锁之前,不能再读取和修改Q 2023/3/293数据库系统概念-并发控制基于锁的协议基于锁的协议 lS锁锁:共享型锁(share lock),又称为读锁(仅为读操作而加得锁)。l若事务T对数据对象Q加上S锁,其它事务还能再对Q加上S锁,但加不上X锁。l保证了T释放Q上的S锁之前,其它事务可以读Q,不能对Q做任何修改。2023/3/294数据库系统概念-并发控制基于锁的协议基于锁的协议 时间时间T1库库A的值的值T2并发控制器并发控制器11002LOCK-X(A)3GANT-X(A,T1)4LOCK-X(A)5Read(A)等待
3、等待6A=A-30等待等待7WRITE(A)70等待等待8COMMIT70等待等待9UNLOCK-X(A)GANT-X(A,T2)10 READ(A)11A=A*212140WRITE(A)13140COMMIT14UNLOCK-X(A)2023/3/296数据库系统概念-并发控制基于锁的协议基于锁的协议 l不能保证可重复读,不能保证可重复读,T2T2第一次读第一次读100100,第二次读,第二次读7070时间时间T1AT2并发控制器并发控制器11002READ(A)3LOCK-X(A)4 GANT-X(A,T1)5Read(A)6A=A-30 7WRITE(A)70 8COMMIT70 9U
4、NLOCK-X(A)10 READ(A)2023/3/297数据库系统概念-并发控制基于锁的协议基于锁的协议 l不能保证不读不能保证不读“脏脏”数据数据时间时间T1AT2并发控制器并发控制器11002LOCK-X(A)3GANT-X(A,T1)4Read(A)5A=A-30 6WRITE(A)70 7READ(A)8ROLLBACK 100 9UNLOCK-X(A)2023/3/298数据库系统概念-并发控制基于锁的协议基于锁的协议 l 时间时间T1库库A的值的值T2并发控制器并发控制器11002LOCK-X(A)3GANT-X(A,T1)4Read(A)5A=A-30 6WRITE(A)70
5、 7LOCK-S(A)8 等待等待9ROLLBACK 10010UNLOCK-X(A)GANT-S(A,T2)11READ(A)12UNLOCK-S(A)2023/3/2910数据库系统概念-并发控制基于锁的协议基于锁的协议 l 时间时间T1库库A的值的值T2并发控制器并发控制器11002LOCK-S(A)3GANT-S(A,T2)4 READ(A)5100UNLOCK-S(A)6LOCK-X(A)7 GANT-X(A,T1)8Read(A)9A=A-30 10WRITE(A)70READ(A)11COMMIT7012UNLOCK-X(A)13LOCK-S(A)14GANT-S(A,T2)15
6、 READ(A)16UNLOCK-S(A)2023/3/2911数据库系统概念-并发控制基于锁的协议基于锁的协议 l 时间时间T1A的值的值T2并发控制器并发控制器11002LOCK-S(A)3GANT-S(A,T2)4100 READ(A)5LOCK-X(A)6等待等待 7等待等待100 READ(A)8等待等待UNLOCK-S(A)9Read(A)GANT-X(A,T1)10A=A-3011WRITE(A)7012COMMIT7013UNLOCK-X(A)2023/3/2913数据库系统概念-并发控制基于锁的协议基于锁的协议 l例:例:T1的封锁序列的封锁序列l LOCK-S(A).LOC
7、K-S(B).LOCK-X(C).UNLOCK-S(B).UNLOCK-S(A).UNLOCK-X(C).lT2的封锁序列是的封锁序列是lLOCK-S(A).UNLOCK-S(A).LOCK-S(B).LOCK-X(C).UNLOCK-X(C).UNLOCK-S(B).lT1遵守,遵守,T2不遵守。不遵守。2023/3/2915数据库系统概念-并发控制基于锁的协议基于锁的协议 l所有事务都遵守两阶段协议,并发调度是可串性化的。(充分条件,不是必要条件)。l事务不遵守两阶段协议,并发调度是能是可串性化的,也可能不是。l例:T9:H=F+1,T10:F=G+1,l T11:F=H+1l初值:H、F
8、、G 都为02023/3/2916数据库系统概念-并发控制基于锁的协议基于锁的协议 l T9、T11遵守两阶段协议的并发调度,是时间时间T9F、G、HT11并发控制器并发控制器10,0,02LOCK-S(F)3GANT-S(F,T9)4Read(F)0,0,0 5TEMP1=F 6LOCK-X(H)7 GANT-X(H,T9)8LOCK-S(H)9H=TEMP1+1 等待等待10WRITE(H)0,0,1等待等待11COMMIT 0,0,1等待等待12UNLOCK-X(H)等待等待2023/3/2918数据库系统概念-并发控制基于锁的协议基于锁的协议 l 13GANT-S(H,T11)140,
9、0,1READ(H)15TEMP2=H16LOCK-X(F)17UNLOCK-S(F)等待等待18GANT-X(F,T11)19F=TEMP2+1202,0,1WRITE(F)212,0,1COMMIT22 UNLOCK-X(F)23UNLOCK-S(H)2023/3/2919数据库系统概念-并发控制基于锁的协议基于锁的协议 lT9、T10不遵守两阶段协议的并发调度,是 时间时间T9F、G、HT10并发控制器并发控制器10,0,02LOCK-S(F)3GANT-S(F,T9)4Read(F)0,0,0 5TEMP1=F 6UNLOCK-S(F)7 LOCK-S(G)8 GANT-S(G,T10
10、)9 0,0,0READ(G)10 TEMP2=G11 UNLOCK-S(G)2023/3/2920数据库系统概念-并发控制基于锁的协议基于锁的协议 l 12 LOCK-X(F)13 GANT-X(F,T10)14 F=TEMP2+1151,0,0WRITE(F)161,0,0COMMIT17UNLOCK-X(F)18LOCK-X(H)19GANT-X(H,T9)20H=TEMP1+121WRITE(H)1,0,122COMMIT1,0,123UNLOCK-X(H)2023/3/2921数据库系统概念-并发控制基于锁的协议基于锁的协议 lT9、T11不遵守两阶段协议的并发调度,不遵守两阶段协议
11、的并发调度,不是 时间时间T9F、G、HT11并发控制器并发控制器10,0,02LOCK-S(F)3GANT-S(F,T9)4Read(F)0,0,0 5TEMP1=F 6UNLOCK-S(F)7 LOCK-S(H)8 GANT-S(H,T11)9 0,0,0READ(H)10 TEMP2=H11 UNLOCK-S(H)2023/3/2922数据库系统概念-并发控制基于锁的协议基于锁的协议 l死锁和活锁死锁和活锁 两个或两个以上的事务都在等待其中另一个两个或两个以上的事务都在等待其中另一个事务解除封锁,它才能继续执行下去,结果事务解除封锁,它才能继续执行下去,结果任何一个事务都无法继续执行,这
12、种现象称任何一个事务都无法继续执行,这种现象称为死锁为死锁(dead lock)(dead lock)。l封锁技术可能产生某个事务可能永远处于等封锁技术可能产生某个事务可能永远处于等待状态,得不到执行的机会,这种现象称为待状态,得不到执行的机会,这种现象称为活锁活锁(live lock)(live lock)。2023/3/2924数据库系统概念-并发控制基于锁的协议基于锁的协议 l解决活锁的一种简单方法是采用解决活锁的一种简单方法是采用“先来者先先来者先执行执行”的控制策略,也就是简单的排队方式。的控制策略,也就是简单的排队方式。lDBMSDBMS中有一个中有一个“死锁测试程序死锁测试程序”
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 讲稿 第十六 并发 控制 课件
限制150内