问题
单项选择题
设有两个事务T1和T2,其并发操作序列如下表所示。下列说法中正确的是( )。
A.T1
B.T2
C.读A=100
D.
E.A=A*2写回
F.
G.
H.读A=200
I.ROLLBACK
J.
答案
参考答案:D
解析: 事务的并发执行可能出现3个主要问题; ①丢失更新。即两个事务对同一数据进行读取并修改,先做的那个修改动作被后面的修改掩盖了,又称为丢失修改。 ②对未提交更新的依赖。即事务T1读取了一个事务T2正在更新但尚未提交的数据,这个数据是一个数据库中并不存在的值。也就是俗称的读“脏”数据。 ③不一致的分析。假设事务T1要对账户求和,先读了账户1余额,此时事务T2将钱从账户1转到账户2,事务T2提交后事务T1继续执行,读取账户2的余额加到总数中,显然转走的钱被算了两次。这就是不一致的分析,又称不可重复读。 在本题中,T2在T1更新数据的过程中读取了数据,但之后T1执行了回滚操作,因此T2读到了脏数据。