
数据库系统概论An Introduction to Database System第十一章并发控制OOO中国人民大学信息学院
An Introduction to Database System 中国人民大学信息学院 数据库系统概论 An Introduction to Database System 第十一章 并发控制

并发控制心多用户数据库系统允许多个用户同时使用的数据库系统飞机定票数据库系统论银行数据库系统特点:在同一时刻并发运行的事务数可达数百上千个AnIntroductiontoDatabaseSystem
An Introduction to Database System 并发控制 ❖多用户数据库系统 允许多个用户同时使用的数据库系统 ◼ 飞机定票数据库系统 ◼ 银行数据库系统 ◼ 特点:在同一时刻并发运行的事务数可达数百上千个

(续)并发控制心多事务执行方式太(1)事务串行执行Ti每个时刻只有一个事务运行,其他事务必须等到这个事务结束以后方能运行T21不能充分利用系统资源,发挥数据库共7享资源的特点2事务的串行执行方式AnIntroduction toDatabaseSystem
An Introduction to Database System 并发控制(续) ❖多事务执行方式 (1)事务串行执行 ◼ 每个时刻只有一个事务运行,其他事务 必须等到这个事务结束以后方能运行 ◼ 不能充分利用系统资源,发挥数据库共 享资源的特点 T1 T2 T3 事务的串行执行方式

(续)并发控制(2)交叉并发方式(lnterleavedConcurrency)在单处理机系统中,事务的并行执行T7T3是这些并行事务的并行操作轮流交又T2运行1单处理机系统中的并行事务并没有真TI正地并行运行,但能够减少处理机的(6)事务的交支并发执行方式空闲时间,提高系统的效率An Introductionto Database System
An Introduction to Database System 并发控制(续) ◼ 在单处理机系统中,事务的并行执行 是这些并行事务的并行操作轮流交叉 运行 ◼ 单处理机系统中的并行事务并没有真 正地并行运行,但能够减少处理机的 空闲时间,提高系统的效率 (2)交叉并发方式(Interleaved Concurrency)

(续)并发控制(3)同时并发方式(simultaneousconcurrency)多处理机系统中,每个处理机可以运行一个事务,多个处理机可以同时运行多个事务,实现多个事务真正的并行运行最理想的并发方式,但受制于硬件环境更复杂的并发方式机制本章讨论的数据库系统并发控制技术是以单处理机系统为基础的An Introduction to Database System
An Introduction to Database System 并发控制(续) (3)同时并发方式(simultaneous concurrency) ◼ 多处理机系统中,每个处理机可以运行一个事务,多 个处理机可以同时运行多个事务,实现多个事务真正 的并行运行 ◼ 最理想的并发方式,但受制于硬件环境 ◼ 更复杂的并发方式机制 ❖ 本章讨论的数据库系统并发控制技术是以单处理机系统为 基础的

(续)并发控制必事务并发执行带来的问题会产生多个事务同时存取同一数据的情况可能会存取和存储不正确的数据,破坏事务隔离性和数据库的一致性必数据库管理系统必须提供并发控制机制心并发控制机制是衡量一个数据库管理系统性能的重要标志之一AnIntroductiontoDatabaseSystem
An Introduction to Database System 并发控制(续) ❖事务并发执行带来的问题 ◼ 会产生多个事务同时存取同一数据的情况 ◼ 可能会存取和存储不正确的数据,破坏事务隔离性和 数据库的一致性 ❖数据库管理系统必须提供并发控制机制 ❖并发控制机制是衡量一个数据库管理系统性能的 重要标志之一

第十一章并发控制11.1并发控制概述人民大学11.2封锁11.3封锁协议11.4活锁和死锁车系统概论11.5并发调度的可串行性11.6两段锁协议11.7封锁的粒度*11.8其他并发控制机制11.9小结AnIntroductiontoDatabaseSystem
An Introduction to Database System 第十一章 并发控制 11.1 并发控制概述 11.2 封锁 11.3 封锁协议 11.4 活锁和死锁 11.5 并发调度的可串行性 11.6 两段锁协议 11.7 封锁的粒度 *11.8 其他并发控制机制 11.9 小结

11.1并发控制概述心事务是并发控制的基本单位并发控制机制的任务1对并发操作进行正确调度效据库系统概论保证事务的隔离性保证数据库的一致性AnIntroductiontoDatabaseSystem
An Introduction to Database System 11.1 并发控制概述 ❖事务是并发控制的基本单位 ❖并发控制机制的任务 ◼ 对并发操作进行正确调度 ◼ 保证事务的隔离性 ◼ 保证数据库的一致性

(续)并发控制概述并发操作带来数据的不一致性实例【例11.1]飞机订票系统中的一个活动序列①甲售票点(事务T)读出某航班的机票余额A,设A=16:②乙售票点(事务T)读出同一航班的机票余额A,也为16:③甲售票点卖出一张机票,修改余额A一A-1,所以A为15把A写回数据库:④乙售票点也卖出一张机票,修改余额A一A-1,所以A为15把A写回数据库结果明明卖出两张机票,数据库中机票余额只减少1An Introduction to Database System
An Introduction to Database System T1的修改被T2覆盖了! 并发控制概述(续) 并发操作带来数据的不一致性实例 [例11.1]飞机订票系统中的一个活动序列 ① 甲售票点(事务T1 )读出某航班的机票余额A,设A=16; ② 乙售票点(事务T2 )读出同一航班的机票余额A,也为16; ③ 甲售票点卖出一张机票,修改余额A←A-1,所以A为15, 把A写回数据库; ④ 乙售票点也卖出一张机票,修改余额A←A-1,所以A为15, 把A写回数据库 ◼ 结果明明卖出两张机票,数据库中机票余额只减少1

(续)并发控制概述心这种情况称为数据库的不一致性,是由并发操作引起的。在并发操作情况下,对T、T,两个事务的操作序列的调度是随机的。心若按上面的调度序列执行,T事务的修改就被丢失原因:第4步中T,事务修改A并写回后覆盖了T,事务的修改--AnIntroductiontoDatabaseSystem
An Introduction to Database System 并发控制概述(续) ❖ 这种情况称为数据库的不一致性,是由并发操作引起的。 ❖ 在并发操作情况下,对T1、T2两个事务的操作序列的调度 是随机的。 ❖ 若按上面的调度序列执行,T1事务的修改就被丢失。 ◼ 原因:第4步中T2事务修改A并写回后覆盖了T1事务的 修改