例1:
(1)重做(REDO):T1,T2,T3; 撤销(UNDO):T4。
(2)重做:T1,T2; 撤销:T3。
(3)重做:T1; 撤销:T2,T3.
(4)重做:T1; 撤销:T2
如果故障发生在14之后,通过表格可以看到T1,T2,T3已经提交,T4还没有提交,所以T1,T2,T3需要重做,T4需要回滚。
例2:
看是否提交,没有提交就是没有保存。
看2,3,4,5,因为T1是提交了的,所以A,C都是有了值的。
看6,因为在T1是在5之后提交的,所以ABC都为0.
例3:
已知有三个事务的一个调度R3(B)R1(A)W3(B)R2(B)R2(A)W2(B)R1(B)W1(A),试问该调度是否是冲突可串行化调度?为什么?
该调度是冲突可串行化调度,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)W3(B)R2(B)R2(A)W2(B)R1(A)R1(B)W1(A)