华科数据库课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《华科数据库课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课件
- 资源描述:
-
1、数据库技术与应用 1第三篇第三篇 系统篇系统篇 第十章 数据库恢复技术第十一章 并发控制第四章 数据库安全性第五章 数据库完整性数据库技术与应用 2第十章第十章 数据库恢复技术数据库恢复技术10.1 事务的基本概念10.2 数据库恢复概述10.3 故障的种类10.4 恢复的实现技术10.5 恢复策略10.6 具有检查点的恢复技术10.7 数据库镜像10.8 Oracle的恢复技术10.9 小结数据库技术与应用 3银行转帐银行转帐银行转帐:张三从帐号A中取出一万元,存入帐号B。n第一步:A账号扣减1万元;n第二步:B账号增加1万元;n问题:第一步完成后,突然停电,怎么办?n1万元消失了,找谁去喊
2、冤? A=A-1B B=B+1A数据库技术与应用 4最后账上只有最后账上只有14万!苍天呀!大地呀!万!苍天呀!大地呀!同时,老婆在商场逛街,消费了2万元读A=余额16万14万16万 2万写回数据库A=14张三辛苦打工,挣了3万元,存入银行; A=余额16万 19万16万 + 3万 写入数据库A=19张三老婆张三数据库技术与应用 510.1 事务的基本概念事务的基本概念一、什么是事务二、如何定义事务三、事务的特性数据库技术与应用 6一、什么是事务一、什么是事务n事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位n事务和程序是两个
3、概念n在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序n一个应用程序通常包含多个事务n事务是恢复和并发控制的基本单位数据库技术与应用 7二、如何定义事务二、如何定义事务n显式定义方式 BEGIN TRANSACTION BEGIN TRANSACTION SQL 语句1 SQL 语句1 SQL 语句2 SQL 语句2 。 。 COMMIT ROLLBACKn隐式方式当用户没有显式地定义事务时,DBMS按缺省规定自动划分事务数据库技术与应用 8事务结束事务结束COMMIT事务正常结束 提交事务的所有操作(读+更新)事务中所有对数据库的更新永久生效ROLLBACK事务异常终止
4、n事务运行的过程中发生了故障,不能继续执行回滚事务的所有更新操作n事务滚回到开始时的状态数据库技术与应用 9三、事务的特性三、事务的特性(ACID特性特性)事务的ACID特性:n原子性(Atomicity)n一致性(Consistency)n隔离性(Isolation)n持续性(Durability )数据库技术与应用 101. 原子性(原子性(Atomicity)n事务是数据库的逻辑工作单位n事务中包括的诸操作要么都做,要么都不做数据库技术与应用 112. 一致性(一致性(Consistency)事务执行的结果必须是使数据库从一个 一致性状态变到另一个一致性状态一致性状态:数据库中只包含成功
5、事务提交的结果不一致状态:数据库中包含失败事务的结果数据库技术与应用 12一一致性与原子性致性与原子性银行转帐:从帐号A中取出一万元,存入帐号B。n定义一个事务,该事务包括两个操作n这两个操作要么全做,要么全不做n全做或者全不做,数据库都处于一致性状态。n如果只做一个操作,数据库就处于不一致性状态。B=B+1 A=A-1BA数据库技术与应用 133. 隔离性(隔离性(Isolation)对并发执行而言一个事务的执行不能被其他事务干扰n一个事务内部的操作及使用的数据对其他并发事务是隔离的n并发执行的各个事务之间不能互相干扰数据库技术与应用 14T1的修改被的修改被T2覆盖了!覆盖了!读A=16A
6、A-3写回A=13 读A=16 AA-1 写回A=15T2T1数据库技术与应用 154. 持续性(持续性( Durability )n持续性也称永久性(Permanence)n一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。n接下来的其他操作或故障不应该对其执行结果有任何影响。数据库技术与应用 16事务的特性事务的特性 n保证事务ACID特性是事务处理的任务n破坏事务ACID特性的因素n多个事务并行运行时,不同事务的操作交叉执行n事务在运行过程中被强行停止数据库技术与应用 17第十章第十章 数据库恢复技术数据库恢复技术10.1 事务的基本概念10.2 数据库恢复概述10.3 故障的种
7、类10.4 恢复的实现技术10.5 恢复策略10.6 具有检查点的恢复技术10.7 数据库镜像10.8 Oracle的恢复技术10.9 小结数据库技术与应用 1810.2 数据库恢复概述数据库恢复概述n故障是不可避免的n计算机硬件故障n系统软件和应用软件的错误n操作员的失误n恶意的破坏n故障的影响n运行事务非正常中断n破坏数据库数据库技术与应用 19第十章第十章 数据库恢复技术数据库恢复技术10.1 事务的基本概念10.2 数据库恢复概述10.3 故障的种类10.4 恢复的实现技术10.5 恢复策略10.6 具有检查点的恢复技术10.7 数据库镜像10.8 Oracle的恢复技术10.9 小结
8、数据库技术与应用 20一、事务故障一、事务故障n什么是事务故障n某个事务在运行过程中由于种种原因未运行至正常终止点就夭折了n事务故障的常见原因n输入数据有误n运算溢出n违反了某些完整性限制n某些应用程序出错n并行事务发生死锁n数据库技术与应用 21事务故障的恢复事务故障的恢复n发生事务故障时,夭折的事务可能已把对数据库的部分修改写回磁盘n事务故障的恢复:撤消事务(UNDO)n强行回滚(ROLLBACK)该事务n清除该事务对数据库的所有修改,使得这个事务象根本没有启动过一样数据库技术与应用 22二、系统故障二、系统故障n什么是系统故障n整个系统的正常运行突然被破坏n所有正在运行的事务都非正常终止
9、n内存中数据库缓冲区的信息全部丢失n外部存储设备上的数据未受影响数据库技术与应用 23系统故障的常见原因系统故障的常见原因n操作系统或DBMS代码错误n操作员操作失误n特定类型的硬件错误(如CPU故障)n突然停电数据库技术与应用 24系统故障的恢复系统故障的恢复n 清除尚未完成的事务对数据库的所有修改n系统重新启动时,恢复程序要强行撤消(UNDO)所有未完成事务n将缓冲区中已完成事务提交的结果写入数据库n系统重新启动时,恢复程序需要重做(REDO)所有已提交的事务数据库技术与应用 2510.3 故障的种类故障的种类n事务故障n系统故障n介质故障数据库技术与应用 26三、介质故障三、介质故障n硬
10、件故障使存储在外存中的数据部分丢失或全部丢失n介质故障比前两类故障的可能性小得多,但破坏性大得多数据库技术与应用 27介质故障的常见原因介质故障的常见原因n硬件故障n磁盘损坏n磁头碰撞n操作系统的某种潜在错误n瞬时强磁场干扰数据库技术与应用 28介质故障的恢复介质故障的恢复n装入数据库发生介质故障前某个时刻的数据副本n重做自此时始的所有成功事务,将这些事务已提交的结果重新记入数据库数据库技术与应用 29恢复操作的基本原理恢复操作的基本原理n恢复操作的基本原理:冗余n利用存储在系统其它地方的冗余数据来重建数据库中已被破坏或不正确的那部分数据n恢复的实现技术:复杂n一个大型数据库产品,恢复子系统的
11、代码要占全部代码的10%以上数据库技术与应用 30第十章第十章 数据库恢复技术数据库恢复技术10.1 事务的基本概念10.2 数据库恢复概述10.3 故障的种类10.4 恢复的实现技术10.5 恢复策略10.6 具有检查点的恢复技术10.7 数据库镜像10.8 Oracle的恢复技术10.9 小结数据库技术与应用 3110.4 恢复的实现技术恢复的实现技术恢复机制涉及的关键问题1. 如何建立冗余数据n数据转储(backup)n日志文件(logging)2. 如何利用这些冗余数据实施数据库恢复数据库技术与应用 32日志文件的内容日志文件的内容1. 什么是日志文件日志文件(log)是用来记录事务对
12、数据库的更新操作的文件2. 日志文件的格式以记录为单位的日志文件以数据块为单位的日志文件数据库技术与应用 33日志文件的内容(续)日志文件的内容(续)3. 日志文件内容n各个事务的开始标记(BEGIN TRANSACTION)n各个事务的结束标记(COMMIT或ROLLBACK)n各个事务的所有更新操作n与事务有关的内部更新操作数据库技术与应用 3410.4.1 数据转储数据转储一、什么是转储二、转储的用途三、转储方法数据库技术与应用 35一、什么是转储一、什么是转储n转储是指DBA将整个数据库复制到磁带或另一个磁盘上保存起来的过程。n这些备用的数据文本称为后备副本或后援副本。数据库技术与应用
13、 36转储转储 故障发生点故障发生点 转储转储 运行事务运行事务 正常运行正常运行 Ta Ta Tb Tb Tf Tf 重装后备副本重装后备副本 重新运行事务重新运行事务恢复恢复 数据库技术与应用 37三、转储方法三、转储方法1静态转储与动态转储2海量转储与增量转储3转储方法小结数据库技术与应用 381静态转储静态转储n在系统中无运行事务时进行转储n转储开始时数据库处于一致性状态n转储期间不允许对数据库的任何存取、修改活动n优点:实现简单n缺点:降低了数据库的可用性n转储必须等用户事务结束n新的事务必须等转储结束数据库技术与应用 39利用静态转储副本进行恢复利用静态转储副本进行恢复 故障发生点
14、故障发生点 静态静态转储转储 运行事务运行事务 正常运行正常运行 Ta Ta Tb Tb Tf Tf 重装后备副本重装后备副本 恢复恢复 数据库技术与应用 40动态转储动态转储n转储操作与用户事务并发进行n转储期间允许对数据库进行存取或修改n优点n不用等待正在运行的用户事务结束n不会影响新事务的运行n动态转储的缺点n不能保证副本中的数据正确有效数据库技术与应用 41动态转储动态转储n利用动态转储得到的副本进行故障恢复n需要把动态转储期间各事务对数据库的修改活动登记下来,建立日志文件n后备副本加上日志文件才能把数据库恢复到某一时刻的正确状态数据库技术与应用 42利用动态转储副本进行恢复利用动态转
15、储副本进行恢复 运行事务运行事务 故障发生点故障发生点 动态动态转储转储 运行事务运行事务 正常运行正常运行 Ta Ta Tb Tb Tf Tf重装后备副本重装后备副本 利用日志文件恢复利用日志文件恢复恢复恢复 数据库技术与应用 43利用动态转储副本进行恢复利用动态转储副本进行恢复 Ta Ta Tb Tb Tf Tf 动态动态转储转储 运行事务运行事务 故障发生点故障发生点正常运行正常运行 登记日志文件登记日志文件 登记新日志文件登记新日志文件 转储日志文件转储日志文件 重装后备副本,然后利用转储的日志文件恢复重装后备副本,然后利用转储的日志文件恢复恢复到一恢复到一 致性状态致性状态数据库技术
16、与应用 442海量转储与增量转储海量转储与增量转储n海量转储: 每次转储全部数据库n增量转储: 只转储上次转储后更新过的数据n海量转储与增量转储比较n从恢复角度看,使用海量转储得到的后备副本进行恢复往往更方便n但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效数据库技术与应用 453转储方法小结转储方法小结n转储方法分类转储状态转储状态动态转储动态转储静态转储静态转储转储转储方式方式海量转储海量转储动态海量转储动态海量转储静态海量转储静态海量转储增量转储增量转储动态增量转储动态增量转储静态增量转储静态增量转储数据库技术与应用 46转储策略转储策略n应定期进行数据转储,制作后备副本
17、。n但转储又是十分耗费时间和资源的,不能频繁进行。nDBA应该根据数据库使用情况确定适当的转储周期和转储方法。 例:n每天晚上进行动态增量转储n每周进行一次动态海量转储n每月进行一次静态海量转储数据库技术与应用 4710.4 恢复的实现技术恢复的实现技术10.4.1 数据转储10.4.2 登记日志文件数据库技术与应用 48数据库系统概论数据库系统概论An Introduction to Database System第十一章第十一章 并发控制并发控制数据库技术与应用 49第十一章第十一章 并发控制并发控制11.1 并发控制概述11.2 封锁11.3 封锁协议11.4 活锁和死锁11.5 并发调
18、度的可串行性11.6 两段锁协议11.7 封锁的粒度11.8 Oracle的并发控制11.9 小结数据库技术与应用 50 并发控制概述并发控制概述多事务执行方式 (1)事务串行执行n每个时刻只有一个事务运行,其他事务必须等到这个事务结束以后方能运行n不能充分利用系统资源,发挥数据库共享资源的特点数据库技术与应用 51并发控制(续)并发控制(续)(2)交叉并发方式(interleaved concurrency)n事务的并行执行是这些并行事务的并行操作轮流交叉运行n是单处理机系统中的并发方式,能够减少处理机的空闲时间,提高系统的效率数据库技术与应用 52并发控制(续)并发控制(续)(3)同时并发
19、方式(simultaneous concurrency)n多处理机系统中,每个处理机可以运行一个事务,多个处理机可以同时运行多个事务,实现多个事务真正的并行运行n最理想的并发方式,但受制于硬件环境n更复杂的并发方式机制数据库技术与应用 53事务并发执行带来的问题事务并发执行带来的问题n可能会存取和存储不正确的数据,破坏事务的隔离性和数据库的一致性nDBMS必须提供并发控制机制n并发控制机制是衡量一个DBMS性能的重要标志之一数据库技术与应用 548.1 8.1 并发控制概述并发控制概述n并发控制机制的任务n对并发操作进行正确调度n保证事务的隔离性n保证数据库的一致性数据库技术与应用 55T1的
20、修改被的修改被T2覆盖了!覆盖了!读A=16AA-3写回A=13 读A=16 AA-1 写回A=15事务 T2事务 T1数据不一致实例:飞机订票系统数据不一致实例:飞机订票系统数据库技术与应用 56并发操作带来的数据不一致性并发操作带来的数据不一致性n丢失修改(lost update)n不可重复读(non-repeatable read)n读“脏”数据(dirty read)数据库技术与应用 571. 丢失修改丢失修改丢失修改是指事务1与事务2从数据库中读入同一数据并修改事务2的提交结果破坏了事务1提交的结果,导致事务1的修改被丢失。数据库技术与应用 58图图11.1 三种数据不一致性三种数据
21、不一致性 T1T2 读A=16 AA-1 写回A=15读A=16AA-3写回A=13(a) 丢失修改丢失修改数据库技术与应用 592. 不可重复读不可重复读不可重复读是指事务1读取数据后,事务2执行更新操作,使事务1无法再现前一次读取结果。数据库技术与应用 60图图11.1 三种数据不一致性三种数据不一致性(续续) 读B=100 BB*2写回B=200 读A=50 读B=100 求和=150 读A=50 读B=200 求和=250 (验算不对) T2T1(b) 不可重复读不可重复读数据库技术与应用 61三类三类不可重复读不可重复读事务1读取某一数据后:1。事务2对其做了修改,当事务1再次读该数
22、据时,得到与前一次不同的值。2. 事务2删除了其中部分记录,当事务1再次读取数据时,发现某些记录神密地消失了。3. 事务2插入了一些记录,当事务1再次按相同条件读取数据时,发现多了一些记录。后两种不可重复读有时也称为幻影现象(phantom row)数据库技术与应用 623. 读读“脏脏”数据数据事务1修改某一数据,并将其写回磁盘事务2读取同一数据后事务1由于某种原因被撤消,这时事务1已修改过的数据恢复原值事务2读到的数据就与数据库中的数据不一致,是不正确的数据,又称为“脏”数据。数据库技术与应用 63图图11.1 三种数据不一致性三种数据不一致性(续续)读C=200 读C=100 CC*2
23、写回C ROLLBACK C恢复为100T2T1(c) 读读“脏脏”数据数据数据库技术与应用 64第十一章第十一章 并发控制并发控制11.1 并发控制概述11.2 封锁11.3 封锁协议11.4 活锁和死锁11.5 并发调度的可串行性11.6 两段锁协议11.7 封锁的粒度11.8 Oracle的并发控制11.9 小结数据库技术与应用 6511.2 封锁封锁一、什么是封锁二、基本封锁类型三、基本锁的相容矩阵数据库技术与应用 66一、什么是封锁一、什么是封锁n封锁就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁n加锁后事务T就对该数据对象有了一定的控制,在事务T释
展开阅读全文