设有两个事务T1,T2,其并发操作如下所示,下面评价正确的是()

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37806112/article/details/83210701

设有两个事务T1,T2,其并发操作如下所示,下面评价正确的是()

步骤          T1         T2

1           读A=100

2                         读A=100

3.          A=A+10写回

4.                      A=A-10写回

  正确答案: D   你的答案: C (错误)

该操作不能重复读
该操作不存在问题
该操作读"脏"数据
该操作丢失修改

 解析

(1)丢失修改

        当两个或多个事物读入同一数据并修改,会发生丢失更新问题,即后一个事物更新的结果被前一事务所做更新覆盖 即当事务A和B同事进行时,事务A对数据已经改变但并未提交时B又对同一数据进行了修改(注意此时数据是A还未提交改变的数据),到时A做的数据改动丢失了

(2)不可重复读

      当两个数据读取某个数据后,另一事务执行了对该数据的更新,当前一事务再次读取该数据(希望与第一次读取的是相同的值)时,得到的数据与前一次的不一样,这是由于第一次读取数据后,事务B对其做了修改,导致再次读取数据时与第一次读取的数据不想同

(3)读‘脏数据’

     当一个事务修改某个数据后,另一事务对该数据进行了读取,由于某种原因前一事务撤销了对改数据的修改,即将修改过的数据恢复原值,那么后一事务读到的数据与数据可得不一致,称之为读脏数据

注意:还有一个叫“幽灵数据”  幽灵数据与脏数据类似,不过幽灵数据是指事务提交之后读到的数据,但是在读取之后又进行了对前一事务的恢复,而脏数据是指并未提交前读取的数据

猜你喜欢

转载自blog.csdn.net/m0_37806112/article/details/83210701