设 Tl , T2 , T3 是如下的 3 个事务:****
Tl : A : = A + 2 ;
T2 : A : = A * 2 ;
T3 : **A : = A 2 ; ( A ← A*A **)******
设 A 的初值为 0 。****
( l )若这 3 个事务允许并行执行,则有多少可能的正确结果,请一一列举出来。****
答 : A 的最终结果可能有 2 、 4 、 8 、 16 。因为串行执行次序有 Tl T2T3 、 Tl T3T2 、 T2T1T3 、 T2T3Tl 、 T3T1T2 、 T3T2 Tl 。对应的执行结果是 16 、 8 · 4 · 2 · 4 · 2 。
( 2 )请给出一个可串行化的调度,并给出执行结果****
**答:
最后结果 A 为 16 ,是可串行化的调度。****
( 3 )请给出一个非串行化的调度,并给出执行结果。****
**答:
最后结果 A 为 0 ,为非串行化的调度。
( 4 )若这 3 个事务都遵守两段锁协议,请给出一个不产生死锁的可串行化调度。****
**答:
( 5 )若这 3 个事务都遵守两段锁协议,请给出一个产生死锁的调度。****
**答: