教据库系統概论 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)事务串行执行 TI 每个时刻只有一个事务运行,其他事务 必须等到这个事务结束以后方能运行 不能充分利用系统资源,发挥数据库共 享资源的特点 事务的串行执行方式 An Introduction to Database System
An Introduction to Database System 问题的产生(续) ❖ 不同的多事务执行方式 (1)事务串行执行 ▪ 每个时刻只有一个事务运行,其他事务 必须等到这个事务结束以后方能运行 ▪ 不能充分利用系统资源,发挥数据库共 享资源的特点 T1 T2 T3 事务的串行执行方式
问题的产生(续) (2)交叉并发方式( nterleaved Concurrency) 在单处理机系统中,事务的并行执行是这些并行事务 的并行操作轮流交叉运行 单处理机系统中的并行事务并没有真正地并行运行, 但能够减少处理机的空闲时间,提高系统的效率 An Introduction to Database System
An Introduction to Database System 问题的产生(续) (2)交叉并发方式(Interleaved Concurrency) ▪ 在单处理机系统中,事务的并行执行是这些并行事务 的并行操作轮流交叉运行 ▪ 单处理机系统中的并行事务并没有真正地并行运行, 但能够减少处理机的空闲时间,提高系统的效率
问题的产生(续) rI T2 TI TI T3 T3 T2 事务的交叉并发执行方式 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 问题的产生(续) ❖事务并发执行带来的问题 ▪ 会产生多个事务同时存取同一数据的情况 ▪ 可能会存取和存储不正确的数据,破坏事务一致性 和数据库的一致性
第十一章并发控制 111并发控制概述 112封锁 11.3活锁和死锁 114并发调度的可串行性 115两段锁协议 116封锁的粒度 117小结 An Introduction to Database System
An Introduction to Database System 第十一章 并发控制 11.1 并发控制概述 11.2 封锁 11.3 活锁和死锁 11.4 并发调度的可串行性 11.5 两段锁协议 11.6 封锁的粒度 11.7 小结
11.1并发控制概述 并发控制机制的任务 对并发操作进行正确调度 保证事务的隔离性 保证数据库的一致性 An Introduction to Database System
An Introduction to Database System 11.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