




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章数据库的维护与管理
5.1
事务管理安全与完整性5.2
并发控制的基本概念5.3
故障恢复的基本概念部分习题答案5.1.1
事务管理5.1事务管理安全与完整性数据库系统的运行中执行大量的数据更新操作,万一发生故障系统怎样确定最近的正确状态在何处呢?系统是通过事务管理手段来管理的。从静态角度看,事务(Transaction)是用户为了完成一次任务所执行的一系列操作,即一段应用程序。从动态角度看,它也代表这段程序在机器上的一次执行。事务是一个不可再分的逻辑工作单元,要么干完,要么不干。在事务的执行过程当中,数据库处于不稳定或者不允许的状态。例如,某单位普调工资,一个事务的功能是更新工资数据库中每个职工的基本工资。在该事务执行之前数据库处于某个正确状态(没有增加工资),事务执行完之后,数据库处于另一个正确状态(已经增加工资)。因此,并发控制和数据库恢复常用事务作为处理单位。事务程序是两个概念。一般地讲,一个程序中包含多个事务。5.1.2安全性5.1事务管理安全与完整性1.用户标识和鉴定2.访问授权3.数据加密4.环境安全5.1.3完整性5.1事务管理安全与完整性数据完整性是对数据的正确性和一致性的测度。完整性就是正确性、准确性和有效性。数据应该始终保持在正确状态,防止不符合语义的输入输出所造成的错误结果或无效操作。数据的完整性与一致性有联系,也有区别。数据的一致性强调数据库中多个值需要始终保持相同,数据冗余越大,就越容易破坏数据的一致性。5.2
并发控制的基本概念
5.2
并发控制的基本概念数据库系统的突出优点是能够提供数据共享,减少数据冗余。而用户对数据的存取可能是并发进行的。例如,在不同终端上的用户同时访问同一个主机上的数据库;计算机网络上的不同用户同时访问服务器上的一个共享数据库。这时DBMS必须对多用户的并发操作加以控制、协调以保证数据的正确。1.丢失修改(LostUpdate)2.不可重复读(Non-RepeatableRead)3.读“脏”数据(DirtyRead)5.2.1
封锁类型
5.2
并发控制的基本概念封锁是实现并发控制的一个非常重要的技术。所谓封锁就是当一个事务在对某个数据对象(可以是数据项、记录、数据集以至整个数据库)进行操作之前,必须向系统提出加锁请求,获得相应的锁,加锁后事务就对该数据对象有了一定的控制,在事务释放它的锁之前,其它事务不能修改此数据对象,以保证数据操作的正确性和一致性。封锁是目前DBMS普遍采用的并发控制方法,基本的封锁类型有两种:a)
排它型封锁(ExclusiveLock)b)
共享封锁(ShareLock)5.2.2
封锁类型
5.2
并发控制的基本概念在运用X锁和S锁这两种基本封锁对数据对象加锁时,还需要约定一些规则。例如,何时申请X锁或S锁、封锁多长时间、何时释放等,这些规则称为封锁协议。对封锁方式规定不同的规则,就形成了各种不同的封锁协议。封锁协议在不同程度上对正确控制并发操作提供了一定的保证。上面讲述过的并发操作所带来的丢失修改、读“脏”数据和不可重复读等数据不一致性问题,可以通过三级封锁协议在不同程度上给予解决,下面介绍三级封锁协议。1.
一级封锁协议2.
二级封锁协议3.
三级封锁协议5.2.3
死锁和活锁
5.2
并发控制的基本概念封锁技术可有效地解决并行操作的一致性问题,但也带来了一些新的问题,即死锁和活锁的问题。1、
活锁(Livelock)
当多个事务请求对同一数据进行封锁时,总是使某一事务处于永远等待状态的情况称为活锁。2、
死锁(Deadlock)
在同时处于等待状态的两个或多个事务中,其中的每一个在它能继续进行之前,都等待封锁某个数据,而这个数据已被它们中的某个事务所封锁,这种状态称为死锁。5.2.4
并发调度的可串行性5.2
并发控制的基本概念计算机系统对并发事务中并发操作的调度是随机的,而不同的调度可能会产生不同的结果,那么哪个结果是正确的,哪个是不正确的呢?如果一个事务运行过程中没有其他事务同时运行,也就是说它没有受到其他事务的干扰,那么就可以认为该事务的运行结果是正常的或者预想的。因此将所有事务串行起来的调度策略一定是正确的调度策略。虽然以不同的顺序串行执行事务可能会产生不同的结果,但由于不会将数据库置于不一致状态,所以都是正确的。由此可以得出结论:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同,我们称这种调度策略为可串行化的调度。5.3
故障恢复的基本概念5.3
故障恢复的基本概念虽然数据库系统中已采取了各种各样的措施来防止数据库的安全性和完整性遭到破坏,保证并发事务的正确执行,但计算机系统中硬件故障、软件出错、操作员的失误、恶意的破坏以及计算机病毒的破坏等仍是不可避免的,这些故障轻则造成事务运行的非正常中断,从而影响数据库中数据的正确性,重则破坏部分或全部数据库,从而使数据库中的数据丢失。因此,系统必须具有把数据库从错误状态中恢复到某一已知的正确状态的功能,这就是故障恢复。数据库系统可能出现的故障种类有:1.
事务故障事务故障表示由非预期的、不正常的程序结束所造成的故障。造成这种故障的原因包括输入数据的错误、运算溢出、违反了某些完整性控制、并发事务发生死锁等。2.
系统故障系统故障是指造成系统停止运行的任何事件,它使所有正在运行的事务都以非正常方式中止,使得系统要重新启动。5.3
故障恢复的基本概念3.
介质故障介质故障是指系统在运行过程中,由于存储器介质遭到损坏,使存储在外存中的数据部分或全部丢失。它的破坏性相当大。磁盘上的物理数据和日志文件可能被破坏,也可能会造成数据的无法恢复。4.
计算机病毒计算机病毒是一种人为的故障或破坏,它是由一些恶意的人编制的计算机程序。这种程序与其他应用程序不同,它具有破坏性、寄生性、潜伏性、传染性,它可以对计算机系统和数据库系统造成破坏。5.
用户操作错误在某些情况下,由于用户有意或无意的操作也可能删除数据库中有用的数据或加入错误的数据,这同样会造成一些潜在的危险。5.3.1
数据转储5.3
故障恢复的基本概念所谓转储是DBA定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。这些备用的数据文本称为后备副本或后援副本。当数据库遭到破坏后可以将后备副本重新装入,但重装后备副本只能将数据库恢复到转储时的状态,要想恢复到故障发生时的状态,必须重新运行自转储以后的所有更新事务。具体进行数据转储时就可以有两种方式:一种是完全转储;一种是增量转储。完全转储是指每次转储全部数据库。增量转储是指只转储上次转储后更新过的数据。从恢复角度看,使用完全转储得到的后备副本进行恢复一般说来比较方便一些。但如果数据库很大,事务处理又很频繁,则增量转储方式更为实用有效。5.3.2
登记日志文件(Logging)5.3
故障恢复的基本概念日志文件是用来记录事务对数据库的更新操作的文件。对数据库的每次修改,都将把修改项目的旧值和新值写在一个叫做运行日志的文件中,目的是为数据库的恢复保留详细的数据。日志文件在数据库恢复中起着非常重要的作用,可以用来进行事务故障恢复和系统故障恢复,并协助后备副本进行介质故障恢复。典型的日志文件主要内容包括:更新数据库的事务标识;操作的类型;操作对象;更新前数据的旧值;更新后数据的新值;事务处理中的各个关键时刻。为保证数据库是可恢复的,登记日志文件必须遵循两条原则:(1)登记的次序严格按照并行事务执行的时间次序。(2)必须先写日志文件,后写数据库。
5.3.3
数据库故障恢复的策略5.3
故障恢复的基本概念1、
事务故障的恢复2、
系统故障的恢复3、
介质故障的恢复4、检查点恢复技术部分习题答案1、
事务是用户为了完成一次任务所执行的一系列操作。事务的属性有:原子性、一致性、隔离性、持续性。2、丢失修改、不可重复读、读“脏”数据。3、所谓封锁就是当一个事务在对某个数据对象(可以是数据项、记录、数据集以至整个数据库)进行操作之前,必须向系统提出加锁请求,获得相应的锁,加锁后事务就对该数据对象有了一定的控制,在事务释放它的锁之前,其它事务不能修改此数据对象,以保证数据操作的正确性和一致性。基本的类型有:排它型封锁、共享封锁。排它型封锁采用的原理是禁止并发操作。当事务T对数据对象R加上X封锁后,其他事务要等T解除X封锁后,才能对R进行封锁。这就保证了其他事务在T释放R上的封锁之前,不能再对R进行读取和修改。共享封锁采用的原理是允许其他用户对同一数据对象进行查询,但不能对该数据对象进行修改。当事务T对某个数据对象R实现S封锁后,其他事务只能对R加S锁,而不能加X锁,直到T释放R上的S锁。这就保证了其他事务在T释放R上的S锁之前,只能读取R,而不能再对R作任何修改。部分习题答案4、
使用三级封锁协议可以解决丢失修改、不可重复读、读“脏”数据的问题。这样便保证了数据的一致性。5、在运用X锁和S锁这两种基本封锁对数据对象加锁时需要约定的一些规则,这些规则称为封锁协议。三级协议的主要区别在于什么操作需要申请封锁以及何时释放封锁,对于加X锁,三个封锁协议都是在整个事务结束时才释放;对于加S锁,二级封锁协议在操作结束时释放,三级封锁协议在整个事务结束时才释放。事务是用户为了完成一次任务所执行的一系列操作。其他事务只能对R加S锁,而不能加X锁,直到T释放R上的S锁。这就保证了其他事务在T释放R上的S锁之前,只能读取R,而不能再对R作任何修改6、当多个事务请求对同一数据进行封锁时,总是使某一事务处于永远等待状态的情况称为活锁,避免活锁的简单方法是采用先来先服务的策略。在同时处于等待状态的两个或多个事务中,其中的每一个在它能继续进行之前,都等待封锁某个数据,而这个数据已被它们中的某个事务所封锁,这种状态称为死锁,目前在数据库中解决死锁问题主要有两类方法:一类方法是采取一定措施来预防死锁的发生;另一类方法是允许发生死锁,采取一定手段定期诊断系统中有无死锁,若有则解决之。部分习题答案7、
在数据库系统中,造成数据出错的原因有:计算机系统中硬件故障、软件出错、操作员的失误、恶意的破坏以及计算机病毒的破坏等。8、数据完整性是对数据的正确性和一致性的测度。数据库系统中数据的完整性体现在域完整性和关联完整性。它们是通过域完整性控制和关联完整性控制来实现的。9、数据库运行过程中常见的故障有:事务故障、系统故障、介质故障、计算机病毒、用户操作错误。事务故障是指事务在未运行到正常终点被中止。当事务发生故障时,系统应利用日志文件撤消此事务已对数据库进行的修改,具体做法如下:①反向扫描日志,查找该事务的更新操作。②对该事务的更新操作执行反操作,即对已经插入的新记录进行删除操作,对已删除的记录进行插入操作,对修改的数据恢复旧值,用旧值代替新值。这样由后向前逐个扫描该事务的所有更新操作,并做同样处理,直到扫描到此事务的开始标记,事务故障恢复完毕。系统故障的恢复要完成两方面的工作,既要撤消所有未完成事务,还需要重做所有已提交的事务,这样才能将数据库真正恢复到一致的状态。具体做法如下:①正向扫描日志文件。找出在故障发生前已经提交的事务,将其事务标记记入重做队列,同时找出故障发生时尚未完成的事务,将该事务标记记入撤消队列。②对撤消队列中的各个事务进行撤消处理。方法同事务故障恢复。③对重做队列中的各个事务进行重做处理。进行重做处理的方法是:正向扫描日志文件,按照日志文件中所登记的操作内容重新执行操作,使数据库恢复到最近某个可用状态。发生介质故障后,磁盘上的物理数据和日志文件均被破坏,这也是最严重的一种故障,可能会造成数据的无法恢复。恢复的方法是重装数据库,然后重做已完成的事务。具体做法如下:①装入最新的后备数据库副本;使数据库恢复到最近一次转储时的一致性状态。对于动态转储的数据库副本,还需同时装入转储时刻的日志文件副本,利用与恢复系统故障相同的方法,才能将数据库恢复到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗行业智能诊疗辅助系统设计方案
- 建设工程施工劳务承包合同
- 股份制改革策略分析报告
- 人工智能教育辅助软件项目维护报告
- 学雷锋活动计划书
- 新学期小学体卫艺工作计划范本
- 常用设计师个人工作计划
- 智能家居产品用户体验提升计划
- 酒店行政部工作计划
- 医疗事故协商合同范例
- 江苏省苏州市常熟市2024届八年级语文第二学期期末考试模拟试题含解析
- 维修手机屏幕行业分析
- 智鼎在线测评的题库
- 妇女儿童权益保护知识讲座
- 2020年10月软件工程自考真题及答案
- 企业税务风险防控财务规划中的税法合规策略
- 《当下的力量》课件
- 手术室护理查房剖宫产
- 医务科依法执业自查表
- 17中国大唐集团公司发电设备检修管理办法大唐集团制〔2023〕94号
- 直肠癌的护理查房
评论
0/150
提交评论