数据库系统概论第十一章 并发控制

更新时间:2023-07-25 18:28:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数据库系统概论第十一章 并发控制

数据库系统概论An Introduction to Database System

第十一章 并发控制中国人民大学信息学院An Introduction to Database System

数据库系统概论第十一章 并发控制

问题的产生多用户数据库系统的存在 允许多个用户同时使用的数据库系统飞机定票数据库系统 银行数据库系统 特点:在同一时刻并发运行的事务数可达数百个

An Introduction to Database System

数据库系统概论第十一章 并发控制

问题的产生( 问题的产生(续)不同的多事务执行方式 (1)事务串行执行每个时刻只有一个事务运行,其他事务 必须等到这个事务结束以后方能运行 不能充分利用系统资源,发挥数据库共 享资源的特点事务的串行执行方式 T2 T1

T3

An Introduction to Database System

数据库系统概论第十一章 并发控制

问题的产生( 问题的产生(续)(2)交叉并发方式(Interleaved Concurrency) 在单处理机系统中,事务的并行执行是这些并行事务 的并行操作轮流交叉运行 单处理机系统中的并行事务并没有真正地并行运行, 但能够减少处理机的空闲时间,提高系统的效率An Introduction to Database System

数据库系统概论第十一章 并发控制

问题的产生( 问题的产生(续)

事务的交叉并发执行方式An Introduction to Database System

数据库系统概论第十一章 并发控制

问题的产生( 问题的产生(续)(3)同时并发方式(simultaneous concurrency)多处理机系统中,每个处理机可以运行一个事务, 多个处理机可以同时运行多个事务,实现多个事务 真正的并行运行

An Introduction to Database System

数据库系统概论第十一章 并发控制

问题的产生( 问题的产生(续)事务并发执行带来的问题会产生多个事务同时存取同一数据的情况 可能会存取和存储不正确的数据,破坏事务一致性 和数据库的一致性

An Introduction to Database System

数据库系统概论第十一章 并发控制

第十一章 并发控制11.1 并发控制概述 11.2 封锁 11.3 活锁和死锁 11.4 并发调度的可串行性 11.5 两段锁协议 11.6 封锁的粒度 11.7 小结An Introduction to Database System

数据库系统概论第十一章 并发控制

11.1 并发控制概述并发控制机制的任务对并发操作进行正确调度 保证事务的隔离性 保证数据库的一致性

An Introduction to Database System

数据库系统概论第十一章 并发控制

并发控制概述( 并发控制概述(续)并发操作带来数据的不一致性实例[例1]飞机订票系统中的一个活动序列① 甲售票点(甲事务)读出某航班的机票余额A,设A=16; ② 乙售票点(乙事务)读出同一航班的机票余额A,也为16; ( ) A 16 ③ 甲售票点卖出一张机票,修改余额A←A-1,所以A为15,把A写回 数据库; ④ 乙售票点也卖出一张机票,修改余额A←A-1,所以A为15,把A写 回数据库

T1的修改被 覆盖了! 的修改被T2覆盖了 的修改被 覆盖了!An Introduction to Database System

结果明明卖出两张机票,数据库中机票余额只减少1

数据库系统概论第十一章 并发控制

并发控制概述( 并发控制概述(续)这种情况称为数据库的不一致性,是由并发操作引起的。 在并发操作情

况下,对甲、乙两个事务的操作序列的调度是随 机的。 若按上面的调度序列执行,甲事务的修改就被丢失。 原因:第4步中乙事务修改A并写回后覆盖了甲事务的修改

An Introduction to Database System

数据库系统概论第十一章 并发控制

并发控制概述( 并发控制概述(续)并发操作带来的数据不一致性丢失修改(Lost Update) 不可重复读(Non-repeatable Read) 读“脏”数据(Dirty Read)

记号R(x):读数据x W(x):写数据xAn Introduction to Database System

数据库系统概论第十一章 并发控制

1. 丢失修改两个事务T1 和T2 读入同一数据并修改,T2 的提交 结果破坏了T1 提交的结果,导致T1 的修改被丢失。 上面飞机订票例子就属此类

An Introduction to Database System

数据库系统概论第十一章 并发控制

丢失修改( 丢失修改(续)T1 ① R(A)=16 ② ③ A←A-1 W(A)=15W ④ A←A-1 W(A)=15丢失修改An Introduction to Database System

T2

R(A)=16

数据库系统概论第十一章 并发控制

2. 不可重复读不可重复读是指事务T1读取数据后,事务T2 执行更新操作,使T1无法再现前一次读取结果。

An Introduction to Database System

数据库系统概论第十一章 并发控制

不可重复读( 不可重复读(续)不可重复读包括三种情况: (1)事务T1读取某一数据后,事务T2对其做了修改, 当事务T1再次读该数据时,得到与前一次不同的 T 值

An Introduction to Database System

数据库系统概论第十一章 并发控制

不可重复读( 不可重复读(续)例如:T1 ① R(A)=50 R(B)=100 求和=150 ② R(B)=100 B←B*2 (B)=200 ③ R(A)=50 R(B)=200 和=250 (验算不对)不可重复读An Introduction to Database System

T2

T1读取B=100进行运算 T2读取同一数据B,对其进 行修改后将B=200写回数据 库。 T1为了对读取值校对重读B, B已为200,与第一次读取值 不一致

数据库系统概论第十一章 并发控制

不可重复读( 不可重复读(续)(2)事务T1按一定条件从数据库中读取了某些数据记录后,事 务T2删除了其中部分记录,当T1再次按相同条件读取数据 时,发现某些记录消失了 (3)事务T1按一定条件从数据库中读取某些数据记录后,事务 T2插入了一些记录,当T1再次按相同条件读取数据时,发 现多了一些记录。 后两种不可重复读有时也称为幻影现象(Phantom Row)

An Introduction to Database System

数据库系统概论第十一章 并发控制

3. 读“脏”数据读“脏”数据是指:事务T1修改某一数据,并将其写回磁盘 事务T2读取同一数据后,T1由于某种原因被撤销 这时T1已修改过的数据恢复原值,T2读到的数据就与 数据库中的数据不一致 T2读到的数据就为“脏”数据,即不正确的数据

An Introduction to Database System

数据库系统概论第十一章 并发控制

读“脏”数据(续) 数据(例如T1 ① R(C)=100 C←C*2 W(C)=200 ② R(C)=200 T2

T1将C值修改为200, T2读到C为200 T1由于某种原因撤 销,其修改作废,C 恢复原值100 这时T2读到的C为 200,与数据库内容 不一致,就是“脏” 数据

③ROLLBACK C恢复为100

读“脏”数据

An Introduction to Database System

数据库系统概论第十一章 并发控制

并发控制

概述( 并发控制概述(续)数据不一致性:由于并发操作破坏了事务的隔离 性 并发控制就是要用正确的方式调度并发操作,使 一个用户事务的执行不受其他事务的干扰,从而 避免造成数据的不一致性

An Introduction to Database System

本文来源:https://www.bwwdw.com/article/s9em.html

Top