- 1
- 0
- 约8.84千字
- 约 45页
- 2016-12-26 发布于广东
- 举报
数据库技术基础 第6章 事务管理 下课了。。。 6.4.2 封锁技术 两段封锁协议: 1. 在事务T的R(A)操作之前,先对A加S锁,如果加锁成功,则执行操作R(A),否则,将R(A)加入A的等待队列。 2. 在事务T的W(A)操作之前,先对A加X锁,如果加锁成功,则执行操作W(A),否则,将W(A)加入A的等待队列。 3. 在收到事务的ABORT或COMMIT请求后,释放T在每个数据上所加的锁,如果在数据A的等待队列中不空,即有其它的事务等待对A进行操作,则从队列中取出第一个操作,完成加锁,然后执行该操作 S锁和X锁 S锁又叫共享锁(Shared Lock)。 若事务T对数据库对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这就保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。 X锁又叫排它锁(Exclusive Lock)。 若事务T对数据库对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。这就保证了其他事务在T释放A上的锁之前不能再读取和修改A。 6.4.2 封锁技术 T1 T2 X S - X N N Y S N Y Y - Y Y Y 表6.2 封锁类型的相容矩阵 封锁类型相容矩阵中,最左边一列表示事务T1已经获得的数据库对象上的锁的类型,其中横线表示没有加锁。最上面一行表示另一事务T2对同一数据库对象发出的封锁请求。T2的封锁请求能否被满足用矩阵中的Y和N表示,其中Y表示事务T2的封锁要求与T1已持有的锁相容,封锁请求可以满足。N表示T2的封锁请求与T1已持有的锁冲突,T2的请求被拒绝。 Y=Yes,相容的请求 N=No,不相容的请求 6.4.2 封锁技术(续) 封锁粒度 封锁对象的大小称为封锁粒度。 粒度越小,并发度越高,但封锁表就会很大,用于加锁解锁的开销也会增大。 6.4.2 封锁技术(续) [例6.4]事务T1从账户A中转账100元到账户B,事务T2从账户C转账50元到账户A。账户A、B、C的初始余额分别是260元、1000元和300元。事务T1和T2执行完后,A、B、C的余额分别是210元、1100元和250元。 用SLOCK(x)表示对数据x加S锁,XLOCK(x)表示对数据x加X锁,UNLOCK(x)表示释放对数据x所加的锁。 T1 R(A) W(A) R(B) W(B) T2 R(C) W(C) R(A) W(A) 次序 1 2 3 4 5 6 7 8 图6.9 事务的执行次序 6.4.2 封锁技术(续) 时刻 T1 T2 t1 SLOCK(A) t2 R(A=260) t3 SLOCK( C ) t4 R(C=300) t5 XLOCK(A) t6 W(A=160) t7 XLOCK( C ) t8 W(C=250) t9 SLOCK(A) t10 SLOCK(B) 等待 t11 R(B=1000) 等待 t12 XLOCK(B) 等待 t13 W(B=1100) 等待 t14 UNLOCK(A) 等待 t15 R(A=160) t16 XLOCK(A) t17 UNLOCK(B) t18 W(A=210) t19 UNLOCK( C ) t20 UNLOCK( A ) 6.4.2 封锁技术(续) 表6.4 两段封锁 死锁问题 两个事务都处于无限的等待中,不能继续执行下去,称为死锁问题 T1 A B T2 图6.7 死锁状态图 6.4.2 封锁技术(续) [例5]事务T1和T2的执行次序如表6.5所示,调度程序的调度过程如表6.6所示。 6.4.2 封锁技术(续) W(B) 8 R(B) 7 W(A) 6 W(A) 5 R(A) 4 W( C) 3 次序 T1 T2 1 R(A) 2 R(C) 表6.5 事务的执行次序 6.4.2 封锁技术(续) 时刻 T1 T2 t1 SLOCK(A) t2 R(A=260) t3 SLOCK( C ) t4 R(C=300) t5 XLOCK( C ) t6 W(C=250) t7 SLOCK(A) t8 R(A=260) t9 XLOCK(A) t10 等待 XLOCK(A) t11 等待 t12 等待 t13 等待 t14 ROLLBACK 等待 t15 W(A=310) t16 UNLOCK( C ) t17 UNLOCK( A ) 表6.6 死锁的处理 6.4.2 封锁技术(续) 解决死锁常用的方法 要求每个事务一次就将要使用的数据全部加锁,否则就不能继续执行。这样就可以避免死锁发生。 预先规定一个封锁顺序,所有事务都按这个顺序实行封锁,这样也不会发生死锁。
您可能关注的文档
- 数据结构教学课件作者李学刚电子课件源代码单元5图课件.ppt
- 数据结构教学课件作者李学刚电子课件源代码单元6排序课件.ppt
- 数据结构教学课件作者李学刚电子课件源代码单元7查找课件.ppt
- 数据库技术基础教学课件作者王珊chp1课件.ppt
- 数据库技术基础教学课件作者王珊chp2课件.ppt
- 数据库技术基础教学课件作者王珊chp3课件.ppt
- 数据库技术基础教学课件作者王珊chp4课件.ppt
- 数据库技术基础教学课件作者王珊chp5课件.ppt
- 数据库技术基础教学课件作者王珊chp7课件.ppt
- 数据库技术基础教学课件作者王珊chp8课件.ppt
- 统编版2025年春季新版七年级下册历史 第21课 明清时期的科技与文化 教案.docx
- 雅安雨城法院书记员招聘考试真题库2025.docx
- 2026届安徽合肥市高考一模高考语文试卷试题(含答案详解).pdf
- 【专题研究】国内外城市更新研究的最新进展.pdf
- 【专题研究】老旧城区改造居民满意度影响因素研究——以遂宁市老旧城区改造为例.pdf
- 【专题研究】关于旧城空间改造理论与创意设计案例的几点思考.pdf
- 西藏拉萨市高三下学期期末物理备考重点详解.docx
- 泾县法院书记员招聘笔试真题2025.pdf
- 2026年春【苏教版】-六年级数学下册-面积的变化.pptx
- 2026年春【苏教版】-六年级数学下册-7.pptx
最近下载
- 英语分级阅读:国家地理《Reading Explorer》A1-A2入门级 REF_unit 1A.pdf VIP
- 社区社会工作教学课件 周沛 易艳阳-第1章 社区概述.pptx VIP
- 急性胰腺炎急诊诊治专家共识(2024).pptx VIP
- 2025年AWS认证SavingsPlans在游戏行业中的应用案例专题试卷及解析.pdf VIP
- FDS火灾模拟软件使用教程.pptx VIP
- 2022版《小学数学新课程标准》的解读与梳理PPT课件.pptx VIP
- 制作一:布绒玩具制作.ppt VIP
- 胃潴留的护理.ppt
- 2026广东省佛山市南海公证处公开招聘公证员助理2人笔试参考题库及答案解析.docx VIP
- 解剖关节学课件.ppt VIP
原创力文档

文档评论(0)