《数据库系统概论》第十一章习题.doc

《数据库系统概论》第十一章习题.doc

ID:52915882

大小:51.50 KB

页数:3页

时间:2020-03-31

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

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

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―T1或T3―T2

2、―T1A=2(2)一个可串行化的调度及执行结果如下图所示:时间T1T2T3t1t2t3t4t5t6t7t8t9t10t11t12t13t14t15t16t17t18t19t20t21t22t23SlockAX=A=0UnlockAXlockAA=X+2写回A(=2)UnlockASlockA等待等待等待获得SlockAX=A=2UnlockAXlockAA=X*2写回A(=4)UnlockASlockA等待等待等待获得SlockAX=A=4UnlockAXlockAA=X2写回A(=16)UnlockA执行结果为A=16,是可串行化的调度。(3)一个非串行化调度及执行结果如下图所示:时

3、间T1T2T3t1t2t3t4t5t6t7t8t9t10t11t12t13t14t15t16t17t18t19t20t21t22t23SlockAX=A=0UnlockAXlockA等待获得XlockAA=X+2写回A(=2)UnlockASlockAX=A=0UnlockAXlockA等待等待等待获得XockAA=X*2写回A(=0)UnlockASlockA等待获得SlockAX=A=4UnlockAXlockAA=X2写回A(=4)UnlockA运行结果A=0,为非串行化调度。(4)若三个串行事务都遵守两段锁协议,下图是按T3-T1-T2顺序运行的一个不产生死锁的可串行化调度;时

4、间T1T2T3t1t2t3t4t5t6t7t8t9t10t11t12t13SlockA等待等待X=A=0XlockA等待A=X+2写回A(=2)UnlockAUnlockASlockA等待等待等待X=A=2XlockA等待A=X*2写回A(=4)UnlockAUnlockASlockAX=A=0XlockAA=X2写回A(=0)UnlockAUnlockA从上可见,按照T3-T1-T2的顺序执行结果A=4完全与串行化调度相同,所以是一个不产生死锁的可串行化的调度。(5)若三个事务都遵守两段锁协议,下图是一个产生死锁的调度。时间T1T2T3t1t2t3t4t5t6t7t8SlockAX=

5、A=0XlockA等待SlockAX=A=0XlockA等待SlockAX=A=0XlockA等待上例中,T1申请对X1加写锁,由于T2对X1加了读锁,所以不成功,处于等待状态;T2申请对A加写锁,由于T1对A加了读锁,所以不成功,处于等待状态;T3申请对A加读锁,由于T1对A加了读锁,所以不成功,处于等待状态。因此,三个事务都处于等待状态,产生死锁。

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

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

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