并发控制概述(续) ◇这种情况称为数据库的不一致性,是由并发操作引起的。 ◇在并发操作情况下,对甲、乙两个事务的操作序列的调度是随 机的。 ◆若按上面的调度序列执行,甲事务的修改就被丢失。 原因:第4步中乙事务修改A并写回后覆盖了甲事务的修改 An Introduction to Database System
An Introduction to Database System 并发控制概述(续) ❖ 这种情况称为数据库的不一致性,是由并发操作引起的。 ❖ 在并发操作情况下,对甲、乙两个事务的操作序列的调度是随 机的。 ❖ 若按上面的调度序列执行,甲事务的修改就被丢失。 ▪ 原因:第4步中乙事务修改A并写回后覆盖了甲事务的修改
并发控制概述(续) ◆并发操作带来的数据不一致性 丢失修改( Lost Update) 不可重复读( Non-repeatable Read) 读“脏”数据( Dirty Read) 记号 R(×):读数据X W(x):写数据X An Introduction to Database System
An Introduction to Database System 并发控制概述(续) ❖并发操作带来的数据不一致性 ▪ 丢失修改(Lost Update) ▪ 不可重复读(Non-repeatable Read) ▪ 读“脏”数据(Dirty Read) ❖记号 ▪ R(x):读数据x ▪ W(x):写数据x
1.丢失修改 令两个事务T1和T2读入同一数据并修改,T2的提交 结果破坏了T1提交的结果,导致T1的修改被丢失 今上面飞机订票例子就属此类 An Introduction to Database System
An Introduction to Database System 1. 丢失修改 ❖两个事务T1和T2读入同一数据并修改,T2的提交 结果破坏了T1提交的结果,导致T1的修改被丢失。 ❖上面飞机订票例子就属此类
丢失修改(续) ①R(A=16 R(A)=16 ③A←-A-1 W(A)=15W A←A-1 (A)=15 丢失修改 An Introduction to Database System
An Introduction to Database System 丢失修改(续) T1 T2 ① R(A)=16 ② R(A)=16 ③ A←A-1 W(A)=15W ④ A←A-1 W(A)=15 丢失修改
2.不可重复读 令不可重复读是指事务T1读取数据后,事务T2 执行更新操作,使T1无法再现前一次读取结果 An Introduction to Database System
An Introduction to Database System 2. 不可重复读 ❖不可重复读是指事务T1读取数据后,事务T2 执行更新操作,使T1无法再现前一次读取结果