问题
问答题
事务T1、T2和T3按如下调度方式并发地对数据项X、Y、Z进行访问,假设X、Y、Z的初值分别为X=200,Y=300,Z=500。
①在事务T2刚完成提交后,数据中X、Y、Z的值各是多少
②当事务T3结束后,X、Y、Z的值各是多少
T1 | T2 | T3 |
begin-transaction T1 read(X) X:=X-100 write(X) rollback | begin-transaction T2 read(Y) Y:Y+100 write(Y) commit | begin-transaction T3 read(Z) Z:Z*2 write(Z) commit |
答案
参考答案:①在事务T2刚完成提交后,T1已回滚,所以X的值不变;T2中Y被修改,由于T3还未提交,所以Z的值未被修改。综上所述,数据库中X、Y、Z的值分别为200、400、500。
②在事务T3结束后,T1已回滚,所以X的值不变;T2中Y被修改,T3中Z被修改。综上所述,数据库中X、Y、Z的值分别为200、400、1000。