数据库原理课程教案(常用版).doc
《数据库原理课程教案(常用版).doc》由会员分享,可在线阅读,更多相关《数据库原理课程教案(常用版).doc(37页珍藏版)》请在咨信网上搜索。
1、数据库原理课程教案(常用版)(可以直接使用,可编辑 完整版资料,欢迎下载) 数据库原理 课程教案授课题目(教学章、节或主题):第七章 数据库系统的恢复和并发控制技术:包括事务的概念以及事务的ACID特性,数据库恢复技术,并发操作产生的数据不一致性,并发调度的可串行性概念,封锁协议与数据一致性的关系,死锁的预防和诊断,饥饿的概念及预防等。教学目的、要求(分掌握、熟悉、了解三个层次):把所学的知识和第六章所学习的知识联系起来,在实际的应用中,提升对这些技术的理解和掌握,保证数据的完整性、安全性和一致性,保证数据库系统24小时正确运行,保证数据库系统在遇到故障时能及时恢复正常运行,提高抗故障抗灾难的
2、能力。课时安排:6节授课方式:理论课教学基本内容:以教师为中心的讲授、提问及论证等的教学方法,教学手段使用板书与多媒体相结合的手段。第七章 数据库系统的恢复和并发控制技术v 本章学习目的 把所学的知识和第六章所学习的知识联系起来,在实际的应用中,提升对这些技术的理解和掌握,保证数据的完整性、安全性和一致性,保证数据库系统24小时正确运行,保证数据库系统在遇到故障时能及时恢复正常运行,提高抗故障抗灾难的能力。v 本章要点 事务的基本概念 事务的ACID属性 数据库恢复技术,针对不同的故障类型,掌握恢复数据库的策略和方法 并发操作产生的数据不一致性 并发调度的可串行性概念 封锁协议与数据一致性的关
3、系 死锁的预防和诊断 饥饿的概念及预防7.1 事务的基本概念和特性 事务的基本概念 v 事务定义 一个数据库操作序列 一个不可分割的工作单位 恢复和并发控制的基本单位v 在SQL语言中,定义事务的语句有三条: BEGIN TRANSACTION COMMIT ROLLBACK1)什么是事务l 事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位l 事务和程序是两个概念 在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序 一个应用程序通常包含多个事务l 事务是恢复和并发控制的基本单位2)如何定义事务l 显式定义方
4、式 BEGIN TRANSACTION BEGIN TRANSACTION SQL 语句1 SQL 语句1 SQL 语句2 SQL 语句2 。 。 COMMIT ROLLBACKl 隐式方式当用户没有显式地定义事务时,DBMS按缺省规定自动划分事务v COMMIT 事务正常结束 提交事务的所有操作(读+更新) 事务中所有对数据库的更新永久生效v ROLLBACK 事务异常终止 事务运行的过程中发生了故障,不能继续执行 回滚事务的所有更新操作 事务滚回到开始时的状态 事务的ACID 特性 事务的ACID特性:v 原子性(Atomicity)v 一致性(Consistency)v 隔离性(Isol
5、ation)v 持续性(Durability )7.2 数据库恢复 v 故障是不可避免的 系统故障 人为故障v 数据库的恢复把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态) 故障的种类v 1. 事务内部的故障 v 2. 系统故障 v 3. 介质故障 1. 事务内部故障v 事务内部的故障 n 有的是预期的,在程序中可以预先估计到的,由事务程序加入判断和ROLLBACK 语句进行处理。 n 有的是非预期的 v 事务内部更多的故障是非预期的,是不能由应用程序处理的。 n 运算溢出 n 并发事务发生死锁而被选中撤销该事务 n 违反了某些完整性限制等 以后,事务故障仅指这类非预期的
6、故障v 事务故障的恢复:撤消事务(UNDO)2. 系统故障 v 系统故障是指引起系统停止运转随之要求重新启动的任何事件。v 原因:硬件故障(如CPU故障)、软件故障(如操作系统故障)、突然断电等。v 特点: 整个系统的正常运行突然被破坏 所有正在运行的事务都非正常终止 不破坏数据库 内存中数据库缓冲区的信息全部丢失系统故障的恢复 v 发生系统故障时,事务未提交 恢复策略:强行撤消(UNDO)所有未完成事务v 发生系统故障时,事务已提交,但缓冲区中的信息尚未完全写回到磁盘上。 恢复策略:重做(REDO)所有已提交的事务3. 介质故障 v 介质故障 称为硬故障,指外存故障 磁盘损坏 磁头碰撞 瞬时
7、强磁场干扰 计算机病毒 介质故障的恢复 (1)重装转储的备份副本到新的磁盘,使数据库恢复到转储时的一致状态; (2)在日志中找出转储后所有已提交的事务; (3)对这些已提交的事务进行REDO处理,即子系统撤消所有未完成事务,对所有已提交的事务进行重做。 数据库恢复技术 v 恢复操作的基本原理:冗余使用存储在另一个系统中的“冗余”数据以及事先建立起来的日志文件,重新构建数据库中已经被损坏的数据,或者修复已经不正确的数据。 v 恢复机制涉及的关键问题 如何建立冗余数据n 数据转储n 登记日志文件 如何利用这些冗余数据实施数据库恢复 数据库恢复技术v 1数据转储技术v 2登记日志文件v 3使用多副本
8、的恢复技术1. 数据转储技术 v 所谓数据转储,是指由DBA(数据库管理员)定期的将整个数据库中的内容复制到另一个存储设备或另一个磁盘上去,这些转储的副本称为后备副本或后援副本。v 如何使用 数据库遭到破坏后可以将后备副本重新装入 重装后备副本只能将数据库恢复到最近转储时的状态转储方法 (1 )从转储的运行状态,可分为静态转储与动态转储 (2 )从转储的进行方式,可分为海量转储与增量转储 静态转储 v 在系统中无运行事务时进行的转储操作 v 转储开始时数据库处于一致性状态 v 转储期间不允许对数据库的任何存取、修改操作 v 得到的一定是一个数据一致性的副本 v 优点:实现简单,可保证副本与数据
9、库的一致性 v 缺点:降低了数据库的可用性,效率较低 转储必须等待正运行的用户事务结束 新的事务必须等转储结束 动态转储 v 转储操作与用户事务并发进行 v 转储期间允许对数据库进行存取或修改 v 优点 不用等待正在运行的用户事务结束 不会影响新事务的运行 v 动态转储的缺点 不能保证副本中的数据正确有效 v 利用动态转储得到的副本进行故障恢复 需要把动态转储期间各事务对数据库的修改活动登记下来,建立日志文件 后备副本加上日志文件才能把数据库恢复到某一时刻的正确状态 (2 )海量转储与增量转储 v 海量转储: 每次转储全部数据库 v 增量转储: 只转储上次转储后更新过的数据 v 海量转储与增量
10、转储比较 从恢复角度看,使用海量转储得到的后备副本进行恢复往往更方便 但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用、更有效 2. 登记日志文件 v 什么是日志文件 日志文件(log) 是用来记录事务对数据库的更新操作的文件v 日志文件的格式 n 以记录为单位的日志文件 n 以数据块为单位的日志文件 v 以记录为单位的日志文件内容 各个事务的开始标记(BEGIN TRANSACTION) 各个事务的结束标记(COMMIT或ROLLBACK) 各个事务的所有更新操作v 具体来说,每个日志记录的格式为:(事务标识,操作类型,操作对象,前像,后像)日志文件的格式和内容(续)v 以记录为单
11、位的日志文件,每条日志记录的内容 事务标识(标明是哪个事务) 操作类型(插入、删除或修改) 操作对象(记录内部标识) 前像(对插入操作而言,此项为空值) 后像(对删除操作而言, 此项为空值) v 举例说明日志文件记录,对于下面每次操作,在日志文件中写一个记录: (1)事务T开始,日志记录为(T,start, , , ) (2)事务T修改对象A,日志记录为(T,update,A,前像,后像) (3)事务T插入对象A,日志记录为(T,insert,A, ,后像) (4)事务T删除对象A,日志记录为(T,delete,A,前像, ) (5)事务T提交,日志记录为(T,commit, , , ) (6
12、)事务T回滚,日志记录为(T,rollback, , , )v 以数据块为单位的日志文件,每条日志记录的内容 事务标识(标明是那个事务) 被更新的数据块 日志文件的作用 v (1)当数据库发生的是事务故障和系统故障时,直接根据日志文件对相应的数据库操作进行UNDO和REDO操作即可;v (2)当发生介质故障时, 如果采用的是动态转储方式,则将后备副本和日志文件结合起来才能有效恢复数据库; 如果采用的是静态转储方式,也可建立日志文件,二者结合完成数据库的恢复。使用后备副本和日志文件恢复数据库 登记日志文件 v 基本原则 (1 )登记的次序必须严格按照并发事务执行的时间次序; (2 )必须先写日志
13、文件,后写数据库,并且日志文件不能和数据库放在同一磁盘上,要经常把它复制到磁带上。 3使用多副本的恢复技术v 如果系统中有多个数据库副本,并且各个副本不会因故障而同时失效,则称这些副本具有独立的失效模式。v 优点:用户可以利用这些独立副本互为备份,很方便地恢复数据库v 缺点:硬件和系统的代价比较高 恢复策略 1. 事务故障的恢复2. 系统故障的恢复 3. 介质故障的恢复 1. 事务故障的恢复 v 事务故障:事务在运行至正常结束提交前被终止 v 恢复方法 应该撤消(UNDO )该事务对数据库的一切更新 v 事务故障的恢复由系统自动完成,对用户是透明的,不需要用户干预 v (1)反向扫描日志文件,
14、查找该事务的更新操作;v (2)对查到更新操作的事务执行逆操作。即将日志记录中“更新前的值”写入数据库 若是UPDATE操作,则将日志文件“前像”写入数据库; 若是INSERT操作,则将数据对象删去; 若是DELETE操作,则做插入操作,插入数据对象的值为日志记录中“前像”;v (3)继续反向扫描日志文件,找出其他的更新操作,并做同样处理。直至读到该事务的Start标记为止。2. 系统故障的恢复 v 系统故障造成数据库不一致状态的原因 未完成事务对数据库的更新已写入数据库 已提交事务对数据库的更新还留在缓冲区没来得及写入数据库v 恢复方法 1. Undo 故障发生时未完成的事务 2. Redo
15、 已完成的事务v 系统故障的恢复由系统在重新启动时自动完成,不需要用户干预系统故障的恢复步骤(1)正向扫描日志文件(即从头扫描日志文件) 重做(REDO) 队列: 在故障发生前已经提交的事务 这些事务既有BEGIN TRANSACTION 记录,也有COMMIT 记录 撤销 (Undo)队列:故障发生时尚未完成的事务 这些事务只有BEGIN TRANSACTION 记录,无相应的COMMIT 记录 (2 )对重做队列事务进行重做(REDO) 处理 n 依据登入日志文件中次序,重新执行登记的操作; (3 )对撤销队列事务进行撤销(UNDO) 处理 n 依据登入日志文件中相反次序,对每个更新操作执
16、行逆操作n 即将日志记录中“更新前的值”写入数据库 v 在上述步骤(1)中,扫描所有的日志文件需要耗费大量的时间,重做的操作中很多是不必要的,故引入了一种称为检查点的恢复技术。该技术是在日志文件中增加了一类新的记录,即检查点(Checkpoint)记录。v 检查点记录的内容包括: 建立检查点时刻正在执行的事务清单; 这些事务最近一个日志记录的地址。v 设置检查点时要执行下列动作: 把仍保留在日志缓冲区中的内容写到日志文件中; 在日志文件中写一个“检查点记录”; 把数据库缓冲区的内容写到数据库; 把日志文件中检查点记录的地址写到“重新启动文件”中。3. 介质故障的恢复 v 具体措施: (1)检查
17、磁盘的毁坏程度,必要时更换磁盘; (2)然后修复系统(包括操作系统和DBMS),重新启动系统; (3)重新装入最近的后备副本,使数据库恢复到最近一次转储时的一致性状态; (4)重新装入有关的日志文件副本,对日志记录中转储点之后的已提交的事务进行REDO操作,将数据库恢复到故障前某一时刻的一致状态。 7.3 并发控制 v 问题的产生 多用户数据库系统的存在 允许多个用户同时使用的数据库系统 n 飞机定票数据库系统 n 银行数据库系统 特点:在同一时刻并发运行的事务数可达数百个 v 不同的多事务执行方式 (1) 事务串行执行 每个时刻只有一个事务运行,其他事务必须等到这个事务结束以后方能运行 不能
18、充分利用系统资源,发挥数据库共享资源的特点 (2) 交叉并发方式(Interleaved Concurrency ) 在单处理机系统中,事务的并行执行是这些并行事务的并行操作轮流交叉运行 单处理机系统中的并行事务并没有真正地并行运行,但能够减少处理机的空闲时间,提高系统的效率 (3) 同时并发方式(simultaneous concurrency ) 多处理机系统中,每个处理机可以运行一个事务,多个处理机可以同时运行多个事务,实现多个事务真正的并行运行 v 事务并发执行带来的问题 会产生多个事务同时存取同一数据的情况 可能会存取和存储不正确的数据,破坏事务一致性和数据库的一致性 并发操作引发的
19、问题 v 并发操作带来的数据不一致性 1 丢失更新(Lost Update ) 2 读“ 脏” 数据(Dirty Read ) 3 不可重复读(Non-repeatable Read ) v 记号 R(x): 读数据x W(x): 写数据x 1. 丢失更新 v (1)甲事务T1读取存款余额R=5000元;v (2)乙事务T2想在网上购物,读取存款余额5000元;v (3)甲事务T1由于需要取走1000元,则系统修改存款余额R=R-1000=5000-1000=4000,并将存款余额4000元写回数据库;v (4)乙事务网上购物转帐支取300元,则系统修改存款余额R= R-300=5000-30
20、0=4700,并将存款余额4700元写回数据库。v 两个事务T1和T2读入同一数据并修改,T2的提交结果破坏了T1提交的结果,导致T1的更新被丢失。2. 读“脏”数据v (1)甲事务T1读取存款余额R=5000元;v (2)甲事务T1由于需要取走1000元,则系统修改存款余额R=R-1000=5000-1000=4000,并将存款余额4000元写回数据库,此时取款的事务还未提交;v (3)乙事务T2由于某种需要,读取存款余额为4000元;v (4)因为某种原因,甲事务的操作要撤销,此时对甲事务执行ROLLBACK操作,该帐户余额恢复为R=5000元。 读“ 脏” 数据是指: n 事务T1 修改
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 课程 教案 常用
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。