关系数据库事务处理技术.pps_第1页
关系数据库事务处理技术.pps_第2页
关系数据库事务处理技术.pps_第3页
关系数据库事务处理技术.pps_第4页
关系数据库事务处理技术.pps_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

第10讲 事务处理技术,参考教材第1011章,2,本讲内容,事务的基本概念 数据库恢复技术 并发控制技术,3,什么是事务,事务是用户定义的一个数据库操作序列 该序列内的操作是不可分割的 在RDBMS中,一个事务可由一条、多条SQL语句组成 在RDBMS中,用于事务的标准SQL语句有 BEGIN TRANSACTION开始事务 COMMIT提交事务所有操作,事务正常结束 ROLLBACK事务执行中遇故障,回滚到事务开始时的状态,事务结束,4,事务的特性,原子性(Atomicity) 同一事务内的操作不可分割 一致性(Consistency) 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态 隔离性(Isolation) 一个事务的执行不能被其他事务干扰,5,事务的特性,持续性(Durability) 某一事务一旦提交,其对数据库中数据的改变就是永久性的 发生于该事务提交后的其他操作或故障,均不影响该事务的执行结果 事务的四个特征 Atomicity、Consistency、Isolation、Durability ACID特性,6,事务的处理技术,事务处理技术用于保证事务的ACID特性 保证被强行终止的事务对数据库和其他事务没有任何影响 数据库恢复技术 保证多个事务的交叉运行不影响这些事务的原子性 并发控制,7,本讲内容,事务的基本概念 数据库恢复技术 并发控制技术,8,数据库恢复技术,故障种类 恢复的实现技术 恢复的策略,9,事务内部故障,事务内部故障有两大类 可通过事务程序发现的,ROLLBACK 非预期的,不能由应用程序处理 若未特别指明,事务故障特指这一类故障 事务故障意味着事务没有到达预期的终点 数据库可能处于不正确的状态,10,系统故障,所有造成系统停止运转的事件都可称为系统故障 发生系统故障 可能造成数据库缓冲区中内容丢失,使得运行的事务非正常终止 已完成的事务部分或全部留在缓冲区,尚没有写到物理数据库中,11,介质故障,系统故障又称为软故障 介质故障被称为硬故障,比如 磁盘损坏、瞬时强磁场干扰等 破坏部分或整个数据库,影响正在存取相应数据的事务 发生机率小于前两种故障,但破坏性大,12,数据库恢复技术,故障种类 恢复的实现技术 恢复的策略,13,数据库恢复机制的关键 建立冗余数据 利用冗余数据恢复数据库 建立冗余数据的常用技术 数据转储 登记日志文件,14,数据转储,DBA定期地将整个数据库复制到磁盘或另一个磁盘上保存的过程称为转储 备用数据称为后备副本,运行事务,15,数据转储的分类,静态转储 在系统中无运行事务时进行的转储 只要转储开始时数据库处于一致性状态,则得到的后备副本一定是一致的 由于对事务运行的限制,可能降低数据库可用性 动态转储 在转储期间允许对数据库进行存取或修改 得到的后备副本不一定是一致的,16,数据转储的分类,海量转储 每次转储全部数据库 用得到的后备副本进行数据库恢复比较方便 但如果数据库大且事务处理频繁,则不实用 增量转储 每次只转储上一次转储后被更新过的数据 转储和使用后备副本进行恢复时比海量转储麻烦,17,日志文件概念及格式,日志文件是用于记录事务对数据库的更新操作的文件 不同RDBMS采用的日志文件格式不完全一样 日志文件的格式 以记录为单位的日志文件 事务标识、操作类型、操作对象、更新前数据的值、更新后数据的值 以数据库块为单位的日志文件 事务标识、更新前的数据块、更新后的数据块,18,日志文件的作用,事务故障和系统故障的恢复必须使用登记日志 动态转储方式中,必须使用登记日志 静态转储中,也可能用到登记日志,19,登记日志文件的准则,日志的登记次序严格按并发事务执行的时间次序 必须先写日志文件,后写数据库 将数据的修改写到数据库中是一个操作 将表示该数据修改的日志写到日志文件中又是一个操作 两操作执行时可能发生发生故障,20,数据库恢复技术,故障种类 恢复的实现技术 恢复的策略,21,事务故障的恢复,事务故障的恢复由系统自动完成,对用户透明 某事务发生故障后,系统恢复步骤 1. 反向扫描日志文件,查找该事务的更新操作 2. 对该事务的更新操作执行逆操作 3. 继续反向扫描日志,查找该事务的其他更新操作,返2 4. 直到反向扫描到事务的开始标记,22,系统故障的恢复,系统故障恢复由系统自动完成,不需用户干预 系统故障的恢复步骤 1. 正向扫描日志文件,找出在故障发生前已提交的事务,将其事务标识记入重做队列;找出故障发生时尚未完成的事务,将其事务标识记入撤消队列 2. 对撤消队列中的各个事务进行撤消处理 3. 对重做队列中的各个事务进行重做处理,23,介质故障的恢复,最严重的故障,磁盘上的物理数据和日志文件被破坏 介质故障的恢复步骤 1. 装入最新的数据库后备副本,使数据库恢复到最近一次转储时的一致性状态 2. 装入相应的日志文件副本,重做已完成的事务,24,本讲内容,事务的基本概念 数据库恢复技术 并发控制技术,25,并发操作及其引发的问题 并发控制的实现 封锁 两段锁协议,26,并发操作的必要性,事务一个一个串行执行,可避免同时运行多个事务所引发的冲突 但无法充分利用系统资源 不同的事务,在执行过程中需不同 的资源 串行执行所有事务,导致某些系统 资源处于空闲,27,并发的分类,交叉并发(Interleaved Concurrency) 单CPU处理系统中采用的并发方式 事务轮流交叉运行 不是真正意义上的并发 同时并发(Simultaneous Concurrency) 多CPU处理系统中采用的并发方式 每个CPU运行一个事务 是真正意义上的并发,28,并发操作引发的问题,丢失修改 两事务同时读入同一数据并修改 某一事务提交的结果破坏了另一事务提交的结果,29,并发操作引发的问题,不可重复读 两事务并发操作 某一事务T1读取数据后,另一事务T2执行了更新操作,使T1无法再现前一次读取的结果,30,并发操作引发的问题,读“脏”数据 两事务并发操作 某一事务T1修改某一数据,并将其写入数据;另一事务T2读取该数据后,T1回滚 事务T2读到的数据是不正确的数据,31,并发控制的必要性,当多个事务对数据库进行并发操作,可能造成丢失修改、不可重复读、读“脏”数据等问题 破坏事务的ACID特性 为保证事务的隔离性、一致性,需对并发操作进行控制 并发控制机制也是衡量一个RDBMS性能的重要指标之一,32,并发操作及其引发的问题 并发控制的实现 封锁 两段锁协议,33,封锁,事务T对某个数据对象进行操作前,向系统发出加锁请求 系统加锁,事务T拥有对该数据对象的控制 控制程度由所加锁类型确定 事务T释放所加的琐之前,其他事务不可更新该数据对象 事务T执行完后,释放所加的琐,34,常用锁类型,排它锁(写锁)Xlock 事务T对数据对象A加Xlock,则只有T才可读取、修改A 其他事务不可对A加任何类型的锁,直到T释放A上的锁 共享锁(读锁)Slock 事务T对数据对象A加Slock,则T可读A但不能修改A 其他事务可对A加Slock ,直到T释放A上的锁,35,封锁解决丢失修改,36,封锁存在的问题,死锁 相互等待,事务无法结束,T1封锁R1,T2封锁R2,请求封锁R2 等待T2,请求封锁R1 等待T1,37,死锁的预防,一次封锁法 要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行 缺点:扩大封锁范围,降低系统并发性 无法准确预期哪些数据被加锁 顺序封锁法 预先对数据对象规定一个封锁顺序,所有事务按该顺序实行封锁 缺点:维护成本高、很难准确预测封锁对象,38,死锁的诊断,超时法 当一事务等待时间超过预定值,则诊断为发生了死锁 难点:超时时间的设定 等待图法 以有向图的方式描述所有事务的等待情况 图中出现回路则发生了死锁,39,并发操作及其引发的问题 并发控制的实现 封锁 两段锁协议,40,封锁协议,封锁时,对数据对象加

温馨提示

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

评论

0/150

提交评论