掌握事务的基本概念及特性.ppt





《掌握事务的基本概念及特性.ppt》由会员分享,可在线阅读,更多相关《掌握事务的基本概念及特性.ppt(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、授课顺序:授课顺序:20授课学时:授课学时:3学时学时教学方式:讲授教学方式:讲授基本要求:基本要求:(1)掌握事务的基本概念及特性掌握事务的基本概念及特性(2)了解故障的种类及恢复实现技术了解故障的种类及恢复实现技术第第10章章数据库的恢复技术数据库的恢复技术10.1事务的基本概念事务的基本概念10.2数据库恢复概述数据库恢复概述10.3故障的种类故障的种类10.4恢复的实现技术恢复的实现技术10.5恢复策略恢复策略10.6具有检查点的恢复技术具有检查点的恢复技术10.7数据库镜像数据库镜像10.8小结小结 数据库的定义:数据库的定义:数据库被破坏的原因,可归纳为:数据库被破坏的原因,可归纳
2、为:软硬件故障,造成数据被破坏。软硬件故障,造成数据被破坏。数据库的并发操作引起数据的不一致性。数据库的并发操作引起数据的不一致性。自自然然或或人人为为地地破破坏坏,如如失失火火、失失窃窃、病病毒毒和和为授权人的有意纂改数据。为授权人的有意纂改数据。对对数数据据库库数数据据的的更更新新操操作作有有误误,如如操操作作时时输输入错误的数据或存取数据库的程序有错等等。入错误的数据或存取数据库的程序有错等等。针对这四类问题,一般针对这四类问题,一般DBMS提供了相应的功能:提供了相应的功能:安安全全性性保保护护:保保护护数数据据库库防防止止恶恶意意的的破破坏坏和和非非法法的存取,防范对象:非法用户和非
3、法操作。的存取,防范对象:非法用户和非法操作。完完整整性性保保护护:防防止止数数据据库库中中存存在在不不符符合合语语义义的的数数据,也就是防止数据库中存在不正确的数据。据,也就是防止数据库中存在不正确的数据。防范对象:不合语义的、不正确的数据防范对象:不合语义的、不正确的数据(实体,参照)实体,参照)数数据据库库恢恢复复:即即系系统统失失效效后后的的数数据据库库恢恢复复,配配合合定定时备份数据库,使数据库不丢失数据。时备份数据库,使数据库不丢失数据。并并发发控控制制:即即保保证证多多用用户户能能共共享享数数据据库库,并并维维护护数数据的一致性。据的一致性。10.1 10.1 事务的基本概念事务
4、的基本概念10.1.1 10.1.1 事务的定义事务的定义1.1.什么是事务什么是事务n事事务务是是由由用用户户定定义义的的一一组组操操作作序序列列,这这些些操操作作要要么么都都做做,要要么么都都不不做做,是是一一个个不不可可分分割割的的工工作作单单位位,是是恢恢复复和和并并发发控制的基本单位控制的基本单位.n是是一一种种机机制制,它它确确保保多多个个SQLSQL语语句句被被当当作作单单个个工工作作单单元元来来处理处理2 2.事务和程序是两个概念事务和程序是两个概念n在在关关系系数数据据库库中中,一一个个事事务务可可以以是是一一条条SQLSQL语语句句,一一组组SQLSQL语句或整个程序语句或
5、整个程序n一个应用程序通常包含多个事务一个应用程序通常包含多个事务3 3.定义事务定义事务n隐式方式隐式方式当用户没有显式地定义事务时,当用户没有显式地定义事务时,DBMS按缺省规定自动划分事务按缺省规定自动划分事务n显式定义方式显式定义方式n事事务务的的开开始始与与结结束束由由用用户户显显式式控控制制。定定义义事事务务的的语语句句有三条:有三条:n BEGIN TRANSACTION BEGIN TRANSACTION SQL SQL 语句语句 .COMMIT COMMIT ROLLBACK ROLLBACKnBEGIN TRANSACTIONBEGIN TRANSACTION表示事务的开始
6、;表示事务的开始;nCOMMITCOMMIT表示事务的提交表示事务的提交 (事务正常结束事务正常结束 提交提交事务的所有操作事务的所有操作(读读+更新更新),事务中所有事务中所有对数据库的更新写回到磁盘上的物理数据库中去,对数据库的更新写回到磁盘上的物理数据库中去,事务中所有对数据库的更新事务中所有对数据库的更新永久永久生效)生效)ROLLBACKROLLBACK表示事务的回滚,即在事务运行的过程中发生表示事务的回滚,即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的库的所有已完成的更新操作更新操作全部撤销,
7、再回滚到事务开全部撤销,再回滚到事务开始时的状态始时的状态。n事务异常终止事务异常终止n事务运行的过程中发生了故障,不能继续执行事务运行的过程中发生了故障,不能继续执行n回滚事务的所有回滚事务的所有更新更新操作,所有已完成的操作,所有已完成的更新操作更新操作全部撤销全部撤销n事务滚回到事务滚回到开始开始时的状态时的状态10.1.2 10.1.2 事务的特征事务的特征n事事务务是是由由有有限限的的数数据据库库操操作作序序列列组组成成,但但并并不不是是任任意意的的数数据据库库操操作作序序列列都都能能成成为为事事务务,为为了了保保护护数数据据的的完完整整性性,一一般般要要求求事事务务具具有有以以下下
8、四四个个特特征征:原原子子性性 一一致致性性 隔隔离离性性 持持久久性性 ACIDACID准则准则1 1原子性(原子性(AtomicAtomic)n一一个个事事务务是是一一个个不不可可分分割割的的工工作作单单位位,事事务务在在执执行行时时,应应该该遵遵守守“要要么么不不做做,要要么么全全做做”(nothing nothing or or allall)的的原原则则,即不允许事务部分的完成。即不允许事务部分的完成。n如如果果事事务务因因故故障障没没有有完完成成,则则该该事事务务已已做做的的操操作作认认为为是是无无效效的,在恢复时必须取消该事务对数据库的影响的,在恢复时必须取消该事务对数据库的影响
9、n保保证证原原子子性性的的思思路路:对对于于要要执执行行写写操操作作的的数数据据项项,在在磁磁盘盘上上记记录录其其旧旧值值,若若事事务务没没能能完完成成执执行行,旧旧值值将将被被恢恢复复,好好像像事事务从未执行务从未执行n保证原子性是保证原子性是DBMSDBMS本身的责任,由本身的责任,由“事务管理部件事务管理部件”处理。处理。2 2一致性(一致性(ConsistencyConsistency)n事事务务对对数数据据库库的的作作用用是是数数据据库库从从一一个个一一致致状状态态转转变变到到另一个一致状态。另一个一致状态。n所所谓谓数数据据库库的的一一致致状状态态是是指指数数据据库库中中的的数数据
10、据满满足足完完整整性约束。性约束。n例例如如,银银行行企企业业中中,“从从帐帐号号A A转转移移资资金金额额R R到到帐帐号号B”B”是是一一个个典典型型的的事事务务,这这个个事事务务包包括括两两个个操操作作,从从帐帐号号A A中中减减去去资资金金额额R R和和在在帐帐号号B B中中增增加加资资金额金额R R。n定义一个事务,该事务包括两个操作定义一个事务,该事务包括两个操作n这两个操作要么全做,要么全不做这两个操作要么全做,要么全不做n全做或者全不做,数据库都处于一致性状态。全做或者全不做,数据库都处于一致性状态。n如果只做一个操作,数据库就处于不一致性状态如果只做一个操作,数据库就处于不一
11、致性状态。可见事务的一致性与原子性是密切相关的。可见事务的一致性与原子性是密切相关的。n确确保保单单个个事事务务的的一一致致性性是是对对该该事事务务编编码码的的应应用用,程程序序员的责任。员的责任。3 3隔离性(隔离性(IsolationIsolation)n一个事务的执行不能被其它事务干扰。一个事务的执行不能被其它事务干扰。n如如果果多多个个事事务务并并发发地地执执行行,应应像像各各个个事事务务独独立立执执行行一一样样。事事务务并并发发执执行行的的结结果果和和某某一一串串行行执执行行的的结果相同结果相同。n事事务务并并发发执执行行的的相相对对独独立立性性,这这是是事事务务并并发发控控制制的目
12、标。的目标。n并发控制就是为了保证事务间的隔离性并发控制就是为了保证事务间的隔离性n隔隔离离性性保保证证:多多个个事事务务并并发发执执行行的的结结果果和和某某一一串串行执行的结果相同行执行的结果相同T1的修改被的修改被T2覆盖了覆盖了!读读A=16AA-3写回写回A=13读读A=16AA-1写回写回A=15T2T14 4持久性(持久性(DurabilityDurability)n指指一一个个事事务务一一旦旦提提交交,它它对对数数据据库库中中数数据据的的改改变变就就应应该该是是持持久久的的,即即使使数数据据库库因因故故障障而而受受到到破破坏坏,DBMSDBMS也也应应该该能能够够恢恢复。复。n事
13、事务务上上述述四四个个性性质质的的英英文文术术语语的的第第一一个个字字母母为为ACIDACID。因因此此,这这四四个性质以称为事务的个性质以称为事务的ACIDACID准则。准则。n下面是一个事务的例子,从帐号下面是一个事务的例子,从帐号A A转移资金额转移资金额R R到帐号到帐号B B:BEGIN TRANSACTIONBEGIN TRANSACTIONREADAAA-RIFA0/*A款不足款不足*/THENBEGINDISPLAY“A款不足款不足”ROLLBACKENDELSE/*拨款拨款*/BEGINBB+RDISPLAY“拨款完成拨款完成”COMMITENDn这是对一个简单事务的完整的描
14、述。这是对一个简单事务的完整的描述。n该事务有两个出口:该事务有两个出口:n当当A帐号的款项不足时,事务以帐号的款项不足时,事务以ROLLBACK(撤销)命令结束,即撤销该事务的影响;(撤销)命令结束,即撤销该事务的影响;n另一个出口是以另一个出口是以COMMIT(提交)命令结束,(提交)命令结束,完成从帐号完成从帐号A到帐号到帐号B的拨款。的拨款。n在在COMMIT之前,即在数据库修改过程中,数据可之前,即在数据库修改过程中,数据可能是不一致的,事务本身也可能被撤销。能是不一致的,事务本身也可能被撤销。n只有在只有在COMMIT之后,事务对数据库所产生的变化之后,事务对数据库所产生的变化才对
15、其他事务开放,这就可以避免其他事务访问不一才对其他事务开放,这就可以避免其他事务访问不一致或不存在的数据致或不存在的数据。n事务的事务的ACID特性可能遭到破坏的因素有:特性可能遭到破坏的因素有:1、多个事务并发运行,不同事务的操作交叉执行多个事务并发运行,不同事务的操作交叉执行;(DBMS必须保证在此种情况下多个事务的交叉运行必须保证在此种情况下多个事务的交叉运行不影响这些事务的原子性,这是不影响这些事务的原子性,这是DBMS中的并发中的并发控制机制的责任。控制机制的责任。)2、事务在运行过程中被强行停止。事务在运行过程中被强行停止。(DBMS必须保证必须保证被强行终止的事务对数据库和其它事
16、务没有任何被强行终止的事务对数据库和其它事务没有任何影响,这是影响,这是DBMS中的恢复机制的责任中的恢复机制的责任。)10.2 10.2 数据库的恢复数据库的恢复10.2.1 10.2.1 数据库恢复的含义数据库恢复的含义n虽虽然然数数据据库库系系统统中中已已采采取取一一定定的的措措施施,来来防防止止数数据据库库的的安安全全性性和和完完整整性性的的破破坏坏,保保证证并并发发事事务务的的正正确确执执行行,但但数数据据库库中中的的数数据据仍仍然然无无法法保保证证绝绝对对不不遭遭受受破破坏坏,比比如如计计算算机机系系统统中中硬硬件件的的故故障障、软软件件的的的的错错误误,操操作作员员的的失失误误,
17、恶恶意意的的破破坏坏等等都都有有可可能能发发生生,这这些些故故障障的的发发生生影影响响数数据据库库数数据据的的正正确确性性,甚甚至至可可能能破破坏坏数数据据库库,使使数数据据库库中中的的数据全部或部分丢失。数据全部或部分丢失。n数数据据库库的的恢恢复复:把把数数据据库库从从错错误误状状态态恢恢复复到到某某一一已已知知的的正确状态正确状态(亦称为一致状态或完整状态亦称为一致状态或完整状态)10.3 10.3 故障的种类故障的种类事务内部事务内部,系统故障系统故障,介质故障介质故障,计算机病毒计算机病毒1、事务内部的故障、事务内部的故障n有的是预期的(可以通过事务程序本身发现的有的是预期的(可以通
18、过事务程序本身发现的)n有的是非预期的有的是非预期的BEGIN TRANSACTIONBEGIN TRANSACTIONREADAAA-RIFA0/*A款不足款不足*/THENBEGINDISPLAY“A款不足款不足”ROLLBACKENDELSE/*拨款拨款*/BEGINBB+RDISPLAY“拨款完成拨款完成”COMMITEND预期到的故障,发现余预期到的故障,发现余额不足,则让事务滚回,额不足,则让事务滚回,撤消已做的更改,恢复撤消已做的更改,恢复数据库到正确的状态。数据库到正确的状态。n事务内部更多的故障是非预期的,是不能由事务内部更多的故障是非预期的,是不能由应用程序处理的。如运算溢
19、出、并发事务死应用程序处理的。如运算溢出、并发事务死锁等。以后,我们指的事务故障仅指这一类锁等。以后,我们指的事务故障仅指这一类非预期的故障。非预期的故障。n事务故障意味着事务没有达到预期的终点事务故障意味着事务没有达到预期的终点(COMMIT或者显式的或者显式的ROLLBACK),因此,因此,数据库可能处于不正确的状态。恢复程序要数据库可能处于不正确的状态。恢复程序要在不影响其它事务运行的前提下,强行回滚在不影响其它事务运行的前提下,强行回滚(ROLLBACK)该事务,该事务,撤消该事务已经作出的撤消该事务已经作出的任何对数据库的修改,使得该事务好象根本任何对数据库的修改,使得该事务好象根本
20、没有启动一样没有启动一样。这类恢复操作称为。这类恢复操作称为事务撤消事务撤消(UNDO)。2、系统故障、系统故障n系系统统故故障障是是指指系系统统在在运运行行过过程程中中,由由于于某某种种原原因因,造造成成系系统统停停止止运运转转,致致使使所所有有正正在在运运行行的的事事务务都都以非正常方式终止,要求系统重新启动。以非正常方式终止,要求系统重新启动。n引引起起系系统统故故障障的的原原因因可可能能有有:硬硬件件错错误误如如CPUCPU故故障、操作系统或障、操作系统或DBMSDBMS代码错误、突然断电等。代码错误、突然断电等。n这这时时,内内存存中中数数据据库库缓缓冲冲区区的的内内容容全全部部丢丢
21、失失,存存储储在在外外部部存存储储设设备备上上的的数数据据库库并并未未破破坏坏,但但内内容容不可靠了不可靠了。n发生系统故障时,事务未提交发生系统故障时,事务未提交n恢复策略:强行撤消(恢复策略:强行撤消(UNDO)所有未完成事务所有未完成事务n发生系统故障时,事务已提交,但缓冲区中的信息发生系统故障时,事务已提交,但缓冲区中的信息尚未完全写回到磁盘上尚未完全写回到磁盘上。n恢复策略:重做(恢复策略:重做(REDO)所有已提交的事务所有已提交的事务n重做(重做(REDO):有些己提交的事务对数据库的有些己提交的事务对数据库的更新结果还保留在缓冲区中,尚未写到磁盘上的更新结果还保留在缓冲区中,尚
22、未写到磁盘上的物理数据库中,这也使数据库处于不一致状态,物理数据库中,这也使数据库处于不一致状态,因此应将这些事务己提交的结果重新写入数据库因此应将这些事务己提交的结果重新写入数据库3 3、介质故障、介质故障n介介质质故故障障是是指指系系统统在在运运行行过过程程中中,由由于于存存储储器器介介质质受受到到破破坏坏,使存储在外存中的数据部分丢失或全部丢失。使存储在外存中的数据部分丢失或全部丢失。n这这类类故故障障比比事事务务故故障障和和系系统统故故障障发发生生的的可可能能性性要要小小,但但这这是是最严重的一种故障,破坏性很大最严重的一种故障,破坏性很大。4、计算机病毒、计算机病毒n一一种种人人为为
23、的的故故障障或或破破坏坏,是是一一些些恶恶作作剧剧者者研研制制的的一一种种计计算算机机程序程序n可以繁殖和传播可以繁殖和传播n危害危害n破坏、盗窃系统中的数据破坏、盗窃系统中的数据n破坏系统文件破坏系统文件故障小结n各类故障,对数据库的影响有两种可能性各类故障,对数据库的影响有两种可能性n一是数据库本身被破坏一是数据库本身被破坏n二是数据库没有被破坏,但数据可能不正确,这二是数据库没有被破坏,但数据可能不正确,这是由于事务的运行被非正常终止造成的是由于事务的运行被非正常终止造成的。10.4 10.4 恢复的原理及其实现技术恢复的原理及其实现技术n数据库恢复的数据库恢复的基本原理十分简单,就是数
24、据的冗余基本原理十分简单,就是数据的冗余。n数数据据库库中中任任何何一一部部分分被被破破坏坏的的或或不不正正确确的的数数据据都都可可以以利用存储在系统其它地方的冗余数据来修复。利用存储在系统其它地方的冗余数据来修复。n因此恢复系统应该提供两种类型的功能:因此恢复系统应该提供两种类型的功能:n一一种种是是生生成成冗冗余余数数据据,即即对对可可能能发发生生的的故故障障作作某某些些准备;准备;n另另一一种种是是冗冗余余重重建建,即即利利用用这这些些冗冗余余数数据据恢恢复复数数据据库。库。n生成冗余数据最常用的技术是生成冗余数据最常用的技术是登记日志文件登记日志文件和和数据转数据转储储,在实际应用中,
25、这两种方法常常结合起来一起使在实际应用中,这两种方法常常结合起来一起使用。用。10.4.1 10.4.1 登记日志文件(登记日志文件(LoggingLogging)n日日志志文文件件是是用用来来记记录录事事务务对对数数据据库库的的更更新新操操作作的的文文件件。对对数数据据库库的的每每次次修修改改,都都将将被被修修改改项项目目的的旧旧值值和和新新值值写写在在一一个个叫叫做做运运行行日日志志的的文文件件中中,目目的的是是为为数数据据库库的的恢复保留详细的数据。恢复保留详细的数据。n典型的日志文件主要包含以下内容:典型的日志文件主要包含以下内容:1 1更新数据库的事务标识(标明是哪个事务);更新数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 掌握 事务 基本概念 特性

限制150内