问题的产生(续) (3)同时并发方式( simultaneous concurrency) ■多处理机系统中,每个处理机可以运行一个事务, 多个处理机可以同时运行多个事务,实现多个事务 真正的并行运行 An Introduction to Database System
An Introduction to Database System 问题的产生(续) (3)同时并发方式(simultaneous concurrency) ▪ 多处理机系统中,每个处理机可以运行一个事务, 多个处理机可以同时运行多个事务,实现多个事务 真正的并行运行
问题的产生(续) 今事务并发执行带来的问题 会产生多个事务同时存取同一数据的情况 ■可能会存取和存储不正确的数据,破坏事务一致性 和数据库的一致性 An Introduction to Database System
An Introduction to Database System 问题的产生(续) ❖事务并发执行带来的问题 ▪ 会产生多个事务同时存取同一数据的情况 ▪ 可能会存取和存储不正确的数据,破坏事务一致性 和数据库的一致性
41并发控制概述 令并发控制机制的任务 对并发操作进行正确调度 保证事务的隔离性 保证数据库的一致性 An Introduction to Database System
An Introduction to Database System 4.1 并发控制概述 ❖并发控制机制的任务 ▪ 对并发操作进行正确调度 ▪ 保证事务的隔离性 ▪ 保证数据库的一致性
并发控制概述(续) 并发操作带来数据的不一致性实例 [例1飞机订票系统中的一个活动序列 ①甲售票点(甲事务)读出某航班的机票余额A,设A=16: ②乙售票点(乙事务)读出同一航班的机票余额A,也为16; ③甲售票点卖出一张机票,修改余额A←A-1,所以A为15,把A写回 数据库; ④乙售票点也卖出一张机票,修改余额A←A-1,所以A为15,把A写 回数据库 ■结果明明卖出两张机票,数据库中机票余额只减少1 An Introduction to Database System
An Introduction to Database System T1的修改被T2覆盖了! 并发控制概述(续) 并发操作带来数据的不一致性实例 [例1]飞机订票系统中的一个活动序列 ① 甲售票点(甲事务)读出某航班的机票余额A,设A=16; ② 乙售票点(乙事务)读出同一航班的机票余额A,也为16; ③ 甲售票点卖出一张机票,修改余额A←A-1,所以A为15,把A写回 数据库; ④ 乙售票点也卖出一张机票,修改余额A←A-1,所以A为15,把A写 回数据库 ◼ 结果明明卖出两张机票,数据库中机票余额只减少1
并发控制概述(续) 这种情况称为数据库的不一致性,是由并发操作引起的 ◇在并发操作情况下,对甲、乙两个事务的操作序列的调度是随 机的。 令若按上面的调度序列执行,甲事务的修改就被丢失 原因:第4步中乙事务修改A并写回后覆盖了甲事务的修改 An Introduction to Database System
An Introduction to Database System 并发控制概述(续) ❖ 这种情况称为数据库的不一致性,是由并发操作引起的。 ❖ 在并发操作情况下,对甲、乙两个事务的操作序列的调度是随 机的。 ❖ 若按上面的调度序列执行,甲事务的修改就被丢失。 ▪ 原因:第4步中乙事务修改A并写回后覆盖了甲事务的修改