教据库系统概论 An Introduction to Database system 并发控制 An Introduction to Database System
An Introduction to Database System 数据库系统概论 An Introduction to Database System 并发控制
问题的产生 多用户数据库系统的存在 允许多个用户同时使用的数据库系统 ■飞机定票数据库系统 ■银行数据库系统 特点:在同一时刻并发运行的事务数可达数百个 An Introduction to Database System
An Introduction to Database System 问题的产生 ❖多用户数据库系统的存在 允许多个用户同时使用的数据库系统 ◼ 飞机定票数据库系统 ◼ 银行数据库系统 特点:在同一时刻并发运行的事务数可达数百个
问题的产生(续) 令不同的多事务执行方式 (1)事务串行执行 每个时刻只有一个事务运行,其他事务 必须等到这个事务结束以后方能运行 不能充分利用系统资源,发挥数据库共 享资源的特点 事务的串行执行方式 An Introduction to Database System
An Introduction to Database System 问题的产生(续) ❖ 不同的多事务执行方式 (1)事务串行执行 ▪ 每个时刻只有一个事务运行,其他事务 必须等到这个事务结束以后方能运行 ▪ 不能充分利用系统资源,发挥数据库共 享资源的特点 T1 T2 T3 事务的串行执行方式
问题的产生(续) (2)交叉并发方式( Interleaved Concurrency) 在单处理机系统中,事务的并行执行是这些并行事务 的并行操作轮流交叉运行 单处理机系统中的并行事务并没有真正地并行运行, 但能够减少处理机的空闲时间,提高系统的效率 An Introduction to Database System
An Introduction to Database System 问题的产生(续) (2)交叉并发方式(Interleaved Concurrency) ▪ 在单处理机系统中,事务的并行执行是这些并行事务 的并行操作轮流交叉运行 ▪ 单处理机系统中的并行事务并没有真正地并行运行, 但能够减少处理机的空闲时间,提高系统的效率
问题的产生(续) rI T2 TI T3 T2 T3 事务的交叉并发执行方式 An Introduction to Database System
An Introduction to Database System 问题的产生(续) 事务的交叉并发执行方式
问题的产生(续) (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并写回后覆盖了甲事务的修改