《系统实现技术》PPT课件.ppt
《《系统实现技术》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《系统实现技术》PPT课件.ppt(79页珍藏版)》请在三一办公上搜索。
1、系统实现技术,第七章,本章内容,本章主要涉及实现DBMS时的具体技术。系统目录:存放数据库结构的描述。事务:所有对数据库的操作,都要以事务作为一个整体单 位来执行或撤销。在DBS运行时,DBMS要对DB进行监控,以保证整个系统的正常运转,防止数据意外丢失和不一致数据的产生。DBMS对 DB的监控,称为数据库的管理,有时也称为数据库的保护。对数据库的管理主要通过四个方面实现:数据库的恢复并发控制完整性控制 安全性控制每一方面构成了DBMS的一个子系统。,71 系统目录,系统目录(System Catalog)是任何通用 DBMS的核心。系统目录本身就是一个“微型数据库”,其主要功能是存储DBMS
2、管理的数据库的定义或描述。这类信息被称为元数据(Metadata),主要包括数据库三级结构、两级映象的定义。,图1-15 访问数据库的主要步骤,数据字典,71 关系 DBMS的目录,关系DBMS的系统目录存储下列信息:(1)关系名,属性名,属性域(数据类型);(2)各种约束,主键,辅助键,外键,空值 非空值;(3)视图的外部级描述,存储结构和索引的内部级描述;(4)安全性和授权规则;(5)数据完整性规则。,在关系 DBMS中,系统目录被组织成关系(表格),例如 Oracle系统中,系统目录由42个关系组成。DBMS可以对目录执行查询、修改和维护操作;而用户一般只能执行查询操作不能进行修改或维护
3、。,图7.1所示的是教学数据库三个关系的定义存储在目录中的形式。系统目录中的关系名为REL_AND _ATTR_CATALOG,存储用户关系中属性的性质,包括数据类型、主键、外键等。这个关系的主键为(REL_NAME,ATTR_NAME),图7.1示的是教学数据库三个关系的定义存储在目录中的形式。系统目录中的关系名为REL_AND ATTR_ CATALOG,存储用户关系中属性的性质,包括数据类型、主键、外键等。这个关系的主键为(REL _NAME,ATTR_NAME),索引信息可用目录关系 RELATION_INDEXES表示,如图 72(b)所示,主键为(INDEX_NAME,MEMBER
4、_ATTR)。视图的定义可用两个目录关系实现,如图72(C)所示。,至此,我们介绍了系统目录中的一些基本的信息存储方式。日前,在大多数DBMS的系统日录中,还存储了数据库运行的信息,例如每个基本关系中元组的数目和各个属性的平均访问次数,索引的层次数等。这些信息必须由DBMS经常更新,以反映数据库的使用状况。因此,系统目录对任何一个DBMS而言,都是十分重要的组成部分。有的系统,甚至把系统目录数据字典系统从DBMS中分离出来,成为一个独立的数据字典系统,并使之成为一个比DBMS还要高级的用户与系统之间的接口,用户对数据库的所有操作都要通过数据字典实现,而不直接与DBMS接触。,7.2 事务,7.
5、2 事务举例从用户观点看,对数据库的某些操作应是一个整体,也就是一个独立的工作单元,不能分割。例如,客户认为电子资金转账(从账目A转一笔款到账号B)是一个独立的操作,而在DBS中这是由几个操作组成的。显然,这些操作要么全都发生,要么由于出错(可能账号A二透支)而全不发生。保证这一点非常重要,我们决不允许发生下面的事情:在账号A透支情况下继续转账;或者从账号A转出了一笔钱,而不知去向未能转人账号B中.这样就引出了事务的概念。,7.2.1 事务的概念,事务是一个操作序列。这些操作要么什么都做,要么都不做,是一个不可分割的工作单位。是构成单一逻辑工作单元的操作集合;DBS的主要意图是执行“事务”;相
6、当于操作系统环境中的“进程”概念。一个程序的执行可通过若干事务的执行序列来完成。事务是不能嵌套的,可恢复的操作必须在一个事务的界限内才能执行.,事务的开始与结束可以由用户显式控制。如果用户没有显式地定义事务,则由DBMS按缺省规定自动划分事务。在SQL语言中,定义事务的语句有三条:BEGIN TRANSACTION:事务开始COMMIT:提交事务的所有操作,即将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束ROLLBACK:回滚,即在事务运行的过程中因发生某种故障而不能继续执行,通过ROLLBACK对数据库的所有已完成的操作全部撤消,滚回到事务开始时的状态 ROLLBACK
7、语句保证数据库处于正确的状态,事务举例的代码,T:BEGIN TRANSACTION;Read(A);A:=A-50;write(A);if(A0)ROLLBACK;else read(B);B:=B+50;write(B);COMMITE;,1原子性(Atomicity):事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。由DBMS的事务管理子系统来实现。2一致性(Consistency):事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,系统将事务中对数据库的所有已完成的操作全部撤消,滚回到事务开始
8、时的一致状态。由DBMS的完整性子系统执行测试任务。,事务的特性(ACID),3隔离性(Isolation):一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。隔离性是由DBMS的并发控制子系统实现的。4持续性(Durability):事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。事务的持久性由DBMS的恢复管理子系统实现的。,T:BEGIN TRANSACTION;Read(A);A:=A-50;write(A);if(A0)ROLLBACK;else read(B);B:=B+50;
9、write(B);COMMITE;原子性一致性 隔离性 持久性 一旦事务成功完成,该事务对数据库施加的所有更新都是永久的。也就是计算机系统 的故障将会导致内存的数据丢失,但已写人磁盘的数据决不会丢失。,为了精确地描述事务的工作,我们建立一个抽象的事务模型,事务的状态变迁图如图74所示。,事务是恢复和并发控制的基本单位。保证事务ACID特性是事务处理的重要任务。事务ACID特性可能遭到破坏的因素有:1.多个事务并行运行时,不同事务的操作交叉执行。要求数据库管理系统必须保证多个事务的交叉运行不影响这些事务的原子性.(并发控制机制)2.事务在运行过程中被强行停止:要求数据库管理系统必须保证被强行终止
10、的事务对数据库和其它事务没有任何影响。(恢复机制),对事务的进一步研究,尽管数据库系统中采取了各种保护措施来防止数据库的安全性和完整性被破坏,保证并发事务的正确执行,但:计算机系统中硬件的故障软件的错误操作员的失误以及恶意的破坏 这些故障时有发生,轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此数据库管理系统(恢复子系统)必须具有把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)的功能.这就是数据库的恢复。,7.3 数据库恢复概述,7.3.1 故障类型,事务故障 系统故障介质故障计算机病毒,一、事务内部的故障预期故障(
11、即可通过事务程序本身发现,如下面转帐事务的例子.例如:银行转帐事务把一笔金额从一个帐户甲转给另一个帐户乙。BEGIN TRANSACTION;Read(A);A:=A-50;write(A);if(A0)ROLLBACK;else read(B);B:=B+50;write(B);COMMITE;,故障的种类,非预期故障事务内部更多的故障是非预期的,不能由应用程序处理。如运算溢出、并发事务发生死锁而被选中撤消该事务、违反了某些完整性限制等。后面所提到的事务故障仅指这类非预期的故障。事务故障意味着事务没有达到预期的终点,因此,数据库可能处于不正确状态。恢复程序要在不影响其它事务运行的情况下,强行
12、回滚该事务,撤消该事务已经作出的任何对数据库的修改,此类恢复操作称为事务撤消(UNDO)。,故障的种类,二、系统故障(软故障(Soft Crash))系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。如:特定类型的硬件错误(CPU故障)操作系统故障DBMS代码错误突然停电出现此类故障,主存内容(尤其是内存中的数据库缓冲区的内容都被丢失,所有运行事务都非正常终止。可能会有:一些尚未完成的事务的结果已送入物理数据库有些已完成的事务可能有一部分甚至全部留在缓冲区,尚未写回到磁盘上的物理数据库中从而破坏了数据库的一致性,恢复子系统在系统重新启动时将会针对所有非正常终止的事务回滚:强行撤消(U
13、NDO)所有未完成事务重做(Redo)所有已提交的事务,故障的种类,影响正在运行的所有事务,但不破坏数据库,三、介质故障(硬故障(Hard Crash))硬故障指外存故障,如磁盘损坏、磁头碰撞,瞬时强磁场干扰等。这类故障将破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务。这类故障比前两类故障发生的可能性小得多,但破坏性最大。四、计算机病毒 计算机病毒是具有破坏性、可以自我复制的计算机程序。计算机病毒已成为计算机系统的主要威胁,自然也是数据库系统的主要威胁。因此数据库一旦被破坏仍要用恢复技术把数据库加以恢复。,故障的种类,总结各类故障,对数据库的影响有两种可能性:一是数据库本身被破坏。
14、二是数据库没有破坏,但数据可能不正确,这是因为事务的运行被非正常终止造成的。恢复的基本原理:冗余。即根据存储在系统别处的冗余数据来重建或恢复数据库中任何一部分被破坏的或不正确的数据。,故障的种类,恢复机制涉及的两个关键问题是:(1)如何建立冗余数据;(2)如何利用这些冗余数据实施数据库恢复。建立冗余数据最常用的技术:(1)定期对数据库进行复制或转储(dump)(2)建立“日志”文件(3)恢复 通常在恢复时,两种方法一起使用。,7.3.2 恢复的实现技术,一、含义转储:DBA定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。这些备用的数据文本称为后备副本或后援副本。当数据库遭到破坏后:将
15、后备副本重新装入,数据库恢复到转储时的状态重新运行自转储以后的所有更新事务,恢复到故障发生时的状态,1.数据转储,Ta:系统停止运行事务,进行数据库转储;Tb:转储完毕,得到Tb时刻的数据库一致性副本Tf:系统发生故障。恢复数据库的过程:由DBA重装数据库后备副本,将数据库恢复至Tb时刻的状态重新运行自Tb时刻至Tf时刻的所有更新事务,这样就把数据库恢复到故障发生前的一致状态。问题:1.转储是十分耗费时间和资源的,不能频繁进行。DBA应该根据数据库使用情况确定一个适当的转储周期。2.系统需要停止运行事务,1.数据转储,1.数据转储,分类静态转储动态转储海量转储增量转储,按转储方式分,按转储量分
16、,1.数据转储,静态转储静态转储是在系统中无运行事务时进行的转储操作。即转储操作开始的时刻,数据库处于一致性状态,而转储期间不允许(或不存在)对数据库的任何存取、修改活动。静态转储得到的一定是一个数据一致性的副本。静态转储简单,但必须等待正运行的用户事务结束才能进行,而且新的事务也必须等待转储结束才能执行。这会降低数据库的可用性。,1.数据转储,动态转储动态转储是指转储期间允许对数据库进行存取或修改。即转储和用户事务可以并发执行。动态转储不用等待正在运行的用户事务结束,也不会影响新事务的运行。但是,转储结束时后援副本上的数据并不能保证正确有效。如,在转储期间的某个时刻Tc,系统把数据A=100
17、转储到磁带上,而在下一时刻Td,某一事务将A改为200。转储结束后,后备副本上的A已是过时的数据了。因此采用动态转储,必须把转储期间各事务对数据库的修改活动登记下来,建立日志文件(log file)。这样,后援副本加上日志文件就能把数据库恢复到某一时刻的正确状态。,1.数据转储,转储还可以分为海量转储和增量转储两种方式:海量转储:每次转储全部数据库增量转储:每次只转储上一次转储后更新过的数据。分析:从恢复角度看,使用海量转储得到的后备副本进行恢复一般说来会更方便些。但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效。,2.日志文件,一.日志文件的内容 记录事务对数据库的更新操作的
18、文件。以记录为单位的日志文件,需要登记的内容包括:每个事务的开始(BEGIN TRANSACTION)标记 每个事务的结束(COMMIT或ROLL BACK)标记 每个事务的所有更新操作 一个事务开始的标记、结束标记及所有的更新操作即构成了日志文件中的一个日志记录。,2.日志文件,更具体一点,每个日志记录的内容主要包括:事务标识(标明是哪个事务)操作的类型(插入、删除或修改)操作对象(记录内部标识)更新前数据的旧值(对插入操作而言,此项为空值)更新后数据的新值(对删除操作而言,此项为空值),2.日志文件,二、日志文件的作用 用于进行事务故障恢复和系统故障恢复,并协助后备副本进行介质故障恢复。具
19、体如下:事务故障恢复和系统故障必须用日志文件在动态转储方式中必须建立日志文件,后援副本和日志文件的综合才能有效地恢复数据库。静态转储方式中,也可建立日志文件。当数据库毁坏后可重新装入后援副本把数据库恢复到转储结束时刻的正确状态,然后利用日志文件,把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤消处理。这样不必重新运行那些已完成的事务程序就可把数据库恢复到故障前某一时刻的正确状态,如图7.2所示。,2.日志文件,2.日志文件,三、登记日志文件(logging)为保证数据库可恢复,登记日志文件时必须遵循:1.登记的次序严格按并发事务执行的时间次序。2.必须先写日志文件,后写数据库。把对
20、数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。故障可能发生在两个操作之间,即这两个写操作只完成了一个:若先写数据库修改,而在运行记录中没有登记下这个修改,则以后就无法恢复这个修改。如果先写日志,但没有修改数据库,则可以根据日志文件进行REDO或者UNDO,不会影响数据库的正确性。因此,要先把日志记录写到日志文件中,然后再写数据库的修改。这就是“先写日志文件”的原则。,3.系统故障恢复策略,系统故障造成数据库不一致状态的原因:未完成事务对数据库的更新可能已写入数据库已提交事务对数据库的更新可能还留在缓冲区没来得及写入数据库。,3.系统故障恢复策略,系统的恢复步骤
21、是:1.对未完成事务进行(UNDO)处理,即将日志记录中“更新前的值”写入数据库。2.对重做队列中的各个事务进行重做(REDO)处理。即将日志记录中“更新后的值”写入数据库系统故障的恢复是由系统在重新启动时自动完成的,不需要用户干预。,3.事务故障的恢复策略,事务故障的恢复事务故障的恢复由系统自动完成,对用户透明。恢复过程如下:1.反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。,3.事务故障的恢复策略,2.对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”写入数据库:1)若日志记录中是插入操作,则相当于做删除操作(此时“更新前的值”为空)2)若是删除操作,则做插入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统实现技术 系统 实现 技术 PPT 课件
链接地址:https://www.31ppt.com/p-5566411.html