数据库-课件第11讲-事务管理_第1页
数据库-课件第11讲-事务管理_第2页
数据库-课件第11讲-事务管理_第3页
数据库-课件第11讲-事务管理_第4页
数据库-课件第11讲-事务管理_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DBMS三个联系紧密的功事务支持(保证数据库可靠一致并发控 数据库恢复 ,电气学院事务的基本概事务 ,电气学院银行转帐:事务T从A帐户过户50¥到B帐户

A:=A–B:=B+ 原子性(Atomicity)要求 通过恢复机制 持久性(Durability)要求 通过恢复机制 ,电气学院示例:事务特性(续

A:=A–B:=B+ 一致性(Consistency)要求:A+B在执行事务后保持不 ,电气学院示例:事务特性(续 A:=A–B:=B+

read(A),read(B),实 T1,T2,oneby→并发控 ,电气学院ACID属在事务处理中,保持数据库的完整.Consistency.事务的 Isolation.未完成事务导致的中间结果对其他事务来说不可 事务状态/Transaction事务状态/TransactionActivePartiallycommittedFailedAborted–事务回滚,数据库恢复到事务开始前状态,2重启事务:在没有内部逻辑错误条件Kill事Committed事务的状Begin

事务的执BEGINTRANSACTION事务通常是以BEGINTRANSACTION ,电气学院BEGIN//读帐户甲的余额BALANCEBALANCE_aAMOUNT;(AMOUNT帐金额IF(BALANCE<0)PRINT‘金额不足,不能转 {BALANCE_b=BALANCE_b+ ,电气学院Atomicity&Durability所有更新基于数据库的shadowcopydb_pointercopy;库得到恢复,shadowcopy可以删除。Atomicity&Durability(续Theshadow-database对小型数据库(texteditors率极低:执行一个事务需要拷贝整个数据库事务支并发控可串行性与可恢复性 并发控制机制:加锁协议 ,电气学院并发执行的必要并发控制协议–实现 Schedules–指定了并发事务中操作顺的执行序串行调LetT1transfer$50fromAtoB,andT2transfer10%ofthebalancefromAtoB.下图为一个串行调度serialscheduleT2跟随各事务之间的操作没有任何的调非串行调相同的事务,下图为一个Schedule2Schedule1A+B (Schedule(ScheduleSchedule3无法保持A+B未执 ,电气学院可串行基本假设:单个事务能够保证数据库的一致性→因此,该一个串行化的调度仅当该调度等价于一个串行调度;两种串可串行化 视图可串行(viewread和writeli和lj是分别对应Ti和Tj事务的两个操作,当且仅当存在某 li=read(Q),lj= liandlj liread(Q),lj li=write(Q),lj= li=write(Q),lj= 通常,li和lj若存在 若li和lj在一个调度中连续且不 可串行化(续若调度S能够通过一系列 操作转换为调度S’,我们称S 若调度S 等价于一个串行调度,我们称S为 可串行化Example: 无法通过串行调度<T3,T4>或<T4,T3>,使用非 可串行化(续Schedule4能够通过一系列 S和S´为一个事务集合的两个调度,当满足一下条件时,称S和S´为视图等价(viewequivalent):(Ti,Tj为事务集合中对每个数据项Q,若事务Ti在调度S中Q的初值,则在在调S’中,也必须由Ti其初值对每个数据项Q,若事务Ti在调度S中执行read(Q),同时该数据值经由事务Tj处理[write(Q)],则在调度S´中,Ti同样必须执行经事务Tj处理后的数据值[write(Q)];2.对每个数据项Q,在两个调度S和S´中,执行对Q最后写操作write(Q)的必须是同一个事视图等价1,2保证两个调度相同的值→3同1,2视图可串行化续(viewserializable); 下图调度,同<T3,T4,T6>串行调度是视图可串行化调 可恢复性调可恢复性调度(Recoverableschedule):对于每一对事务TA和TB,如果TB 应该在TB之前提交自己的操作. 性的实现(并发控制 或视图可串某些方法仅允许 可串行化调度,而其他方法允许非冲并发控制技在有效算法进试;另外,在调度执行后进行乐观方法:基于出现为小概率事件,因此允许事务执行不保持同步,仅在最后事务提交时进行验 ,电气学院并发控制协议:加 ,电气学院基于加锁协议(Lock-based数据项可赋予两种加锁模式shared(S)共享模式,该模式下,数据项仅可读;通基于加锁协议(Lock-basedpatibility 有的非兼容锁被其它事务,才能获得加锁权限。Exampleofatransactionperformingread(B);read(B); ConsiderthepartialT3&T4都无法完成:executing lock-S(B)causesT4towaitforT3toreleaseitslockonB,whileexecuting lock-X(A)causesT3 towaitforT4toreleaseitslockonA.这一现象称为死锁T3T4中任意一个必须回滚(rollback)所赋加的锁解除加锁协议的问题(续(Starvation)For该相同的事务由于死锁总是不停的回滚,无法完通过事务备选择为牺牲品的次数,并在该次数达回滚的事务)的策略,避免现象发生死锁处理(续死锁防止协议保证系统不会进入死锁状态,某些策略:明predeclaration)两段锁协议(two-phaselockingTimeout-BasedSchemes 执行简单;butstarvationispossible.确定一个好的等待时间比较困一个锁管理器(LockManager)可作为单独进程实现,负责 锁管理器通过发送允许加锁信 回复事务加锁请(或者在碰到死锁的情况下要求事务回滚锁管理器 一个称为锁表(lock table)的数据结构,以LOCK

黑框表示获得的锁,白框表锁表同时记录或请求锁的类 当某一事务中止(aborts),所有该事 有效实现这能事务支并发控数据库恢复概 ,电气学院计算机系统中硬件的故障、软件的错误、操作员的以及的破坏是不可避免的故障轻则造成运行事务 中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中部分数据库管理系统(恢复子系统)必须具有把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)的功能,这就是数据库的恢复。 逻辑错误:由于内部错误系统错误:基于某类出错条件(如死锁),数据库系统必须中止Fail-stop假设:假设系统故障发生后磁 内容不发生损磁盘故障(介质故障,HardCrash):磁头错误、扇区坏死 假设该损坏时可探测的:利用磁盘本身查错功 器在系 时丢examples:mainmemory,cache非易失 器即使系 ,仍保持数examples:disk,tape,flashnon-volatile(batterybackedup) 器假设的一 状态,可克服

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论