教据库系统概论 An Introduction to Database system 第七章并发控制
数据库系统概论 An Introduction to Database System 第七章 并发控制
第七章并发控制 7.1并发控制概述 7.2封锁 7.3封锁协议 7.4活锁和死锁 7.5并发调度的可串行性 7.6两段锁协议 7.7封锁的粒度 7.8 Oracle的并发控制 7.9小结
第七章 并发控制 7.1 并发控制概述 7.2 封锁 7.3 封锁协议 7.4 活锁和死锁 7.5 并发调度的可串行性 7.6 两段锁协议 7.7 封锁的粒度 7.8 Oracle的并发控制 7.9 小结
并发控制概述 多事务执行方式 (1)事务串行执行 每个时刻只有一个事务运行,其他事 务必须等到这个事务结束以后方能运 不能充分利用系统资源,发挥数据库 共享资源的特点
并发控制概述 多事务执行方式 (1)事务串行执行 ◼ 每个时刻只有一个事务运行,其他事 务必须等到这个事务结束以后方能运 行 ◼ 不能充分利用系统资源,发挥数据库 共享资源的特点
并发控制 (2)交叉并发方式( interleaved concurrency ■事务的并行执行是这些并行事务的并行操作 轮流交叉运行 ■是单处理机系统中的并发方式,能够减少处 理机的空闲时间,提高系统的效率
并发控制 (2)交叉并发方式(interleaved concurrency) ◼ 事务的并行执行是这些并行事务的并行操作 轮流交叉运行 ◼ 是单处理机系统中的并发方式,能够减少处 理机的空闲时间,提高系统的效率
并发控制 (3)同时并发方式( simultaneous concurrency) 多处理机系统中,每个处理机可以运行一个 事务,多个处理机可以同时运行多个事务, 实现多个事务真正的并行运 最理想的并发方式,但受制于硬件环境 更复杂的并发方式机制
并发控制 (3)同时并发方式(simultaneous concurrency) ◼ 多处理机系统中,每个处理机可以运行一个 事务,多个处理机可以同时运行多个事务, 实现多个事务真正的并行运行 ◼ 最理想的并发方式,但受制于硬件环境 ◼ 更复杂的并发方式机制
事务并发执行带来的向题 ■可能会存取和存储不正确的数据,破坏 事务的隔离性和数据库的一致性 ■DBMS必须提供并发控制机制 ■并发控制机制是衡量一个DBMS性能的重 要标志之
事务并发执行带来的问题 ◼ 可能会存取和存储不正确的数据,破坏 事务的隔离性和数据库的一致性 ◼ DBMS必须提供并发控制机制 ◼ 并发控制机制是衡量一个DBMS性能的重 要标志之一
7.1并发控制概述 ■并发控制机制的任务 对并发操作进行正确调度 保证事务的隔离性 ■保证数据库的一致性
7.1 并发控制概述 ◼ 并发控制机制的任务 ◼ 对并发操作进行正确调度 ◼ 保证事务的隔离性 ◼ 保证数据库的一致性
数据不一致实例:飞机订票系统 事务T1事务T, ①读A=16 读A=16 ③A←A1 写回A=15 A←A-3 写回A=13 T1的修改被T2覆盖了
T1的修改被T2覆盖了! 读A=16 A←A-3 写回A=13 ① 读A=16 ② ③ A←A-1 写回A=15 ④ 事务 T1 事务 T2 数据不一致实例:飞机订票系统
并发操作带来的数据不一致性 丢失修改( lost update) 不可重复读( non-repeatable read) 读“脏”数据( dirty read)
并发操作带来的数据不一致性 ◼ 丢失修改(lost update) ◼ 不可重复读(non-repeatable read) ◼ 读“脏”数据(dirty read)
1.丢失修改 丢失修改是指事务1与事务2从数据库中读 入同一数据并修改 事务2的提交结果破坏了事务1提交的结果, 导致事务1的修改被丢失
1. 丢失修改 丢失修改是指事务1与事务2从数据库中读 入同一数据并修改 事务2的提交结果破坏了事务1提交的结果, 导致事务1的修改被丢失