事务处理技术ppt课件.ppt
《事务处理技术ppt课件.ppt》由会员分享,可在线阅读,更多相关《事务处理技术ppt课件.ppt(100页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第七章第七章 事务处理技术事务处理技术我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物v 数据库恢复技术数据库恢复技术事务用户定义的一个数据库操作序列,这些操作要么都事务用户定义的一个数据库操作序列,这些操作要么都 做要么都不做,是不可分割的。做要么都不做,是不可分割的。u 事务事务是是DBMSDBMS中的基本执行单位;中的基本执行单位;u 事务是恢复和并发控制的基本单位事务是恢复和并发控制的基本单位我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测
2、没有错:表里边有一个活的生物如何定义事务如何定义事务l显式定义方式显式定义方式 BEGIN TRANSACTION BEGIN TRANSACTION SQL 语句语句1 SQL 语句语句1 SQL 语句语句2 SQL 语句语句2 COMMIT ROLLBACKl隐式方式隐式方式当用户没有显式地定义事务时,当用户没有显式地定义事务时,DBMS按缺省规定自动划分事务按缺省规定自动划分事务我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物lCOMMIT事务正常结束事务正常结束 提交事务的所有操作(读提交事务的所有
3、操作(读+更新)更新)事务中所有对数据库的更新永久生效事务中所有对数据库的更新永久生效lROLLBACK事务异常终止事务异常终止事务运行的过程中发生了故障,不能继续执行事务运行的过程中发生了故障,不能继续执行回滚事务的所有更新操作回滚事务的所有更新操作事务滚回到开始时的状态事务滚回到开始时的状态我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 事务的特性事务的特性ACIDACID特性特性A(A(原子性原子性) )不可分割的逻辑工作单位。不可分割的逻辑工作单位。C(C(一致性一致性) )事务要保证数据库从一个
4、一致性状态到另一个事务要保证数据库从一个一致性状态到另一个 一致性状态。一致性状态。I(I(隔离性隔离性) )事务内部的操作对其他事务是隔离的。事务内部的操作对其他事务是隔离的。D(D(持久性持久性) )事务事务COMMITCOMMIT后,对数据库的改变的持久性。后,对数据库的改变的持久性。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物1. 1. 原子性原子性l事务是数据库的逻辑工作单位事务是数据库的逻辑工作单位事务中包括的诸操作要么都做,要么都不做事务中包括的诸操作要么都做,要么都不做我吓了一跳,蝎子是
5、多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2. 2. 一致性一致性事务执行的结果必须是使数据库从一个一致性状态变到另事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一个一致性状态。一致性状态一致性状态:数据库中只包含成功事务提交的结果数据库中只包含成功事务提交的结果不一致状态不一致状态:数据库中包含失败事务的结果数据库中包含失败事务的结果我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物一致性与原子性一致性与原子性银
6、行转帐:从帐号银行转帐:从帐号A中取出一万元,存入帐号中取出一万元,存入帐号B。定义一个事务,该事务包括两个操作定义一个事务,该事务包括两个操作这两个操作要么全做,要么全不做这两个操作要么全做,要么全不做l全做或者全不做,数据库都处于一致性状态。全做或者全不做,数据库都处于一致性状态。l如果只做一个操作,数据库就处于不一致性状态如果只做一个操作,数据库就处于不一致性状态。B=B+1A=A-1BA我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物3. 3. 隔离性隔离性对并发执行而言对并发执行而言一个事务的执行
7、不能被其他事务干扰一个事务的执行不能被其他事务干扰l一个事务内部的操作及使用的数据对其他并发事务是隔一个事务内部的操作及使用的数据对其他并发事务是隔离的离的l并发执行的各个事务之间不能互相干扰并发执行的各个事务之间不能互相干扰我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物T1的修改被的修改被T2覆盖了!覆盖了!读A=16AA-3写回A=13读A=16AA-1写回A=15T2T1我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活
8、的生物4. 4. 持续性持续性l持续性也称永久性(持续性也称永久性(PermanencePermanence)一个事务一旦提交,它对数据库中数据的改变就应该一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。是永久性的。接下来的其他操作或故障不应该对其执行结果有任何接下来的其他操作或故障不应该对其执行结果有任何影响。影响。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物事务的特性事务的特性 l保证事务保证事务ACIDACID特性是事务处理的任务特性是事务处理的任务l破坏事务破坏事务ACIDACID特性
9、的因素特性的因素多个事务并行运行时,不同事务的操作交叉执行多个事务并行运行时,不同事务的操作交叉执行事务在运行过程中被强行停止事务在运行过程中被强行停止我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物在任何情况下,在任何情况下,DBMSDBMS都应保证事务的都应保证事务的ACIDACID性质。正常运行性质。正常运行 时和发生故障时,都应保证事务的时和发生故障时,都应保证事务的ACIDACID性质。性质。不但在单个应用运行时应保证事务的不但在单个应用运行时应保证事务的ACIDACID性质;而且在多性质;而且在
10、多 个应用并行运行时,也应保证事务的个应用并行运行时,也应保证事务的ACIDACID性质。性质。保证事务在故障发生时满足保证事务在故障发生时满足ACIDACID性质的措施称为恢复技术。性质的措施称为恢复技术。保证多个事务在并行执行时满足保证多个事务在并行执行时满足ACIDACID性质的措施称为并发性质的措施称为并发 控制技术。控制技术。恢复和并发控制是保证事务正确运行的两项基本技术,它恢复和并发控制是保证事务正确运行的两项基本技术,它 们被合称为们被合称为事务管理事务管理。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边
11、有一个活的生物 恢复技术概述恢复技术概述l故障是不可避免的故障是不可避免的计算机硬件故障计算机硬件故障系统软件和应用软件的错误系统软件和应用软件的错误操作员的失误操作员的失误恶意的破坏恶意的破坏l故障的影响故障的影响运行事务非正常中断运行事务非正常中断破坏数据库破坏数据库我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物l数据库管理系统对故障的对策数据库管理系统对故障的对策DBMSDBMS提供恢复子系统提供恢复子系统保证故障发生后,能把数据库中的数据从错误状态保证故障发生后,能把数据库中的数据从错误状态恢复到
12、某种逻辑一致的状态恢复到某种逻辑一致的状态保证事务保证事务ACIDACIDl恢复技术恢复技术是衡量系统优劣的重要指标是衡量系统优劣的重要指标我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 故障的种类故障的种类1 1、事务内部故障、事务内部故障事务内部的故障有的是可以通过事务程序本身发现的事务内部的故障有的是可以通过事务程序本身发现的 (见下面转帐事务的例子),有的是非预期的,不能由(见下面转帐事务的例子),有的是非预期的,不能由 事务程序处理的。事务程序处理的。例如:银行转帐事务,这个事务把一笔金额从一个
13、帐例如:银行转帐事务,这个事务把一笔金额从一个帐 户甲转给另一个帐户乙。户甲转给另一个帐户乙。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物BEGIN TRANSACTIONBEGIN TRANSACTION 读帐户甲的余额读帐户甲的余额BALANCEBALANCE; BALANCE = BALANCE-AMOUNTBALANCE = BALANCE-AMOUNT;AMOUNT AMOUNT 为转帐金额)为转帐金额) IFIF(BALANCEBALANCE0 0 ) THEN THEN 打印打印金额不足,
14、不能转帐金额不足,不能转帐; ROLLBACKROLLBACK;(撤消刚才的修改,恢复事务);(撤消刚才的修改,恢复事务) ELSE ELSE 读帐户乙的余额读帐户乙的余额BALANCE1BALANCE1; BALANCE1 = BALANCE1+AMOUNTBALANCE1 = BALANCE1+AMOUNT; 写回写回BALANCE1BALANCE1; COMMITCOMMIT; 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物上面这个例子所包括的两个更新操作要么全部完成要么上面这个例子所包括的两个更新
15、操作要么全部完成要么 全部不做。否则就会使数据库处于不一致状态,例如只全部不做。否则就会使数据库处于不一致状态,例如只 把帐户甲的余额减少了而没有把帐户乙的余额增加。把帐户甲的余额减少了而没有把帐户乙的余额增加。 在这段程序中若产生帐户甲余额不足的情况,应用程序在这段程序中若产生帐户甲余额不足的情况,应用程序 可以发现并让事务滚回,撤消已作的修改,恢复数据库可以发现并让事务滚回,撤消已作的修改,恢复数据库 到正确状态。到正确状态。 事务内部更多的故障是非预期的,是不能由应用程序处事务内部更多的故障是非预期的,是不能由应用程序处 理的。如运算溢出、并发事务发生死锁而被选中撤消该理的。如运算溢出、
16、并发事务发生死锁而被选中撤消该 事务、违反了某些完整性限制等。以后,事务故障仅指事务、违反了某些完整性限制等。以后,事务故障仅指 这类非预期的故障。这类非预期的故障。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物l事务故障的常见原因事务故障的常见原因输入数据有误输入数据有误运算溢出运算溢出违反了某些完整性限制违反了某些完整性限制某些应用程序出错某些应用程序出错并行事务发生死锁并行事务发生死锁我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:
17、表里边有一个活的生物l发生事务故障时,夭折的事务可能已把对数据库的部发生事务故障时,夭折的事务可能已把对数据库的部分修改写回磁盘分修改写回磁盘l事务故障的恢复:事务故障的恢复:撤消事务(撤消事务(UNDOUNDO)l强行回滚(强行回滚(ROLLBACKROLLBACK)该事务)该事务l清除该事务对数据库的所有修改,使得这个事务象根清除该事务对数据库的所有修改,使得这个事务象根本没有启动过一样本没有启动过一样我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2.2.系统故障系统故障l什么是系统故障什么是系统故障
18、整个系统的正常运行突然被破坏整个系统的正常运行突然被破坏所有正在运行的事务都非正常终止所有正在运行的事务都非正常终止内存中数据库缓冲区的信息全部丢失内存中数据库缓冲区的信息全部丢失外部存储设备上的数据未受影响外部存储设备上的数据未受影响我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物系统故障的常见原因系统故障的常见原因l操作系统或操作系统或DBMSDBMS代码错误代码错误l操作员操作失误操作员操作失误l特定类型的硬件错误(如特定类型的硬件错误(如CPUCPU故障)故障)l突然停电突然停电我吓了一跳,蝎子是多
19、么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物系统故障的恢复系统故障的恢复l清除尚未完成的事务对数据库的所有修改清除尚未完成的事务对数据库的所有修改系统重新启动时,恢复程序要强行撤消(系统重新启动时,恢复程序要强行撤消(UNDOUNDO)所有)所有未完成事务未完成事务l将缓冲区中已完成事务提交的结果写入数据库将缓冲区中已完成事务提交的结果写入数据库系统重新启动时,恢复程序需要重做(系统重新启动时,恢复程序需要重做(REDOREDO)所有已)所有已提交的事务提交的事务我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一
20、个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物发生系统故障时,一些尚未完成的事务的结果可能已送发生系统故障时,一些尚未完成的事务的结果可能已送 入物理数据库,有些已完成的事务可能有一部分甚至全入物理数据库,有些已完成的事务可能有一部分甚至全 部留在缓冲区,尚未写回到磁盘上的物理数据库中,从部留在缓冲区,尚未写回到磁盘上的物理数据库中,从 而造成数据库可能处于不正确的状态。而造成数据库可能处于不正确的状态。为保证数据一致性,恢复子系统必须在系统重新启动时为保证数据一致性,恢复子系统必须在系统重新启动时 让所有非正常终止的事务回滚,强行撤消让所有非正常终止的事务回滚,
21、强行撤消(UNDO)(UNDO)所有未所有未 完成事务。重做完成事务。重做(Redo)(Redo)所有已提交的事务,以将数据库所有已提交的事务,以将数据库 真正恢复到一致状态。真正恢复到一致状态。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物3 3、介质故障、介质故障系统故障常称为软故障(系统故障常称为软故障(Soft CrashSoft Crash),介质故障称),介质故障称 为硬故障(为硬故障(Hard CrashHard Crash)。)。硬故障指外存故障,如磁盘损坏、磁头碰撞,瞬时强硬故障指外存故
22、障,如磁盘损坏、磁头碰撞,瞬时强 磁场干扰等。这类故障将破坏数据库或部分数据库,磁场干扰等。这类故障将破坏数据库或部分数据库, 并影响正在存取这部分数据的所有事务。并影响正在存取这部分数据的所有事务。这类故障比前两类故障发生的可能性小得多,但破坏这类故障比前两类故障发生的可能性小得多,但破坏 性最大。性最大。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物4 4、计算机病毒、计算机病毒计算机病毒是具有破坏性、可以自我复制的计算机程计算机病毒是具有破坏性、可以自我复制的计算机程 序。计算机病毒已成为计算机系统
23、的主要威胁,自然序。计算机病毒已成为计算机系统的主要威胁,自然 也是数据库系统的主要威胁。因此数据库一旦被破坏也是数据库系统的主要威胁。因此数据库一旦被破坏 仍要用恢复技术把数据库加以恢复。仍要用恢复技术把数据库加以恢复。 总结各类故障,对数据库的影响有两种可能性。一是总结各类故障,对数据库的影响有两种可能性。一是 数据库本身被破坏。二是数据库没有破坏,但数据可数据库本身被破坏。二是数据库没有破坏,但数据可 能不正确,这是因为事务的运行被非正常终止造成的。能不正确,这是因为事务的运行被非正常终止造成的。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉
24、快,证实我的猜测没有错:表里边有一个活的生物 恢复的实现技术恢复的实现技术1 1、概述、概述恢复机制涉及的两个关键问题是:恢复机制涉及的两个关键问题是: 第一,如何建立冗余数据;第一,如何建立冗余数据; 第二,如何利用这些冗余数据实施数据库恢复。第二,如何利用这些冗余数据实施数据库恢复。 建立冗余数据最常用的技术是数据备份和登记日志文建立冗余数据最常用的技术是数据备份和登记日志文 件。通常在一个数据库系统中,这两种方法是一起使件。通常在一个数据库系统中,这两种方法是一起使 用的。用的。我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没
25、有错:表里边有一个活的生物恢复技术大致有下列三种:恢复技术大致有下列三种:1. 1. 单纯以后备复本为基础的恢复技术;单纯以后备复本为基础的恢复技术; 1 1)周期性的数据库转储;)周期性的数据库转储; 2 2)增量转储。)增量转储。 优点:实现简单,不增加数据库正常运行时的开销。优点:实现简单,不增加数据库正常运行时的开销。 缺点:不能恢复到数据库的最近一致状态。(只能用缺点:不能恢复到数据库的最近一致状态。(只能用 在小型和不重要的数据库系统)在小型和不重要的数据库系统)我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 事务处理 技术 ppt 课件
限制150内