设有两个事务T1和T2,其并发操作序列如下表所示。下列说法中正确的是步骤 T1 T21 读A=1002 A=A*2写回34 ROLLBACK 读A=200A.该操作序列不存在问题B.该操作序列丢失修改C.该操作序列不能重复读D.该操作序列读出“脏”数据

题目

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

1 读A=100

2 A=A*2写回

3

4 ROLLBACK 读A=200

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

B.该操作序列丢失修改

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

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


相似考题
参考答案和解析
正确答案:D
解析:本题考查并发操作引起的数据不一致性的基本概念。由于一个事务在执行期间,另一个事务的修改操作使得前者的两次读操作返回不同值,因而引起不可重复读的问题。故正确答案为D。
更多“ 设有两个事务T1和T2,其并发操作序列如下表所示。下列说法中正确的是步骤 T1 T21 读A=1002 A=A*2写回34 ROLLBACK 读A=200A.该操作序列不存在问题B.该操作序列丢失修改C.该操作序”相关问题
  • 第1题:

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

    A)读操作序列不存在问题

    B)该操作序列丢失更新

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

    D)该操作序列读出“脏”数据


    正确答案:B
    事务T1对A做的修改是A←A+10,操作结果为A=110,但是由于并发执行,事务T2也执行操作A←A-10,操作结果为A=100,此时,该T1操作序列所做的修改被事务T2恢复,丢失修改。

  • 第2题:

    设有两个事务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读到了脏数据。

  • 第3题:

    设有两个事务T1、T2,其并发操作如下图所示,下列评价正确的是________。 时刻序列 T1 T2 ① ② ③ 读A=100,A=A*2写回 ROLLBACK恢复A=100 读A=200

    A.该操作不存在问题

    B.该操作丢失修改

    C.该操作存在重读校验不一致

    D.该操作读“脏”数据


    D 事务T1进行读取A操作并对A进行A+2的更新操作,但没有提交更新操作,事务T2读取更新后的A,接着事务T1对所做的更新操作进行了回滚,恢复A=100,而此时事务T2读取的A的值仍为200,这是一个在数据库中并不存在的值,所以产生了对未提交更新的依赖。

  • 第4题:

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

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

    B.该操作序列丢失修改

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

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


    正确答案:D
    解析:开发操作序列存在问题,因当为事务T1进行ROLLBACK操作后,A又从200变为100,而事务T2中读取的A=200却不能ROLLBACK,因此该操作序列读出了“脏”数据。

  • 第5题:

    2、设有两个事务T1、T2,其并发操作如下图所示,下列评价正确的是________。 时刻序列 T1 T2 ① ② ③ 读A=100,A=A*2写回 ROLLBACK恢复A=100 读A=200

    A.该操作不存在问题

    B.该操作丢失修改

    C.该操作存在重读校验不一致

    D.该操作读“脏”数据


    C 解析:由于对数据库的并发操作,可能带来数据的不一致性包括二类,丢失修改,不可重复读和读“脏”数据。其中丢失修改是指两个事务读入同一数据并修改,后提交的结果破坏了先提交的结果,导致先提交的事务修改被丢失;不能重复读是指先提交的事务读取数据后,后提交的事务执行更新操作,使得前面的事务不能读取前一次的结果;读“脏”数据是指某事务修改某一数据,并将它写回磁盘,后来的事务读取同一数据后,前一事务由于某种原因被撤销,这时前面已经修改的数据已经恢复原值,后读到的数据就与数据库的数据不一致。按照概念分析,该操作属于不可重复读。