第六章:事务与并发控制案例

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 三类不可重复读
– 事务2插入了一些记录,当事务1再次按相同条件 读取数据时,发现多了一些记录。
– 后两种不可重复读有时也称为幻影现象
2018/10/14
福州大学阳光学院计算机工程系
17

T2读取并修改T1 二、并发控制概述 修改过的但是并未提 交的数据,而使T2 读“脏”数据 读取无用数据 T2 T1 t1 t2 t3 t4 t5 t6 t7 Read A=16 A=A-1 Write A Read A=15 A=A-1 Write A Rollback
实现
DBMS的事务管理子系统 DBMS的测试完整性子系 统
隔离性
持久性
2018/10/14
多个事务执行互不干扰
事务对数据库的改变是 永久的
DBMS的并发控制子系统
DBMS的恢复管理子系统
9
福州大学阳光学院计算机工程系
一、事务的概念
• 银行转帐:从帐号A中取出一万元,存入帐号B
• 定义一个事务,该事务包括两个操作
2018/10/14
福州大学阳光学院计算机工程系
21
三、封锁
• X锁
t1 t2 t3 t4 t5 t6 t7 t8
T1
XLock A Read A=16 A=A-1 Write A Commit
T2 XLock A(不批准) 等待 . . . . 获得XLock A
22
UnLock A
2018/10/14
• 事务是恢复和并发控制的基本单位
2018/10/14 福州大学阳光学院计算机工程系 3
一、事务的概念
显式 事务
隐式 事务
事务分类
2018/10/14 福州大学阳光学院计算机工程系 4
一、事务的概念
• 定义事务的语句
Begin Transaction
SQL语句……
开始 语句 结束 语句
5
Commit—正常提交
Read A=15
福州大学阳光学院计算机工程系 15
二、并发控制概述
• 三类不可重复读
– 事务2对其做了修改,当事务1再次读该数据时, 得到与前一次不同的值。
– 事务2删除了其中部分记录,当事务1再次读取数
据时,发现某些记录神密地消失了
2018/10/14 福州大学阳光学院计算机工程系 16
二、并发控制概述
福州大学阳光学院计算机工程系
三、封锁
• X锁与S锁
– S锁(共享锁/读锁)
• 事务T对操作对象R加锁后,T只能对R进行读操作, 也允许其他事务对R进行加同样锁并可进行读操作。 记为SLock R
2018/10/14
福州大学阳光学院计算机工程系
23
三、封锁
• S锁
t1 t2 t3
T1
SLock A Read A
T2
福州大学阳光学院计算机工程系 18
2018/10/14
二、并发控制概述
• 产生4类数据不一致性的主要原因
– 并发操作破坏了事务的隔离性
• 并发控制的主要技术
– 封锁
– 时间戳
– 乐观控制法
2018/10/14 福州大学阳光学院计算机工程系 19
• 封锁
三、封锁
– 事务T要操作某个数据对象R时必须先向系统申请
Read A=16
A=A-1
A=A-1
Write A Write A
福州大学阳光学院计算机工程系 14
二、并发控制概述 T1不同时间读取同一
• 不可重复读
t1 t2 t3 t4 t5 t6
2018/10/14
数据对象结果不一样 T1 Read A=16
T2
Read A=16 A=A-1 Write A Commit
2018/10/14
二、 并发控制概述
• 事务的串行执行
– 多个事务操作同一数据对象按逐个顺序执行
• 事务的并发执行
– 多个事务对同一数据对象同时进行操作
– 方式:交叉并发(单处理机);同步并发(多处理机)
2018/10/14 福州大学阳光学院计算机工程系 12
二、并发控制概述
• 并发执行可能发生的4类数据的不一致性
– 丢失修改 – 不可重复读
– 读脏数据
– 产生幻影(幽灵)数据
2018/10/14 福州大学阳光学院计算机工程系 13
• 丢失修改
t1 t2 t3 t4 t5 t6
2018/10/14
两个事务T1,T2读取 二、并发控制概述 并修改同一数据对象 ,由于T2的提交使得 T2 T1的提交覆盖丢失 T1 Read A=16
Rollback—回滚
2018/10/14 福州大学阳光学院计算机工程系
一、事务的概念
• COMMIT
– 事务正常结束 – 提交事务的所有操作(读+更新)
– 事务中所有对数据库的更新永久生效
2018/10/14
福州大学阳光学院计算机工程系
6
一、事务的概念
• ROLLBACK
– 事务异常终止 – 事务运行的过程中发生了故障,不能继续执行,回
A A=A-1 B
B=B+1
• 这两个操作要么全做,要么全不做
2018/10/14 福州大学阳光学院计算机工程系 10
一、事务的概念
T1 ① 读A=16 ② ③ A←A-1 写回 A=15 ④ T2 读A=16
T1的修改被T2覆盖了! (称为"修改丢失")
A←A-3 写回 A=13
福州大学阳光学院计算机工程系 11
加锁,使得T对该数据拥有某种操作权而排除其他
事务对该数据的某种操作权。记为Lock R
• 解锁
– 封锁后可以释放数据对象,记为UnLock R
2018/10/14 福州大学阳光学院计算机工程系 20
三、封锁
• X锁与S锁
– X锁(排他锁/写锁)
• 事务T对数据对象R加锁后,T对R可以进行读写操 作,但其他事务对R不能进行任何操作,而只能等 到T对R解锁后才可进行操作。记为XLock R
滚事务的所有更新操作
– 事务滚回到开始时的状态
2018/10/14 福州大学阳光学院计算机工程系 7
一、事务的概念
原子性
一致性
隔离性
永久性
事务的特性(ACID)
2018/10/14 福州大学阳光学院计算机工程系 8
一、事务的概念
特性
原子性 一致性
含义
事务必须遵守“要么都 做要么都不做”的原则 事务执行必须使DB保持 一致性的状态
第六章 事务与并发控制
一、事务的概念
• 事务概念
– 用户定义的一个操作序列,这些操作要么都执行, 要么都不执行,是一个不可分割的工作单位
2018/10/14
福州大学阳光学院计算机工程系
ห้องสมุดไป่ตู้
2
一、事务的概念
• 事务与程序区别
– 一个事务可以是一条SQL语句,一组SQL语句或 整个程序
– 一个应用程序通常包含多个事务
相关文档
最新文档