问题的产生(续) (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