问题 单项选择题

设有两个事务T1和T2,其并发操作序列如下表所示。下列说法中正确的是( )。

 T1  T2
 读A=100
 A=A*2写回
 读A=200
 ROLLBACK

A.该操作序列不存在问题

B.该操作序列丢失修改

C.该操作序列不能重复读

D.该操作序列读出脏数据

答案

参考答案:D

解析: 事务的并发执行可能出现3个主要问题;
①丢失更新。即两个事务对同一数据进行读取并修改,先做的那个修改动作被后面的修改掩盖了,又称为丢失修改。
②对未提交更新的依赖。即事务T1读取了一个事务T2正在更新但尚未提交的数据,这个数据是一个数据库中并不存在的值。也就是俗称的读“脏”数据。
③不一致的分析。假设事务T1要对账户求和,先读了账户1余额,此时事务T2将钱从账户1转到账户2,事务T2提交后事务T1继续执行,读取账户2的余额加到总数中,显然转走的钱被算了两次。这就是不一致的分析,又称不可重复读。
在本题中,T2在T1更新数据的过程中读取了数据,但之后T1执行了回滚操作,因此T2读到了脏数据。

翻译题
单项选择题