问答题
阅读以下说明和关系表,回答问题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
问答题
[问题2]
这些结果中哪些是正确的?
【正确答案】
【答案解析】第一种调度结果:A=4,B=8;第二种调度结果:A =4,B=4正确。 根据被并行调度策略的可串行化的调度原则,两个事务并发执行的结果只要和任意一种串行的结果相同,就认为是正确的,所以第一、二种调度都正确。