(精品)第八章_数据库管理.ppt
《(精品)第八章_数据库管理.ppt》由会员分享,可在线阅读,更多相关《(精品)第八章_数据库管理.ppt(133页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库实用教程(第三版)数据库实用教程(第三版)第八章第八章 数据库管理数据库管理第八章第八章数据库管理数据库管理 教学内容:教学内容:事务的定义,事务的事务的定义,事务的ACID性质,事务的状态变迁图。性质,事务的状态变迁图。恢复的定义、基本原则和实现方法恢复的定义、基本原则和实现方法,故障的类型故障的类型,检查点技术检查点技术。并发操作带来的三个问题,并发操作带来的三个问题,X锁、锁、PX协议协议,活锁、死锁,活锁、死锁,并发调度、串行调度、并发调度的可串行化,两段封锁法。并发调度、串行调度、并发调度的可串行化,两段封锁法。完整性的定义,完整性子系统的功能,完整性规则的组成;完整性的定义,
2、完整性子系统的功能,完整性规则的组成;SQL中的三大类完整性约束,中的三大类完整性约束,SQL3中的触发器技术。中的触发器技术。安全性的定义、级别,权限,安全性的定义、级别,权限,SQL中的安全性机制。中的安全性机制。检查点技术检查点技术 并发操作、封锁带来的若干问题,并发调度的可串行化。并发操作、封锁带来的若干问题,并发调度的可串行化。SQL中完整性约束的实现:断言、触发器技术中完整性约束的实现:断言、触发器技术。安全性中的授权语句安全性中的授权语句。教学重点:教学重点:1 1 事务的概念事务的概念 一、事务的定义一、事务的定义 形成一个逻辑工作单元的数据库操作的汇集形成一个逻辑工作单元的数
3、据库操作的汇集,称为事务称为事务(transaction)(transaction)。例:在关系数据库中,一个事务可以是一条例:在关系数据库中,一个事务可以是一条SQLSQL语句、语句、一组一组SQLSQL语句语句 或整个程序。或整个程序。事务和程序是两个概念。一般地说:一个程序中包含多个事务。事务和程序是两个概念。一般地说:一个程序中包含多个事务。事务的开始和结束可以由用户显式控制。事务的开始和结束可以由用户显式控制。如果用户没有显式地定义事务如果用户没有显式地定义事务,则由则由DBMSDBMS按照缺省自动划分事务。按照缺省自动划分事务。在在SQLSQL语言中,定义事务的语句由三条:语言中,
4、定义事务的语句由三条:事务开始事务开始:事务提交事务提交:事务回滚事务回滚:BEGIN TRANSACTIONBEGIN TRANSACTIONCOMMITCOMMITROLLBACKROLLBACK二、事务的二、事务的ACIDACID性质性质 为为了保了保证证数据完整性(数据是正确的),要求事数据完整性(数据是正确的),要求事务务 具有下列四个性具有下列四个性质质:原子性原子性(A Atomicitytomicity)一致性一致性(C Consistencyonsistency)隔离性隔离性(I Isolationsolation)持久性持久性(D Durabilityurability)。
5、)。上述四个性质称为上述四个性质称为事务的事务的ACIDACID性质。性质。三、事务的状态变迁三、事务的状态变迁BEGINTRANSATIONABORTABORT活动活动失败失败局部提交局部提交提交提交异常终止异常终止ENDTRANSATIONCOMMITROLLBACK2数据库的恢复数据库的恢复 DBMSDBMS的恢复管理子系统的恢复管理子系统:采取一系列措施保证在任何情况下保持事务的原子性和采取一系列措施保证在任何情况下保持事务的原子性和 持久性,确保数据不丢失、不破坏;持久性,确保数据不丢失、不破坏;当发生系统故障时,数当发生系统故障时,数 据库可恢复到正确状态。据库可恢复到正确状态。一
6、、故障分类一、故障分类 事务故障事务故障 系统故障系统故障 介质故障介质故障 二、二、数据数据库库恢复恢复技术技术 恢复机制涉及的两个关键问题:恢复机制涉及的两个关键问题:如何建立冗余数据;如何利用这些冗余数据实施数据库的恢复。如何建立冗余数据;如何利用这些冗余数据实施数据库的恢复。建立冗余数据最常用的技术是数据库转储和登录日志文件。建立冗余数据最常用的技术是数据库转储和登录日志文件。1 1、数据转储、数据转储 转储是指转储是指DBADBA将整个数据库复制到永久存储器的过程。将整个数据库复制到永久存储器的过程。这些备用的数据文本称为后备副本或后援副本。这些备用的数据文本称为后备副本或后援副本。
7、一旦系统发生介质故障,数据库遭到破坏,可以将副本一旦系统发生介质故障,数据库遭到破坏,可以将副本 重新装入,把数据库重新装入,把数据库恢复恢复起来。起来。转储转储 运行事务运行事务 故障发生点故障发生点tatbtf正常运行正常运行重装后备副本重装后备副本 重新运行事务重新运行事务 恢复恢复2.2.登记日志文件(登记日志文件(LoggingLogging)日志文件是记录事务对数据库的更新操作的文件。日志文件是记录事务对数据库的更新操作的文件。日志文件的存储结构日志文件的存储结构-日志记录的表示:日志记录的表示:事务开始记录:事务开始记录:TiSTART 更新数据记录:更新数据记录:TiV2 事务
8、终止记录:事务终止记录:Ti 更新数据日志记录更新数据日志记录 与每一个数据库写操作与每一个数据库写操作 WRITEWRITE(Q Q)相对应其中:相对应其中:TiTi :事务名;事务名;X:X:操作类型;操作类型;A:A:数据项;数据项;V1:V1:原始值原始值;V2:V2:新值新值 日志文件在数据库恢复过程中起着重要的作用。日志文件在数据库恢复过程中起着重要的作用。为保证数据库的可恢复性,为保证数据库的可恢复性,登记日志文件必须遵循两条原则:登记日志文件必须遵循两条原则:登记的次序必须严格按并行事务执行的时间次序。登记的次序必须严格按并行事务执行的时间次序。必须先写日志文件,再写数据库。必
9、须先写日志文件,再写数据库。转储转储 运行事务运行事务 故障发生点故障发生点tatbtf正常运行正常运行 重装后备副本重装后备副本 利用日志文件恢复事务利用日志文件恢复事务 继续运行继续运行 介质故障恢复介质故障恢复登记日志文件登记日志文件 三、恢复策略三、恢复策略当系统运行过程中发生故障,利用数据库后备副本和日志文件当系统运行过程中发生故障,利用数据库后备副本和日志文件将数据库恢复到故障前的某个一致性状态。不同故障其恢复技术不将数据库恢复到故障前的某个一致性状态。不同故障其恢复技术不一样:一样:1 1事务故障的恢复事务故障的恢复 事事务务故故障障是是指指事事务务在在运运行行至至正正常常终终止
10、止点点前前被被中中止止,此此时时恢恢复复子子系统应撤销(系统应撤销(UNDOUNDO)此事务已对数据库进行的修改。此事务已对数据库进行的修改。事务故障恢复的具体做法如下事务故障恢复的具体做法如下:反向扫描日志文件(即从最后向前扫描日志文件),反向扫描日志文件(即从最后向前扫描日志文件),查找该事务的更新操作。查找该事务的更新操作。对该事务的更新操作执行逆操作。对该事务的更新操作执行逆操作。即将日志记录中即将日志记录中“更新前的值更新前的值”写入数据库:写入数据库:若记录中是插入操作,则相当于做删除操作若记录中是插入操作,则相当于做删除操作;若记录中是删除操作若记录中是删除操作,则做插入操作;则
11、做插入操作;若是修改操作,则用修改前值代替修改后值。若是修改操作,则用修改前值代替修改后值。返回继续反向扫描日志文件,继续反向扫描日志文件,查找该事务的其他更新操查找该事务的其他更新操作,并做同样处理。作,并做同样处理。如此处理下去,直至读到此事务的开始标记,事务如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。故障恢复就完成了。事务故障的恢复是由系统自动完成的事务故障的恢复是由系统自动完成的,不需要用户干预。不需要用户干预。2 2系统故障的恢复系统故障的恢复系统故障造成数据库不一致状态的原因有两个:系统故障造成数据库不一致状态的原因有两个:未完成事务对数据库的更新已写数据库;未完
12、成事务对数据库的更新已写数据库;已提交事务对数据库的更新还留在缓冲区没来得及真正已提交事务对数据库的更新还留在缓冲区没来得及真正写入数据库写入数据库.恢复操作:恢复操作:撤销故障发生时未完成的事务,撤销故障发生时未完成的事务,重做已完成的事务。重做已完成的事务。具体做法如下具体做法如下:正向扫描日志文件正向扫描日志文件(即从头开始扫描日志文件即从头开始扫描日志文件):找出在故障发生前找出在故障发生前:已提交事务已提交事务(既有既有记录,也有记录,也有Ti 记记录录),将其事务标识将其事务标识记入重做队列记入重做队列。尚尚未未完完成成的的事事务务(有有记记录录,无无Ti 记记录录),将其事务标识
13、将其事务标识记入撤销队列记入撤销队列。对撤销队列中的各个事务进行撤销(对撤销队列中的各个事务进行撤销(UNDOUNDO)处理处理进行撤销(进行撤销(UNDOUNDO)处理的方法是处理的方法是:反向扫描日志文件,反向扫描日志文件,对每个对每个UNDOUNDO事务的更新操作执行事务的更新操作执行逆操作逆操作.即将日志记录中即将日志记录中“更新前的值更新前的值”写入数据库。写入数据库。对重做队列中的各个事务进行重做(对重做队列中的各个事务进行重做(REDOREDO)处理处理进行重做进行重做REDOREDO处理的方法是:处理的方法是:正向扫描日志文件,正向扫描日志文件,对每个对每个REDOREDO事务
14、重新执行登记操作。事务重新执行登记操作。即将日志记录中即将日志记录中“更新后的值更新后的值”写入数据库。写入数据库。系统故障的恢复也由系统自动完成的系统故障的恢复也由系统自动完成的,不需要用户干预。不需要用户干预。3 3介质故障的恢复介质故障的恢复在在发发生生介介质质故故障障和和遭遭受受病病毒毒破破坏坏时时,磁磁盘盘上上的的物物理理数数据据库库遭遭到到毁灭性破坏。此时恢复的过程如下:毁灭性破坏。此时恢复的过程如下:装入最新的后备副本到新的磁盘,使数据库恢复到最近一次转装入最新的后备副本到新的磁盘,使数据库恢复到最近一次转储时的一致状态。储时的一致状态。装入有关的日志文件副本,重做已提交的所有事
15、务。装入有关的日志文件副本,重做已提交的所有事务。这样就可以将数据库恢复到故障前某一时刻的一致状态。这样就可以将数据库恢复到故障前某一时刻的一致状态。四、检测点机制四、检测点机制 为为提提高系统效率,高系统效率,DBMSDBMS定定时设时设置置检查检查点。点。在在检检查查点点时时刻刻才才真真正正做做到到把把对对DBDB的的修修改改写写到到 磁磁盘盘,并并在在日日志志文文件件写写入入一一条条检检查查点点记记录录(以以便便恢复恢复时时使用使用)。1.1.检查检查点点方法方法 DBMSDBMS定定时设时设置置检查检查点点,在,在检查检查点点时,做下列事情:时,做下列事情:第一步:第一步:第二步:第二
16、步:第三步:第三步:第四步:第四步:将日志缓冲区中的日志记录写入磁盘。将日志缓冲区中的日志记录写入磁盘。将数据库缓冲区中修改过的缓冲块内容写入磁盘。将数据库缓冲区中修改过的缓冲块内容写入磁盘。写一个检查点记录到磁盘,内容包括:写一个检查点记录到磁盘,内容包括:检查点时刻,所有活动事务;检查点时刻,所有活动事务;每个事务最近日志记录地址。每个事务最近日志记录地址。把磁盘中日志检测点记录的地址写入把磁盘中日志检测点记录的地址写入“重新启动文件中重新启动文件中”。2.2.检查检查点点恢复步骤恢复步骤 正向扫描日志文件,正向扫描日志文件,建立事务重做队列和事务撤消队列。建立事务重做队列和事务撤消队列。
17、重做队列:重做队列:将已完成的事务加入重做队列;将已完成的事务加入重做队列;撤销队列:撤销队列:未完成的事务加入撤销队列。未完成的事务加入撤销队列。对撤销队列做对撤销队列做UNDOUNDO处理的方法是:处理的方法是:反向扫描日志文件,根据撤销队列的记录对每一个撤销反向扫描日志文件,根据撤销队列的记录对每一个撤销 事务的更新操作执行逆操作,使其恢复到原状态。事务的更新操作执行逆操作,使其恢复到原状态。对重做队列做对重做队列做REDOREDO处理的方法是:处理的方法是:正向扫描日志文件,根据重做队列的记录对每一个重做事正向扫描日志文件,根据重做队列的记录对每一个重做事 务实施对数据库的更新操作。务
18、实施对数据库的更新操作。五、运行记录(日志记录)优先原则五、运行记录(日志记录)优先原则为了安全,为了安全,定义定义“运行记录优先原则运行记录优先原则”包含以下两点:包含以下两点:至少要等相应运行记录(日志记录)已经写入运行日志文件至少要等相应运行记录(日志记录)已经写入运行日志文件 后,才能允许事务往数据库中写记录;后,才能允许事务往数据库中写记录;直至事务的所有运行记录(日志记录)都已经写入到运行日直至事务的所有运行记录(日志记录)都已经写入到运行日 志文件后,才能允许事务完成志文件后,才能允许事务完成COMMITCOMMIT处理。处理。这样,如果出现故障,则可能在运行日志中而不是在数据库
19、中记这样,如果出现故障,则可能在运行日志中而不是在数据库中记录了一个修改。在重启动时,就有可能请求录了一个修改。在重启动时,就有可能请求UNDOUNDOREDOREDO处理原先根处理原先根本没有对数据库做过的修改。本没有对数据库做过的修改。3 3 数据库的并发控制数据库的并发控制 原子性(原子性(AtomicityAtomicity)一一个个事事务务对对数数据据库库的的所所有有操操作作,是是一一个个不不可可分分割割的的工工作作单单元元。这这些些操操作作要要么么全全部部执执行行,要要么么什什么么也不做(就效果而言)。也不做(就效果而言)。保证原子性是数据库系统本身的职责,保证原子性是数据库系统本
20、身的职责,由由DBMSDBMS的事务管理子系统来实现。的事务管理子系统来实现。返回 一致性(一致性(ConsistencyConsistency)一个事务独立执行的结果,应保持数据库的一致性,一个事务独立执行的结果,应保持数据库的一致性,即数据不会应事务的执行而遭受破坏。即数据不会应事务的执行而遭受破坏。编写事务的应用程序员的职责编写事务的应用程序员的职责:确保单个事务的一致性。确保单个事务的一致性。在系统运行时,由在系统运行时,由DBMSDBMS的完整性子系统执行测试任务。的完整性子系统执行测试任务。返回 隔离性(隔离性(IsolationIsolation)在在多多个个事事务务并并发发执执
21、行行时时,系系统统应应保保证证与与这这些些事事务务先先后后单单独执行时的结果一样独执行时的结果一样,此时称事务达到了隔离性的要求。此时称事务达到了隔离性的要求。即:多个事务并发执行时,保证执行结果是正确的,即:多个事务并发执行时,保证执行结果是正确的,如同单用户环境一样。如同单用户环境一样。隔离性是由隔离性是由DBMSDBMS的并发控制子系统实现的。的并发控制子系统实现的。返回持久性(持久性(DurabilityDurability)一一个个事事务务一一旦旦完完成成全全部部操操作作后后,它它对对数数据据库库的的所所有有更更新新应应永永久久地地反反映映在在数数据据库库中中。即即使使以以后后系系统
22、统发发生生故故障障,也应保留这个事务执行的痕迹。也应保留这个事务执行的痕迹。持久性由持久性由DBMSDBMS的恢复管理子系统实现的。的恢复管理子系统实现的。返回3 3 数据库的并发控制数据库的并发控制教学内容:教学内容:并发操作带来的三个问题,并发操作带来的三个问题,X锁、锁、PX协议协议,活锁、活锁、死锁,并发调度、串行调度、并发调度的可串行化,死锁,并发调度、串行调度、并发调度的可串行化,两段封锁法。两段封锁法。教学重点:教学重点:并发操作、封锁带来的若干问题,并发操作、封锁带来的若干问题,并发调度的可串行化。并发调度的可串行化。为为充充分分利利用用数数据据库库资资源源,发发挥挥数数据据库
23、库共共享享资资源源的的特特点点,应应该该允允许许多多个个用用户户并并行行地地存取数据库。存取数据库。并并发发控控制制机机制制的的好好坏坏是是衡衡量量一一个个数数据据库库管理系统性能的重要标志之一。管理系统性能的重要标志之一。一、并发操作带来的三个问题一、并发操作带来的三个问题对并发操作如果不进行合适的控制,可能会导致数据库中数据的不一致性。对并发操作如果不进行合适的控制,可能会导致数据库中数据的不一致性。典型的并发操作的例子:火车订票系统中的订票操作。典型的并发操作的例子:火车订票系统中的订票操作。在该系统中的一个活动序列:在该系统中的一个活动序列:甲售票员读出某列车的甲售票员读出某列车的车车
24、票余数为票余数为A,设:设:A=18;乙售票员读出同一列车的车票余数为乙售票员读出同一列车的车票余数为A A,也是:,也是:A=18A=18;甲售票点卖出一张车票,修改车票余数甲售票点卖出一张车票,修改车票余数A=A-1A=A-1,所以所以A A1717,把把A A写回数据库;写回数据库;乙售票点卖出二张车票,修改车票余数乙售票点卖出二张车票,修改车票余数A=A-2A=A-2,所以所以A=16A=16,把把A A写回数据库。写回数据库。事实上是卖出三张车票事实上是卖出三张车票,而数据库中车票余额只减少而数据库中车票余额只减少2 2。这种情况称为数据库的不一致性。这种不一致性是由甲乙两个售票员并
25、发操作引起的。(在一个CPU上,利用分时方法实行多个事务同时执行)。在并发操作情况下,对甲、乙两个事务的操作序列的调度是随机的。若按上面的调度序列执行,甲事务的修改就被丢失。这是由于第4步中乙事务修改A并写回后覆盖了甲事务的修改。并发操作带来的数据不一致性包括三类:并发操作带来的数据不一致性包括三类:丢失修改;丢失修改;不一致分析(不可重复读);不一致分析(不可重复读);读读“脏脏”数据。数据。并发操作带来的数据不一致性包括三类:并发操作带来的数据不一致性包括三类:丢失修改;丢失修改;不一致分析(不可重复读);不一致分析(不可重复读);读读“脏脏”数据。数据。1.丢失更新(丢失更新(Lostu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 第八 数据库 管理
限制150内