第十一章并发控制-PPT课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

并发控制概述
读“脏”数据
事务T1修改某一数据,并将其写回磁盘, 事务T2读取同一数据后,事务T1由于某 种原因被撤消,这时事务T1已修改过的 数据恢复原值,事务T2读到的数据就与 数据库中的数据不一致,是不正确的数 据,又称为“脏”数据。
并发控制概述
读“脏”数据 (dirty read)
T1 读C=16 C←C*2 写回C=32
rollback C恢复为16
T2 读C=32
设有两个事务T1、T2,其并发操作如下图所示, 下面评价正确的是____。
A .不存在问题 B.丢失修改
C.不能重复读 D.读“脏”数据
T1
T2
①读A=10,B=5
②读A=10
A=A*2写回
③读A=20,B=5
DBMS必须提供并发控制机制解决事务并 发执行带来的问题。(并发控制器)
并发控制机制是衡量一个DBMS性能的重 要标志之一。
并发控制概述
并发操作带来的数据不一致性 丢失修改(lost update) 不可重复读(non-repeatable read) 读“脏”数据(dirty read)
多事务执行方式 (1)事务串行执行 每个时刻只有一个事务运行,其他事务必须 等到这个事务结束以后方能运行。 不能充分利用系统资源,不能发挥数据库共 享资源的特点。
并发控制概述
多事务执行方式 (2)交叉并发方式 是单处理机系统中的 并发方式,多个并行 事务的操作轮流交叉 运行。 能够减少处理机的空 闲时间,提高系统的 效率。
commit tran begin tran
update sales set qty = qty *2 where id = 'A1' commit tran
并发控制概述
不可重复度 2、事务T1按一定条件读取某些数据记录 后,事务T2删除了其中部分记录,当事 务T1再次按相同条件读取数据时,发现 某些记录神密地消失了。 3、事务T1按一定条件读取某些数据记录 后,事务T2插入了一些记录,当事务T1 再次按相同条件读取数据时,发现多了 一些记录。 后两种不可重复读有时也称为幻影现象。
并发控制就是要用正确的方式调度并发操 作,使一个事务的执行不受其他事务的干 扰,从而避免造成数据的不一致性
并发控制的主要技术 封锁(Locking) 时间戳(Timestamp) 乐观控制法
商用的DBMS一般都采用封锁方法
11.2 封锁
封锁
什么是封锁 封锁就是事务T在对某个数据对象(例如 表、记录等)操作之前,先向系统发出 请求,对其加锁。 如果事务T的加锁请求得到满足,事务T 就对该数据对象有了一定的控制。 如果事务T的加锁请求得不到满足,事务 T就不能控制该数据对象。 封锁是实现并发控制的一个非常重要的 技术
并发控制概述
丢失修改
丢失修改是指事务 T1 与 事 务 T2 从 数 据
T1 读A=16
T2
库中读入同一数据并 修 改 , 事 务 T2 的 提 交结果破坏了事务
读A=16 A←A-1, 写回A=wenku.baidu.com5
T1 提 交 的 结 果 , 导
A←A-1,
致 事 务 T1 的 修 改 被
写回A=15
丢失。
并发控制概述
不可重复度 1、事务T1读取某一数据后,事务T2对其做了 修改,当事务T1再次读该数据时,得到与前一 次不同的值。
T1 读B=100
读B=200
T2
读B=100 B←B*2 写回B=200
begin tran declare sl int declare s2 int select sl = qty from sales where id = 'A1' print(sl) waitfor delay '00:00:30.000' select s2 = qty from sales where id = 'A1' print(s2)
并发控制概述
CREATE TABLE sales (
id char(2), qty int ) insert into sales values( 'A1', 10 )
并发控制概述
事务一 begin tran declare sl int select sl = qty from sales where id = 'A1' waitfor delay '00:00:15.000' update sales set qty = sl - 1 where id = 'A1' commit tran
求和25验证错
设有两个事务T1、T2,其并发操作如下图所示, 下面评价正确的是____。
A .不存在问题 B.丢失修改
C.不能重复读 D.读“脏”数据
T1
T2
①读A=10
②读A=10
③A=A-1,写回A=15
④A=A-1,写回A=15
并发控制概述
事务并发执行会导致数据不一致性 由于并发操作破坏了事务的隔离性
第十一章 并发控制
授课内容
11.1 并发控制概述 11.2 封锁(Locking) 11.3 活锁和死锁 11.4 并发调度的可串行性 11.5 两段锁协议 11.6 封锁的粒度
11.1 并发控制概述
并发控制概述
多用户数据库系统 允许多个用户同时使用的数据库系统称为多用 户数据库系统。 多用户数据库系统面临着执行多事务的情况。
事务二 begin tran declare sl int select sl = qty from sales where id = 'A1' waitfor delay '00:00:15.000' update sales set qty = sl - 1 where id = 'A1' commit tran
并发控制概述
多事务执行方式 (3)同时并发方式 多处理机系统中,每个处理机可以运行 一个事务,多个处理机可以同时运行多 个事务,实现多个事务真正的并行运行。 最理想的并发方式,但受制于硬件环境
并发控制概述
事务并发执行带来的问题
并发执行的多个事务可能会同时存取同 一数据,造成数据的不一致,破坏事务 的隔离性和数据库的一致性。
相关文档
最新文档