令S为关系数据库系统中三个事务T1,T2和T3的以下操作时间表:
R2(Y),R1(X),R3(Z),R1(Y)W1(X),R2(Z),W2(Y),R3(X),W3(Z)
考虑下面的语句P和Q:
- P: S是可序列化的冲突。
- 问:如果T3在T1完成之前提交,则S是可恢复的。
以下哪个选择是正确的?
(A) P和Q均为真
(B) P为真Q为假
(C) P为假而Q为真
(D) P和Q均为假答案: (B)
解释:
T1 | T2 | T3 |
R(Y) | ||
R(X) | ||
R(Z) | ||
R(Y) | ||
W(X) | ||
R(Z) | ||
W(Y) | ||
R(X) | ||
W(Z) |
因此,语句P是可冲突序列化的。
附表S是可恢复的,如果T j通过用T读取写入的数据i和T J提交我犯后T创建脏读。
T1和T2必须在T3之前提交,因为T3脏读取了T1和T2的值,因此,如果T3在T1完成之前提交,则S将不可恢复。
因此,陈述Q为假。
这个问题的测验