数据库系统概论第十一章习题.docx

数据库系统概论第十一章习题.docx

ID:62930043

大小:70.18 KB

页数:3页

时间:2021-06-26

数据库系统概论第十一章习题.docx_第1页
数据库系统概论第十一章习题.docx_第2页
数据库系统概论第十一章习题.docx_第3页
资源描述:

《数据库系统概论第十一章习题.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十一章习题9.设T1,T2,T3是的三个事务:T1:A=A+2;T2:A=A*2;T3:A=A**2;(A-A2)设A的初值为0;(1)若这三个事务允许并发执行,则有多少种可能的正确结果,请一一列举出来;(2)请给出一个可串行化的调度,并给出执行结果;(3)请给出一个非串行化的调度,并给出执行结果;(4)若这三个事务都遵守两段锁协议,请给出一个不产生死锁的可串行化调度;(5)若这三个事务都遵守两段锁协议,请给出一个产生死锁的调度。解:(1)4种A=16,8,4,2T1—T2—T3A=16T1—T3—T2A=8T2—T1—T3或T3—T1—T2A=4T2—T3—T

2、1或T3—T2—T1A=2(2)一个可串行化的调度及执行结果如下图所示:时间T1T2T3t1SlockAt2X=A=0t3UnlockAt4XlockAt5SlockAt6A=X+2等待t7写回A(=2)等待t8UnlockA等待t9获彳导SlockAt10X=A=2t11UnlockAt12XlockAt13SlockAt14A=X*2等待t15写回A(=4)等待t16UnlockA等待t17获彳导SlockAt18X=A=4t19UnlockAt20XlockAt21A=^t22写回A(=16)t23UnlockA执行结果为A=16,是可串行化的调度。(3)一

3、个非串行化调度及执行结果如下图所示:时间T1T2T3t1SlockAt2X=A=0t3UnlockAt4SlockAt5X=A=0t6XlockAt7等待UnlockAt8获彳导XlockAt9A=X+2t10写回A(=2)SlockAt11UnlockA等待t12获彳导SlockAt13X=A=4t14UnlockAt15XlockAt16XlockAt17等待A=X2t18等待写回A(=4)t19等待UnlockAt20获彳导XockAt21A=X*2t22写回A(=0)t23UnlockA运行结果A=0,为非串行化调度。(4)若三个串行事务都遵守两段锁协议,

4、下图是按T3—T1—T2顺序运行的一个不产生死锁的可串行化调度;时间T1T2T3t1SlockAt2X=A=0t3XlockAt4SlockA2A=Xt5等待写回A(=0)t6等待UnlockAt7X=A=0t8XlockAt9等待SlockAUnlockAt10A=X+2等待t11写回A(=2)等待t12UnlockA等待t13X=A=2XlockAUnlockA等待A=X*2写回A(=4)UnlockAUnlockA从上可见,按照T3—T1—T2的顺序执行结果A=4完全与串行化调度相同,所以是一个不产生死锁的可串行化的调度。(5)若三个事务都遵守两段锁协议,下

5、图是一个产生死锁的调度。时间T1T2T3t1SlockAt2X=A=0t3SlockAt4X=A=0t5XlockAt6等待t7XlockAt8等待SlockAX=A=0XlockA等待上例中,T1申请对X1加写锁,由于T2对X1加了读锁,所以不成功,处于等待状态;T2申请对A加写锁,由于T1对A加了读锁,所以不成功,处于等待状态;T3申请对A加读锁,由于T1对A加了读锁,所以不成功,处于等待状态。因此,三个事务都处于等待状态,产生死锁。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。