您当前的位置: 首页 >  liyatjj 数据库

数据库第十一章习题作业

liyatjj 发布时间:2021-05-25 19:51:42 ,浏览量:1

目录
  • 9.
    • (1)
    • (2)
    • (3)
    • (4)
    • (5)
  • 10.
  • 14.
    • (1)
    • (2)
    • 总结:

在这里插入图片描述

9.

设T1、T2、T3是如下的三个事务,设A的初值是0。 T1:A:=A+2; T2:A:=A*2; T3:A:=A**2;

(1)

若这三个事务允许并发执行,则有多少可能的正确结果。 串行执行次序有: T1、T2、T3 T1、T3、T2 T2、T1、T3 T2、T3、T1 T3、T1、T2 T3、T2、T1 执行结果分别为:16,8,4,2,4,2 一共有4种可能的正确结果,分别为2,4,8,16

(2)

请给出一个可串行化的调度,并给出执行结果。

T1T2T3Slock AR(A)=0Unlock AXlock ASlockAA=A+2等待W(A)=2等待Unlock A等待R(A)=2Unlock AXlock ASlock AA=A*2等待W(A)=4等待Unlock A等待R(A)=4Unlock AXlock AA=A**2W(A)=16Unlock A (3)

请给出一个非串行化的调度,并给出执行结果。

T1T2T3Slock AR(A)=0Unlock ASlock AR(A)=0Xlock A等待Unlock AA=A+2W(A) =2Slock AUnlock A等待R(A)=2Unlock AXlock AXlock A等待A=A**2等待W(A)=4等待Unlock AA=A*2W(A)=0Unlock A (4)

若这三个事务都遵守两端锁协议,请给出一个不产生死锁的可串行化调度。

T1T2T3Slock AR(A)=0Xlock AA=A+2Slock AW(A)=2等待Unlock A等待R(A)=2Xlock AUnlock A等待Slock AA=A*2等待W(A)=4等待Unlock A等待R(A)=4Unlock AXlock AA=A**2W(A)=16Unlock AUnlock A (5)

若这三个事务都遵守两端锁协议,请给出一个产生死锁的调度。

T1T2T3Slock AR(A)=0Slock AR(A)=0Xlock A等待等待…Xlock A等待…Slock AR(A)=0Xlock A等待… 10.

今有三个事务的一个调度r3(B)r1(A)w3(B)r2(B)r2(A)w2(B)r1(B)w1(A),该调度是冲突可串行化的调度吗?

由于r1(A)和w3(B)是不冲突操作,交换r1(A)、w3(B),可得 r3(B)w3(B)r1(A)r2(B)r2(A)w2(B)r1(B)w1(A) 由于r1(A)和r2(B)r2(A)w2(B)是不冲突操作,交换,可得 r3(B)w2(B)r2(B)r2(A)w2(B)r1(A)r1(B)w1(A)是一个串行调度 所以原调度是冲突可串行化调度。

14.

对于T1和T2: T1:R(A);R(B);B=A+B;W(B) T1:R(B);R(A);A=A+B;W(A)

(1)

改写T1和T2,增加加锁操作和解锁操作,并要求遵循两阶段封锁协议。

T1T2Slock AR(A)Slock BR(B)Xlock BB=A+BW(B)Unlock BSlock BR(B)Unlock BUnlock ASlock AR(A)Xlock AA=A+BW(A)Unlock AUnlock AUnlock B (2)

说明T1和T2的执行是否会引起死锁,给出T1和T2的一个调度并说明之。 会引起死锁。

T1T2Slock AR(A)Slock BR(B)Slock BR(B)Xlock B等待Slock A等待R(A)等待Xlock A…等待 总结:

1.排他锁–写锁–X锁;共享锁–读锁–S锁 2.死锁:T1等待T2,T2等待T1.两个事务永远不能结束,形成死锁。 3.通过交换不冲突的操作得到新调度,如果新调度是串行的,称原调度是冲突可串行化调度。 4.如果一个调度是冲突可串行化,则一定是可串行化的调度。

完。

关注
打赏
1688896170
查看更多评论

liyatjj

暂无认证

  • 1浏览

    0关注

    99博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0506s