2.不可重复读 不可重复读是指事务1读取数据后,事务2 执行更新操作,使事务1无法再现前一次读 取结果
2. 不可重复读 不可重复读是指事务1读取数据后,事务2 执行更新操作,使事务1无法再现前一次读 取结果
三类不可重复读 事务1读取某一数据后: 1。事务2对其做了修改,当事务1再次读该 数据时,得到与前一次不同的值。 2.事务2删除了其中部分记录,当事务1再次 读取数据时,发现某些记录神密地消失了 3.事务2插入了一些记录,当事务1再次按相 同条件读取数据时,发现多了一些记录。 后两种不可重复读有时也称为幻影现象( phantom row)
三类不可重复读 事务1读取某一数据后: 1。事务2对其做了修改,当事务1再次读该 数据时,得到与前一次不同的值。 2. 事务2删除了其中部分记录,当事务1再次 读取数据时,发现某些记录神密地消失了。 3. 事务2插入了一些记录,当事务1再次按相 同条件读取数据时,发现多了一些记录。 后两种不可重复读有时也称为幻影现象(phantom row)
3.读“脏”数据 事务1修改某一数据,并将其写回磁盘 事务2读取同一数据后 事务1由于某种原因被撤消,这时事务1已修改过 的数据恢复原值 事务2读到的数据就与数据库中的数据不一致, 是不正确的数据,又称为“脏”数据
3. 读“脏”数据 事务1修改某一数据,并将其写回磁盘 事务2读取同一数据后 事务1由于某种原因被撤消,这时事务1已修改过 的数据恢复原值 事务2读到的数据就与数据库中的数据不一致, 是不正确的数据,又称为“脏”数据
图81三种数据不一致性 ①读A=16 读A=16 ③A←A-1 写回 A=15 A←A-1 写回A=15 (a)丢失修改
图8.1 三种数据不一致性 T1 T2 ① 读A=16 ② ③ A←A-1 写回 A=15 ④ 读A=16 A←A-1 写回A=15 (a) 丢失修改
图81三种数据不一致性(续) ①读A=50 读B=100 求和=150 2 读B=100 B←B*2 写回B=200 ③读A=50 读B=200 求和=250 (验算不对) (b)不可重复读
图8.1 三种数据不一致性(续) 读B=100 B←B*2 写回B=200 ① 读A=50 读B=100 求和=150 ② ③ 读A=50 读B=200 求和=250 (验算不对) T1 T2 (b) 不可重复读