问答题
阅读以下说明和关系表,回答问题1~2,将解答填入对应的解答栏内。
[说明]
设T1、T2是如下两个事务:
T1:A=B+2
T2:B=A*B
A、B的初值分别是2和2。
问答题
[问题1]
假设T1和T2可以并发执行,且对T1、T2的调度不加限制,它们的并发执行可能产生哪几种结果? |
【正确答案】
【答案解析】第一种调度:①读A=2,B=2: (T1)
②A=B+2=4 (T1)
③写回A=4,B=2 (T1)
④读A=4,B=2 (T2)
⑤B=A*B=8 (T2)
⑥写回A=4,B=8 (T2)
结果:A=4,B=8
第二种调度:①读A=2,B=2 (T2)
②B=A*B=4 (T2)
③写回A=2,B=4 (T2)
④读A=2,B=4 (T1)
⑤A=B+2=4 (T1)
⑥写回A=4,B=4 (T2)
结果:A=4,B=4
第三种调度:①读A=2,B=2 (T1)
②读A=2,B=2 (T2)
③A=B+2=4 (T2)
④B=A*B=4 (T2)
⑤写回A=4,B=2 (T1)
⑥写回A=2,B=4 (T2)
结果:A=2,B=4
第四种调度:①读A=2,B=2 (T2)
②读A=2,B=2 (T1)
③B=A*B=4 (T2)
④A=B+2=4 (T1)
⑤写回A=2,B=4 (T2)
⑥写回A=4,B=2 (T1)
结果:A=4,B=2
第五种调度:①读A=2,B=2 (T1)
②A=B+2=4 (T1)
③读A=2,B=2 (T2)
④B=A*B=4 (T2)
⑤写回A=4,B=2 (T1)
⑥写回A=2,B=4 (T2)
结果:A=2,B=4
第六种调度:①读A=2,B=2 (T2)
②B=A*B=4 (T2)
③读A=2,B=2 (T1)
④A=B+2=4 (T1)
⑤写回A=2,B=4 (T2)
⑥写回A=4,B=2 (T1)
结果:A=4,B=2
【正确答案】
【答案解析】第一种调度结果:A=4,B=8;第二种调度结果:A =4,B=4正确。
根据被并行调度策略的可串行化的调度原则,两个事务并发执行的结果只要和任意一种串行的结果相同,就认为是正确的,所以第一、二种调度都正确。