06-2 数据库系统的恢复和并发控制技术---精品资料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
W0(X)
S1= W0(Y) W0(Z) R1(Z)
R1(X)
W1(X)
S1=({W0(X),W0(Y) ,W0(Z) ,R1(X),R1(Z) ,W1(X) }, {W0(X)< R1(X), W0(Z)< R1(Z), R1(X)< R1(Z) , R1(X)< W1(X), R1(Z) <W1(X)})
或为:
T2
T0,T2,T3,T1,T4
18
可串行化调度
T1 T2 Read(A) Read(B) Read(C) Write(C) T1 T2 T3
Read(D)
Write(C)
T3 Read(C) Write(D)
Write(B)
19
1)某一事务在对数据进行读、写之前,先 要申请并获得对该数据的封锁。 2)在释放一个封锁之后,事务不再申请 和获得任何其它封锁。 说明:规则1避免了两个冲突操作同时存 取同一数据。 规则2把每个事务分为两个 阶段:上升段和下降段。
15
R3(X)
W3(X)
R1(X)
R2(X)
W1(X)
W2(Y)
W1(Y)
T2 R3(X) T1 W3(Z)
T3
R1(X)
W1(X)
W1(Y)
T3
R2(X)
W2(Y)
T2
wenku.baidu.com
T1
16
8、等价的串行调度:如果SG(S)是无环
的,则S等价于SG(S)的任一拓扑排序。 T3
拓扑排序为: T2,T1,T3
T2
T1
T2
T1 T3
拓扑排序为:T1,T3,T2 或为:T1,T2,T3
17
R1(X) W0(X) R1(Z) R2(X) W1(X) R4(X)
W0(Y)
W2(Y)
W3(Y) W3(Z)
R4(Y)
W0(Z)
R3(Z)
R4(Z) 拓扑排序为:
调度S的串行图
T1
T0
T3
T4
T0,T2,T1,T3,T4
W0(X)
T0= W0(Y) W0(Z) T1=
R1(X)
W1(X) R1(Z)
T0, T1的拟序集表示为: T0=({W0(X),W0(Y),W0(Z)},{}) T1 =({R1(X),R1(Z),W1(X)},{R1(X)< W1(X), R1(Z) <W1(X)})
6
两个事务T0,T1的调度可以表示为:
7
两个事务T0,T1的调度可以表示为:
W0(X) S2= W0(Y) R1(X) W1(X)
W0(Z)
R1(Z)
S2=( {W0(X),W0(Y) ,W0(Z) , R1(X), R1(Z) , W1(X) },{W0(X)< R1(X), W0(Z)< R1(Z), R1(Z)< R1(X) ,R1(X)< W1(X), R1(Z) <W1(X)})
注意:
在串行调度中每一个事务都是在下一个事务 开始执行之前提交。因此,串行调度没有并发 性,故每一个串行调度都是一个正确的执行。12
5、并发调度
如果在一个调度中,各个事务交叉地执 行,这个调度称为并发调度。
13
6、可串行化的调度
如果一个事务集的并发调度与某一串行 调度是等价的,则称该并发调度是可串 行化的 。
9
例:给出事务T0,T1,T2,T3,T4的一个调度
W0(X)
T0=
W0(Y)
W0(Z) R1(X)
W3(Y) T3= R3(Z) W3(Z)
T1= R1(Z)
W1(X)
R4(X)
T4=
W2(Y)
R4(Y)
R4(Z)
T2= R2(X)
10
一个调度S1
R1(X)
W0(X)
W0(Y)
R1(Z)
R2(X)
2
例: 事务 T1:R1(X)R1(Y)W1(Y) 的执行顺序可表示为
R1(X) W1(Y)
R1(Y) 符号→表示先于(<),即R1(X)先于 W1(Y)执行, R1(Y)先于W1(Y)执行,而 R1(X)和R1(Y)的先后次序无关紧要。
3
2、冲突操作 定义:如果两个操作来自不同的事务,它 们对同一数据单位进行操作,并且其中 至少有一个是写操作,则称这两个操作 是相互冲突的或冲突操作。 例:事务T0:W0(X)W0(Y)W0(Z) 事务T1:R1(X)R1(Z)W1(X) 则在这两个事务中有冲突操作: R1(X)与W0(X) W1(X)与W0(X) R1(Z)与W0(Z) 对于冲突操作不能同时执行,哪个先执 行,哪个后执行由调度决定。
W1(X)
R4(X)
W2(Y)
W3(Y)
R4(Y)
W0(Z)
R3(Z)
W3(Z) R4(Z)
请写出S1的拟序集
11
4、串行调度
如果在一个调度中,各个事务不交叉执 行,而顺序地串行执行,这个调度被称 为串行调度。
定义:如果调度S中的任意两个事务Ti和Tj,如
果Ti的所有操作都先于Tj的所有操作,或者相反, 则称S为串行调度。
6 数据库保护
• • • • 数据库恢复 并发控制 数据库安全性 数据库完整性
1
1、事务的表示方法: Ri(X)表示事务Ti的读X操作; Wi(X)表示事务Ti的写X操作。 例:事务T1(Read(B);A=B+1;write(A)), 事务T2(Read(A);B=A+1;write(B)) 可以表示成: T1:R1(B)W1(A) T2:R2(A)W2(B)
4
3、调度
设τ={T1,T2, …T n}是一事务集, τ 的一个调度S是一拟序集(∑ ,<s)
其中: 1) ∑说明S执行的操作正是T1, T2, …T n 的操作。 2) <s 说明调度S遵守每个事务的操作的 内部执行次序 3) 每对冲突操作的执行次序由S决定。
5
例如:考虑下列两个事务T0, T1
8
两个事务T0,T1的调度可以表示为:
W0(X) S3= W0(Y) R1(X) W1(X)
W0(Z)
R1(Z)
S3=( {W0(X),W0(Y) ,W0(Z) , R1(X),R1(Z) ,W1(X) },{W0(X)< R1(X), W0(Z)< R1(Z), R1(X)< W1(X), R1(Z) <W1(X)})
定义:多个事务的并发执行是正确的,当且
仅当其结果与按某一次序串行地执行它们 时的结果相同,称这种调度策略为可串行 化的调度。
14
7、串行化定理 定理:一个调度S是可串行化的,当且仅 当它的串行图是无环的。 串行图: 设S是若干事务{T1,T2,…,Tn}的一个调度, S的串行图SG(S)是一个有向图,其构成 规则如下: 1)图中的结点表示事务 2)如果Oi和Oj是冲突操作,且Oi先于Oj 执行,则在图中有一条边Ti→Tj。
相关文档
最新文档