据应用基础 Fundamental and Application of Database 第九 测控技术与自动化教研中心冯仁剑
Fundamental and Application of Fundamental and Application of Database Database 数据库应用基础 数据库应用基础 第九讲 测控技术与自动化教研中心 测控技术与自动化教研中心 冯仁剑
43并发控制 口弄放挖制概迷 口丰行调度和可丰行化调度 口冲突可串行化调度 ■封戴乔制方法
4.3 并发控制 并发控制概述 串行调度和可串行化调度 串行调度和可串行化调度 冲突可串行化调度 冲突可串行化调度 封锁并发控制方法 封锁并发控制方法
并发控制概述 多事务执行方式 (1)事务串行执行 每个时刻只有一个事务运行,其他事 务必须等到这个事务结束以后方能运 a不能充分利用系统资源,发挥数据库 共享资源的特点
并发控制概述 多事务执行方式 多事务执行方式 (1)事务串行执行 每个时刻只有一个事务运行,其他事 每个时刻只有一个事务运行,其他事 务必须等到这个事务结束以后方能运 务必须等到这个事务结束以后方能运 行 不能充分利用系统资源,发挥数据库 不能充分利用系统资源,发挥数据库 共享资源的特点 共享资源的特点
发控制(续) (2)交叉并发方式 (interleaved concurrency) 事务的并行执行是这些并行事务的并行操作 轮流交叉运行 a是单处理机系统中的并发方式,能够减少处 理机的空闲时间,提高系统的效率
并发控制(续) 并发控制(续) (2)交叉并发方式 (interleaved concurrency interleaved concurrency ) 事务的并行执行是这些并行事务的并行操作 事务的并行执行是这些并行事务的并行操作 轮流交叉运行 是单处理机系统中的并发方式,能够减少处 是单处理机系统中的并发方式,能够减少处 理机的空闲时间,提高系统的效率 理机的空闲时间,提高系统的效率
并发控制(续) (3)同时并发方式 (simultaneous concurrency) ■多处理机系统中,每个处理机可以运行一个 事务,多个处理机可以同时运行多个事务, 实现多个事务真正的并行运行 a最理想的并发方式,但受制于硬件环境 更复杂的并发方式机制
并发控制(续) 并发控制(续) (3)同时并发方式 (simultaneous concurrency simultaneous concurrency ) 多处理机系统中,每个处理机可以运行一个 多处理机系统中,每个处理机可以运行一个 事务,多个处理机可以同时运行多个事务, 事务,多个处理机可以同时运行多个事务, 实现多个事务真正的并行运行 实现多个事务真正的并行运行 最理想的并发方式,但受制于硬件环境 最理想的并发方式,但受制于硬件环境 更复杂的并发方式机制
辜务并发执行带来的问题 可能会存取和存储不正确的数据,破坏 事务的隔离性和数据库的一致性 DBMS必须提供并发控制机制 ■并发控制机制是衡量一个DBMS性能的 重要标志之一
事务并发执行带来的问题 事务并发执行带来的问题 可能会存取和存储不正确的数据,破坏 可能会存取和存储不正确的数据,破坏 事务的隔离性和数据库的一致性 事务的隔离性和数据库的一致性 DBMS必须提供并发控制机制 必须提供并发控制机制 并发控制机制是衡量一个 并发控制机制是衡量一个DBMS性能的 重要标志之一
并发控制概述 并发控制机制的任务 对并发操作进行正确调度 保证事务的隔离性 保证数据库的一致性
并发控制概述 并发控制机制的任务 并发控制机制的任务 对并发操作进行正确调度 对并发操作进行正确调度 保证事务的隔离性 保证事务的隔离性 保证数据库的一致性 保证数据库的一致性
数据不一致实例:飞机订票系统 事务T1事务T2 ①读A=16 读A=16 ③A←A-1 写回 A=15 A←A-3 写回 AE13 T的修改被T2覆盖了!
T1的修改被T2覆盖了! 读A=16 A←A-3 写回 A=13 ① 读A=16 ② ③ A←A-1 写回 A=15 ④ 事务 T1 事务 T2 数据不一致实例:飞机订票系统
并发操作带来的数据不一致性 ■丢失修改( lost update) 不可重复读( non-repeatable read) a读“脏”数据( dirty read)
并发操作带来的数据不一致性 并发操作带来的数据不一致性 丢失修改(lost update lost update ) 不可重复读(non -repeatable read repeatable read ) 读 “ 脏 ”数据(dirty read dirty read )
多个事务可并行执行,一个事务在磁盘上读写时,另 可在CPU上运行,可增加系统的“吞吐量”。给 定时间内执行的事务数增加,相应磁盘与CPU利用率 提高,空闲时间较少。 n系统中可能运行着各种各样的事务,一些较短,一些 较长,若串行执行,短事务可能得等待她前面的长事 务完成→难以预测的延时。如果各事务是针对DB的不 同部分进行操作,事务并发执行会更好。 n减少“平均响应时间”—一个事务从开始到完成所需 的平均时间 口DB中并发执行本质上与os中使用多道程序的动机 样
多个事务可并行执行,一个事务在磁盘上读写时,另 多个事务可并行执行,一个事务在磁盘上读写时,另 一个可在CPU上运行,可增加系统的 上运行,可增加系统的 “吞吐量 ” —— 给 定时间内执行的事务数增加,相应磁盘与 定时间内执行的事务数增加,相应磁盘与CPU利用率 提高,空闲时间较少。 提高,空闲时间较少。 系统中可能运行着各种各样的事务,一些较短,一些 系统中可能运行着各种各样的事务,一些较短,一些 较长,若串行执行,短事务可能得等待她前面的长事 较长,若串行执行,短事务可能得等待她前面的长事 务完成 →难以预测的延时。如果各事务是针对 难以预测的延时。如果各事务是针对DB的不 同部分进行操作,事务并发执行会更好。 同部分进行操作,事务并发执行会更好。 减少 “平均响应时间 ” ——一个事务从开始到完成所需 一个事务从开始到完成所需 的平均时间 DB中并发执行本质上与 中并发执行本质上与OS中使用多道程序的动机一 中使用多道程序的动机一 样