- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库系开统的恢复和并发控制技术
* 6 数据库保护 数据库恢复 并发控制 数据库安全性 数据库完整性 * 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) * 例: 事务 T1:R1(X)R1(Y)W1(Y) 的执行顺序可表示为 R1(X) R1(Y) W1(Y) 符号→表示先于(),即R1(X)先于W1(Y)执行, R1(Y)先于W1(Y)执行,而R1(X)和R1(Y)的先后次序无关紧要。 * 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) 对于冲突操作不能同时执行,哪个先执行,哪个后执行由调度决定。 * 3、调度 设τ={T1,T2, …T n}是一事务集, τ的一个调度S是一拟序集(∑ ,s) 其中: 1) ∑说明S执行的操作正是T1, T2, …T n 的操作。 2) s 说明调度S遵守每个事务的操作的 内部执行次序 3) 每对冲突操作的执行次序由S决定。 * 例如:考虑下列两个事务T0, T1 T0= W0(X) W0(Y) W0(Z) T1= R1(X) R1(Z) W1(X) T0, T1的拟序集表示为: T0=({W0(X),W0(Y),W0(Z)},{}) T1 =({R1(X),R1(Z),W1(X)},{R1(X) W1(X), R1(Z) W1(X)}) * R1(X) R1(Z) W1(X) S1= W0(X) W0(Y) W0(Z) 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)}) 两个事务T0,T1的调度可以表示为: * 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)}) R1(X) R1(Z) W1(X) S2= W0(X) W0(Y) W0(Z) 两个事务T0,T1的调度可以表示为: * R1(X) R1(Z) W1(X) S3= W0(X) W0(Y) W0(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)}) 两个事务T0,T1的调度可以表示为: * 例:给出事务T0,T1,T2,T3,T4的一个调度 T0= W0(X) W0(Y) W0(Z) T1= R1(X) R1(Z) W1(X) T4= R4(X) R4(Y) R4(Z) T2= R2(X) W2(Y) T3= R3(Z) W3(Y) W3(Z) * 一个调度S1 W0(X) W0(Y) W0(Z) R1(X) R1(Z) W1(X) R3(Z) W3(Y) W3(Z) R4(X) R4(Y) R4(Z) R2(X) W2(Y) 请写出S1的拟序集 * 4、串行调度 如果在一个调度中,各个事务不交叉执行,而顺序地串行执行,这个调度被称为串行调度。 定义:如果调度S中的任意两个事务Ti和Tj,如果Ti的所有操作都先于Tj的所有操作,或者相反,则称S为串行调度。 注意: 在串行调度中每一个事务都是在下一个事务开始执行之前提交。因此,串行调度没有并发性,故每一个串行调度都是一个正确的执行。 * 5、并发调度 如果在一个调度中,各个事务交叉地执行,这个调度称为并发调度。 * 定义:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同,称这种调度策略为可串行化的调度。 6、可串行化的调度 如果一个事务集的并发调度与某一串行调度是等价的,则称该并发调度是可串行化的 。 * 7、串行化定理 定理:一个调度S是可串行化的,当且仅当它的串行图是无环的。 串行图
文档评论(0)