丢失修改、不可重复读、读脏数据

并发操作带来数据不一致性包括:丢失修改、不可重复读、读脏数据

1.丢失修改

两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了T1提交的结果,导致T1的修改被丢失

2.不可重复读

不可重复读是指事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果。具体地将,不可重复读包括三种情况:

(1)事务T1读取某一数据后,事务T2对其进行了修改,当事务T1再次读该数据时,得到与前一次不同的值。

(2)事务T1按一定条件从数据库中读取了某些数据记录后,事务T2删除了其中部分记录,当T1再次按相同条件读取数据时,发现某些记录神秘的消失

(3)事务T1按一定条件从数据库中读取了某些数据记录后,事务T2插入了一些记录,当T1再次按相同条件读取数据时,发现多了一些记录。

后两种情况称为“幻影现象”。

3.读“脏”数据

读“脏”数据是指事务T1修改某一数据并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时被T1修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为“脏”数据,即不正确的数据。

产生这三类数据不一致性的主要原因是【并发操作破坏了事务的隔离性

猜你喜欢

转载自blog.csdn.net/qq_22080999/article/details/81106127
今日推荐