教据库系统概论 第八章并发控制 计算机科学与技术学院
计算机科学与技术学院 数据库系统概论 第八章 并发控制
第八章并发控制 8.1并发控制概述 82封锁 8.3封锁协议 84活锁和死锁 8.5并发调度的可串行性 8.6两段锁协议 87封锁的粒度 8.8 Oracle的并发控制 89小结
第八章 并发控制 8.1 并发控制概述 8.2 封锁 8.3 封锁协议 8.4 活锁和死锁 8.5 并发调度的可串行性 8.6 两段锁协议 8.7 封锁的粒度 8.8 Oracle的并发控制 8.9 小结
并发控制概述 多事务执行方式 (1)事务串行执行 ●每个时刻只有一个事务运行,其他事务 必须等到这个事务结束以后方能运行 ●不能充分利用系统资源,发挥数据库共 享资源的特点
并发控制概述 多事务执行方式 (1)事务串行执行 ⚫每个时刻只有一个事务运行,其他事务 必须等到这个事务结束以后方能运行 ⚫不能充分利用系统资源,发挥数据库共 享资源的特点
并发控制(续) (2)交叉并发方式( interleaved concurrency ●事务的并行执行是这些并行事务的并行操作轮 流交叉运行 ●是单处理机系统中的并发方式,能够减少处理 机的空闲时间,提高系统的效率
并发控制(续) (2)交叉并发方式(interleaved concurrency) ⚫ 事务的并行执行是这些并行事务的并行操作轮 流交叉运行 ⚫ 是单处理机系统中的并发方式,能够减少处理 机的空闲时间,提高系统的效率
并发控制(续) (3)同时并发方式( simultaneous concurrency ●多处理机系统中,每个处理机可以运行一个事 务,多个处理机可以同时运行多个事务,实现 多个事务真正的并行运行 ●最理想的并发方式,但受制于硬件环境 ●更复杂的并发方式机制
并发控制(续) (3)同时并发方式(simultaneous concurrency) ⚫ 多处理机系统中,每个处理机可以运行一个事 务,多个处理机可以同时运行多个事务,实现 多个事务真正的并行运行 ⚫ 最理想的并发方式,但受制于硬件环境 ⚫ 更复杂的并发方式机制
事务并发执行带来的问题 ●可能会存取和存储不正确的数据,破坏事 务的隔离性和数据库的一致性 ●DBMS必须提供并发控制机制 ●并发控制机制是衡量一个DBMS性能的重要 标志之一
事务并发执行带来的问题 ⚫ 可能会存取和存储不正确的数据,破坏事 务的隔离性和数据库的一致性 ⚫ DBMS必须提供并发控制机制 ⚫ 并发控制机制是衡量一个DBMS性能的重要 标志之一
8.1并发控制概述 并发控制机制的任务 ●对并发操作进行正确调度 ●保证事务的隔离性 ●保证数据库的一致性
8.1 并发控制概述 ⚫ 并发控制机制的任务 ⚫ 对并发操作进行正确调度 ⚫ 保证事务的隔离性 ⚫ 保证数据库的一致性
数据不一致实例:飞机订票系统 事务T1事务Tz ①读A=16 读A=16 ③A←A-1 写回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的修改被丢失