1 / 76
文档名称:

数据库系统概论九.ppt

格式:ppt   大小:2,103KB   页数:76
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据库系统概论九.ppt

上传人:我是药神 2022/4/9 文件大小:2.05 MB

下载得到文件列表

数据库系统概论九.ppt

相关文档

文档介绍

文档介绍:数据库系统概论九
一簇蓝色精灵的小确幸
CHENYING0907
产生的不一致性的根本原因
操作冲突
如果两个事务发生的两个操作都针对于同一数据项,只要其中有一个是写操作,则这两个操作是冲突的。
Date
8
第十一章 发控制
冲突可串行化调度(续)
一个调度Sc在保证冲突操作的次序不变的情况下,通过交换两个事务不冲突操作的次序得到另一个调度Sc’,如果Sc’是串行的,称调度Sc为冲突可串行化的调度。
可串行化调度的充分条件:一个调度是冲突可串行化,一定是可串行化的调度
Date
18
第十一章 并发控制
冲突可串行化调度(续)
[正例]今有调度Sc1=r1(A)w1(A)r2(A)w2(A)r1(B)w1(B)r2(B)w2(B)
r1(A)w1(A)r2(A)r1(B)w1(B)w2(A)r2(B)w2(B)
Sc2=r1(A)w1(A)r1(B)w1(B)r2(A)w2(A)r2(B)w2(B)
Sc2等价于一个串行调度T1;T2,
因此,Sc1是冲突可串行化的调度。
Date
19
第十一章 并发控制
并发控制机制
用户请求执行事务的时刻是随机的,系统如何在一种动态的环境下保证调度的可串行性?
并发控制机制的任务是维持数据库的一致性,或者说维持事务调度的可串行性的前提下,如何提高并行度。
封锁机制
基于时标的并发控制机制
其它的并发控制技术
多版本(Multiversion)并发控制技术
乐观的并发控制
Date
20
第十一章 并发控制
封锁机制
基本思想
锁的类型
加锁粒度及其选择
加锁与释放的时机
附加协议——两段锁协议
活锁(饿死)和死锁
Date
21
第十一章 并发控制
基本思想
防止操作冲突
Date
22
第十一章 并发控制
锁的类型
共享锁(读锁):如果数据项被某事务用共享锁加锁,其它事务仍可用共享锁读它。
互斥锁(写锁):如果数据项被某事务用互斥锁加锁,其他事务欲操作这一数据项,必须等待该事务释放此互斥锁。
相容矩阵
锁LOCK(x)的三种状态:读锁、写锁和解锁
锁的操作:read_lock(x)、write_lock(x)、unlock(x)
T2
T1
写锁
读锁

写锁
N
N
Y
读锁
N
Y
Y

Y
Y
Y
Date
23
第十一章 并发控制
加锁粒度及其选择
加锁粒度
指加锁目标的大小。
加锁目标
在数据库系统中,加锁的目标可以是数据项、数据项的集合、记录、文件甚至整个数据库,还可以是物理页、区等计算机资源。
加锁粒度的选择
影响到事务的并发度和并发控制的开销。
加锁粒度越小,事务并发度越高,并发控制的开销也就越大;反之,粒度越大,事务并发度越低,系统控制开销越小。
Date
24
第十一章 并发控制
加锁与释放的时机
四级封锁协议:
级别0:一个事务不修改其它未提交的事务正在操作的数据。
级别1:在满足级别0的基础上,
对任何要修改数据加写锁,直到事务结束才释放。
级别2:在满足级别1的基础上,
对任何要读取的数据加读锁,读完后即可释放。
级别3:在满足级别1的基础上,
对任何要读取的数据加读锁,直到事务结束才释放。
在上述的四个级别中,级别越高,对数据的使用限制越多,数据的一致性越有保证,但是产生死锁的可能性也越大;级别越低,事务的并发度越高,产生死锁的可能性越小,但是数据的一致性保障越弱,越需要用户谨慎操作数据。
不丢失修改
不读‘脏’数据
可重复读
Date
25
第十一章 并发控制
不丢失修改
T1
T2
①读A=16
③A=A-1
写回A=15
交付
② 读A=16
④执行A=A-1
撤销
(A恢复16)
T1
T2
① LOCK(A)=写锁
读A=16
③A=A-1
写回A=15
交付
UNLOCK(A)
② write_lock(A)
等待
等待
等待
等待
LOCK(A)=写锁
④读A=16
执行A=A-1
撤销
UNLOCK(A)
(A恢复15)
Date
26
第十一章 并发控制
不读“脏”数据
T1
T2
①读C=100
C=C*2
写C=200
③撤销
(C恢复为100)
②读C=200
T1
T2
① LOCK(C)=写锁
读C=100
C=C*2
写C=200
③撤销
UNLOCK(C)
(C恢复为