




免费预览已结束,剩余65页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020/6/7,1,系统端-数据库保护,第9章事务管理,2020/6/7,2,主要内容,事务概述并发控制数据库恢复技术,2020/6/7,例如,银行转帐。在SQL中,事务的定义事务处理以Begintransaction开始,以Commit或Rollback结束,表示提交;正常结束事务处理表示事务处理异常结束;取消执行事务处理的操作,回滚到事务处理开始时的状态;2020/6/7,4,4a :=a50;写入(A);read(B);B:=B 50写入(B);Read(X):在将数据库中的数据项X转移到事务处理的工作区中写入(X):将事务处理的工作区中的数据项X写入数据库。事务处理实例,2020/6/7,5,事务处理实例,银行转帐实例:假定银行具有需要将帐户1的$1000转帐至帐户2的转帐业务。数据库应用程序必须至少执行以下步骤,以完成帐户关系帐户帐户,帐户编号具有表示该帐户馀额的acctNo和balance属性:):读取帐户1的资金馀额,并确定馀额(balance)是否大于$1000。updateaccountssetbalance=balance-1000 whereaccno=ACC t1;updateaccountssetbalance=babalance 1000 where acct=acct 2;2020/6/7、6、原子事务中包含的所有操作都不做或不做。原子性是通过恢复机制实现的。一致性事务的隔离运行必须确保数据库的一致性。事务开始之前,数据库处于一致状态。事务结束后,数据库仍然必须处于一致状态。数据库的一致性状态由用户负责,并由并发控制机制实现。对于银行转帐,转帐前后两个帐户金额的总和必须保持不变。事务属性(ACID)、2020/6/7、7和隔离系统必须确保事务不受其他并发执行事务的影响。对于T1,T2事务处理,T1中的T2在T1开始前结束,或在T1完成后运行。隔离通过并发控制机制实现。提交永久性事务后,永久性系统故障对数据库的影响包括不能更改事务的持久性、通过恢复机制的事务特征(ACID)(续)、2020/6/7、8、事务状态、2020/6/7一组事务处理的调度,指示事务处理的指令在系统中执行的时间顺序,应确保包含所有事务处理的作业指令在一个事务处理中的顺序不会更改。串行调度必须包含属于同一事务处理的指令。n对于具有事务处理的事务处理组,可以有n。高效调度并行调度并行调度允许不同事务处理的指令相互执行。如果并行调度与串行调度相同,则精确,2020/6/7,10,并行与串行基本比较并行事务与数据库一致的串行事务效率低下并行处理的优点一个事务配置在不同阶段,相关的系统资源也不同。这些步骤可以在系统的吞吐量系统中同时执行不同周期的各种事务,从而导致难以预测的延迟。每个办公室处理数据库的不同部分时,采用并发,平均响应时间缩短核心问题在确保一致性的同时最大限度地提高并发性,2020/6/7,11,事务执行示例,t1 read(A);A :=a50写入(A);read(B);B:=B 50写入(B);T2read(A);Temp :=a0.1a :=a temp写入(A);read(B);B:=B temp写入(B);a从以前的50至b,a从以前存款的10%至b开始状态:a=1000 A :=a50写入(A);read(B);B:=B 50写入(B);read(A);Temp :=a0.1a :=a temp写入(A);read(B);B:=B temp写入(B);t1、T2、A=90 b=2050结束状态:A=855 b=2145 A b=3000串行计划1,2020/6/7、13、A :=a50写入(A);read(B);B:=B 50写入(B);read(A);Temp :=a0.1a :=a temp写入(A);read(B);B:=B temp写入(B);t1、T2、A=900 b=2100结束状态:A=80 b=2000串行计划2,2020/6/7、14、A :=a50写入(A);read(B);B:=B temp写入(B);t1,T2,a=90 b=2000结束状态:a=85 b=2145 a b=300 read(b);B:=B 50写入(B);read(A);Temp :=a0.1a :=a temp写入(A);A=855 b=2000 A=855b=2050,并行计划3,2020/6/7,15,并发计划事务处理中可能出现的问题,更新丢失读取脏数据无法重复读取,2020/6A :=a50,B:=B temp写入(B);t1,T2,a=1000 b=2000结束状态:a=90 b=200 a b=300 write(a);read(B);B:=B 50写入(B);read(A);Temp :=a0.1a :=a temp写入(A);read(B);a=900 b=2000 a=950 b=2000 a=90 b=2050,并行计划4,2020/6/7,18,脏read(B);B1:=BA1 B1=2950,read(B);B:=B 50写入(B);t1、T2、a=1000 b=2000、read(a);A :=a50写入(A);并发计划5,2020/6/7,20,无法重复读取,事务T1读取数据后修改事务T2,T1重新读取数据时与以前不同的值示例,2020/6/7,21,read(A);1:=a,t1,T2,a=1000 b=2000,read(a);A :=a50写入(A);read(B);B:=B 50写入(B);read(B);B 1:=ba1b1=3050,a=950-b=2050并行计划6,2020/6/7,22,并发计划的串行可序列化计划:多个事务处理的并发执行正确,按特定顺序正确排程:指定的并行排程,仅在此排程可序列化时适用。并行调度可序列化,2020/6/7,23,T1t2 t1 T2 slockbslockay=B(=3 2x=A(=3 2 unlockbunlockeaxlockaxlockba) t1t2 t1 T2 slockbslockby=B=2y=B=2 slockaunlockbx=A=2 xlockeaunlockebslockaunlockaunlockby=Y 1 XlockA等待写回A(c)不可序列化的时间表(d)可序列化的时间表、并行事务的其他时间表(续)、2020/6/7、25、并行时间表的可序列化(续)、指令的顺序在一个调度s中为两个连续指令(read和wrread) Ii=read(Q),Ij=write(Q);Ii=write(Q),Ij=read(Q);Ii=write(Q),Ij=write(Q);在情况下,Ii和Ij的顺序无关紧要。其馀2与Ij的顺序不同,执行结果不同,数据库最终状态也不同。2020/6/7,26,并行计划的可序列化(续),如果两个冲突指令是同一数据项的不同事务的操作,其中至少有一个是write指令,则这两个指令冲突(例如,)。Ii和Ij不会影响冲突的非冲突指令交换顺序在调度中的最终结果冲突。也就是说,如果调度S可以通过一系列非冲突指令交换转换为调度S ,那么当可冲突可序列化调度S与一个串行调度冲突时,该调度可以冲突可序列化(例如,并行调度3可以序列化冲突,2020/6/7,27)写入(A);read(B);写入(B);T1、T2、read(B);写入(B);read(A);写入(A);read(A);写入(A);read(B);写入(B);T1、T2、write(B);read(A);write(A);read(B);read(A);写入(A);read(B);写入(B);write(B);read(A);写入(A);read(B);交换1,交换2,交换3,读取(A);写入(A);read(B);写入(B);read(B);写入(B);read(A);write(A);并行调度3串行化,2020/6/7,28,挂起机制,所谓并发控制是为了防止数据不一致,并以正确的方式调度并发操作,以避免一个用户事务的执行受到其他事务的干扰。另一方面,由于数据库的应用,有时会允许一些不一致,例如数据量大,某些脏数据对统计精度没有影响。在这种情况下,降低对一致性的要求,减少系统开销并发控制的主要方法是使用阻塞机制。2020/6/7,29,在对事务阻塞t数据对象执行操作之前向系统发出请求以锁定。锁定后,事务t控制在事务t解除锁定之前其他事务无法更新的数据对象。锁定(写入锁定,x锁定)共享锁定(读取锁定,s锁定),锁定机制(续),2020/6/7,30,t2t1xs-xnxnysnyy-yyy,N=No、不兼容的请求、封锁类型的兼容矩阵、2020/6/7、31、封锁协议解锁数据对象时,还需要一些将这些规则称为封锁协议的规则。修改级别1阻止协议事务t数据之前,必须添加x锁定,直到事务结束。在读取第二个阻止协议第一个阻止协议和事务t数据r之前,必须添加s-lock,以便在读取后解除s-lock。第3级封锁协议第1级封锁协议在读取事务处理t数据r之前,必须添加s锁,以便事务处理终止。封锁机制(续),2020/6/7,32,实时锁定和死锁实时锁定事务可以待机解决。首先,服务策略死锁两个事务处于相互等待状态。无法结束死锁预防。封锁方法并发顺序阻塞死锁诊断和释放超时方法,等待图,阻塞机制(续),2020/6/7,33,t1 T2 T2(1 t1 T2 2(1)读取A=16(1) (A)修改丢失(b)无法重复读取脏数据(C),2020/6/7,34,t1 T2 t1 t1 T2 t1 T2(1)获取SLA(1)获取SLA B等待(3)ROLLBACK等待Commit等待总计=150等待(c恢复为200UnlockX等待(4) ulock等待(4) ulock等待(4) XLAUlockB等待SSL 如果同时运行的所有事务都符合两个锁定协议,则可以序列化这些事务的所有并发调度策略。两阶段锁定的含义:事务处理分为两个阶段的第一个阶段。也就是说,展开步骤的第二个步骤是释放步骤,也称为收缩步骤清理。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金属包装容器智能制造装备选型考核试卷
- 嵌入式系统硬件设计考题及答案
- 医院规则秩序管理制度
- 幼儿开学规矩管理制度
- 学校积分超市管理制度
- 在托儿童健康管理制度
- 学校清洁消毒管理制度
- 网络流量管理工具使用考题及答案
- 学习物资采购管理制度
- 启迪中学宿舍管理制度
- 脑胶质瘤的治疗:替莫唑胺-蒂清
- DL∕T 1746-2017 变电站端子箱
- 创新创业实战案例解析智慧树知到期末考试答案章节答案2024年东北农业大学
- 广东省市政基础设施工程竣工验收技术资料统一用表(2019版)(下册)
- 2024年安徽省高考化学试卷(真题+答案)
- 江苏省苏州市常熟市2023-2024学年五年级下学期数学期末检测
- 江苏省南京市鼓楼区2023-2024学年五年级下学期期末数学试卷
- 颅脑外伤的麻醉管理
- 华夏文化五千年智慧树知到期末考试答案章节答案2024年大连工业大学
- YB/T 6328-2024 冶金工业建构筑物安全运维技术规范(正式版)
- 弘扬非遗传统文化-评书2
评论
0/150
提交评论