欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第6章 数据库的保护.ppt

    • 资源ID:96418687       资源大小:193.50KB        全文页数:46页
    • 资源格式: PPT        下载积分:6金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要6金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第6章 数据库的保护.ppt

    数据的完整性约束;数据的完整性约束;事务并发控制;事务并发控制;数据的安全性;数据的安全性;数据恢复;数据恢复;注:注:数据库的保护问题由数据库数据库的保护问题由数据库共享引起来的。共享引起来的。主要内容:主要内容:第第6章章 数据库的保护数据库的保护重点:重点:数据的完整性约束数据的完整性约束 事务并发控制。事务并发控制。6.1-6.2 事务的并发控制事务的并发控制防防止止用用户户程程序序对对共共享享数数据据操操作作的的互互相相干干扰扰,保保证证DB中中数数据据正正确确性性不受到破坏。不受到破坏。一、基本概念一、基本概念并发控制是以事务为单位的。并发控制是以事务为单位的。1、事务(、事务(Transaction)事事务务:一一个个事事务务就就是是一一个个DB应应用用程程序序的的一一次次执执行行过过程程。(类类似似OS中的中的“进程进程”的概念)的概念)事务的定义:事务的定义:在应用程序中,事务以在应用程序中,事务以BEGINTRANSACTION语句开始语句开始COMMIT语语句句或或ROLLBACK语语句句结结束。束。一一个个事事务务可可以以是是一一组组SQL语语句句,一一条条SQL语语句句或或整整个个程程序序。通通常,一个应用程序包含多个常,一个应用程序包含多个事务。事务。2、事务的特性(、事务的特性(ACID性质)性质)原子性(原子性(Atomicity):):事务是不可分割的最小工作单位,即具有事务是不可分割的最小工作单位,即具有整体执行性。(事务控制子系统完成)整体执行性。(事务控制子系统完成)一致性(或称正确性)一致性(或称正确性)(Consistency):一个事务单独执行的结一个事务单独执行的结果将保证果将保证DB的一致性,即事务满足的一致性,即事务满足DB的完整性约束条件。的完整性约束条件。(完整性控制子系统完成完整性控制子系统完成)隔离性隔离性(Isolation):执行并发事务时,事务彼此隔离,即一个执行并发事务时,事务彼此隔离,即一个事务对事务对DB变更的结果必须结束后,另一个事务才能存取。变更的结果必须结束后,另一个事务才能存取。(并发控制子系统完成并发控制子系统完成)永久性永久性(Durability):正常结束后的事务结果在正常结束后的事务结果在DB中存储是永久中存储是永久的。若系统发生故障,也应保留这个事务执行的痕迹。的。若系统发生故障,也应保留这个事务执行的痕迹。(恢复子系统完成)(恢复子系统完成)保证事务永久性的实现:保证事务永久性的实现:事务的更新操作应在事务完成之前写入磁盘。事务的更新操作应在事务完成之前写入磁盘。事务的更新与写入磁盘这两个操作应保存足够的信息,足以事务的更新与写入磁盘这两个操作应保存足够的信息,足以使使DB系统在遇到故障后重新启动时重构更新操作。系统在遇到故障后重新启动时重构更新操作。二、事务并发带来的问题二、事务并发带来的问题DB中中多多个个并并发发事事务务对对共共享享数数据据并并发发操操作作时时,如如果果不不加加以以控控制制会会产生数据的不一致性问题。产生数据的不一致性问题。数据的不一致性包括三类:数据的不一致性包括三类:丢失更新,丢失更新,不可重读,不可重读,读读“脏数据脏数据”。例如:飞机订票系统中的一个活动序列:例如:飞机订票系统中的一个活动序列:(1)甲售票点(甲事务)读出某航班的机票余额甲售票点(甲事务)读出某航班的机票余额A,设设A=16;(2)乙售票点(乙事务)读出同一航班的机票余额乙售票点(乙事务)读出同一航班的机票余额A,也为也为16;(3)甲甲售售票票点点卖卖出出一一张张机机票票,修修改改余余额额A1A,A=15,把把A写写回回数据库数据库;(4)乙乙售售票票点点也也卖卖出出一一张张机机票票,修修改改余余额额A1A,A=15,把把A写写回数据库回数据库;结结果果说说明明,卖卖出出两两张张机机票票,但但数数据据库库中中的的机机票票余余额额只只减减少少1。这这种种现现象象称称为为DB的的丢丢失失更更新新。问问题题的的原原因因:没没有有控控制制它它们们的的并并发发操操作,使乙事务修改作,使乙事务修改A并回写,覆盖了甲事务的修改并回写,覆盖了甲事务的修改(丢失丢失)。丢失更新问题丢失更新问题如:如:步骤步骤 更新事务更新事务T1DB中的中的A值值更新事务更新事务T21READ(A)1623READ(A)4A:=A-15A:=A16WRITE(A)715WRITE(A)不可重读的问题不可重读的问题:即读了过时的数据即读了过时的数据时间时间事务事务T1DB中的中的B值值事务事务T3t1t2t3t1:检索 读A=50 读B=100 求和=150t3:检索(验算)读A=50 读B=200 求和=250t2:读B=100 B:=B*2 回写B=200B“脏数据脏数据”的读出:即提交随后又被撤消的数据称为脏数据的读出:即提交随后又被撤消的数据称为脏数据步骤步骤更新事务更新事务T1DB中的中的A值值 读事务读事务T41502READ(A)3A:=A-104WRITE(A)540READ(A)6ROLLBACK750恢复事事务务的的并并发发控控制制:使使用用正正确确的的方方法法调调度度并并发发操操作作,避避免免造造成成数数据据的不一致性,使一个事务的执行不受其它事务的干扰。的不一致性,使一个事务的执行不受其它事务的干扰。采用采用封锁控制技术封锁控制技术解决并发操作带来的数据不一致问题。解决并发操作带来的数据不一致问题。三、封锁技术三、封锁技术1、锁的基本类型、锁的基本类型排排他他锁锁(简简记记X封封锁锁;写写锁锁)和和共共享享锁锁(简简记记S封封锁锁;读读锁锁)。封封锁锁:指指事事务务向向系系统统发发出出请请求求,对对某某个个数数据据对对象象(通通常常指指记记录录)加锁(加锁(LOCK),),其它事务不能其它事务不能更新更新其封锁数据,直到释放为止。其封锁数据,直到释放为止。2、封锁的工作原理、封锁的工作原理封锁的工作原理封锁的工作原理:若若事事务务T对对数数据据R加加了了X封封锁锁,则则所所有有别别的的事事务务对对R的的封封锁锁请请求求都都必必须须等等待待,直直到到T释释放放锁锁为为止止。这这就就保保证证了了其其他他事事务务在在T释释放放R上上的的X锁之前不能对锁之前不能对R做做读和修改读和修改。若若事事务务T对对数数据据R加加了了S封封锁锁,则则别别的的事事务务对对R还还可可请请求求S封封锁锁,而而不不能能对对R请请求求X封封锁锁,必必须须等等待待到到T释释放放S封封锁锁。这这就就保保证证了了其其他他事事务可读务可读R,但在但在T释放释放R上的上的S锁之前不能对锁之前不能对R做任何修改。做任何修改。共共读读,不共,不共写写事务执行事务执行DB操作时都必先请求相应的封锁(一般由操作时都必先请求相应的封锁(一般由DBMS自动隐自动隐含执行):含执行):对读请求对读请求S封锁,对更新(插、删、改)请求封锁,对更新(插、删、改)请求X封锁。封锁。事务一直占有获得的锁直到结束(事务一直占有获得的锁直到结束(COMMIT或或ROLLBACK)时时释放释放。排他锁排他锁X和共享锁和共享锁S的控制关系:的控制关系:T1T2XSXNNSNY3,封锁粒度,封锁粒度 封锁粒度:指封锁对象的大小。对象可以是逻辑单元(如:封锁粒度:指封锁对象的大小。对象可以是逻辑单元(如:属性属性值,元组,关系,索引项,或整个数据库值,元组,关系,索引项,或整个数据库),也可以是物理单元),也可以是物理单元(页:数据页和索引页,块页:数据页和索引页,块等)。等)。封锁粒度与系统的并发度和并发控制的开销密切相关:封锁粒度与系统的并发度和并发控制的开销密切相关:封锁的粒度越大,封锁的对象就越少,并发度也就越小,但同时封锁的粒度越大,封锁的对象就越少,并发度也就越小,但同时系统的开销也就越小;反之,封锁的粒度越小,并发度就越高,系统的开销也就越小;反之,封锁的粒度越小,并发度就越高,系统的开销也就越大。系统的开销也就越大。4,用锁进行并发控制,用锁进行并发控制用锁进行并发控制,除了锁的机制外,还要有一些封锁规则用锁进行并发控制,除了锁的机制外,还要有一些封锁规则封锁协议。封锁协议。协议:所有事务都必须遵循的关于基本操作执行顺序的一种限协议:所有事务都必须遵循的关于基本操作执行顺序的一种限制。制。封锁协议包括:保证数据一致性的三级封锁协议,保证并发可封锁协议包括:保证数据一致性的三级封锁协议,保证并发可串行化的两段封锁协议和避免死锁的封锁协议。串行化的两段封锁协议和避免死锁的封锁协议。四,四,保证数据一致性的三级封锁协议:保证数据一致性的三级封锁协议:1)1级封锁协议:事务级封锁协议:事务T在修改数据在修改数据R之前必须先对其加之前必须先对其加X锁,锁,直到事务结束才释放直到事务结束才释放(commit或或rollback).1级封锁协议可防止丢失修改,并保证事务级封锁协议可防止丢失修改,并保证事务T是可恢复的是可恢复的。时间时间事务事务T1DB中的中的A值值16事务事务T2 t1 lock X(A)read(A)t2 lock X(A)t3 A=A-1 等待 write(A)A15 Commit ,Unlock A ,t4 lock X(A)read(A)A=A-1 write(A)A14 Commit Unlock AA 2)2级封锁协议:级封锁协议:1级封锁协议加上事务级封锁协议加上事务T在读取数据在读取数据R之前必须之前必须先对其加先对其加S锁,锁,读完读完后释放后释放S锁。锁。2级封锁协议除可防止丢失修改,还可防止读级封锁协议除可防止丢失修改,还可防止读“脏数据脏数据”。没有没有丢失修改丢失修改时间时间 事务事务T1DB中的中的c值值100事务事务T2 t1 lock X(A)read(A)A:=A-10 write(A)A=190 t2 lock s(A)t3 Rollback 恢复A=100 等待 Unlock A .t4 lock s(A)read(A)A=100c A不再读不再读“脏数据脏数据”3)3级封锁协议:级封锁协议:1级封锁协议加上事务级封锁协议加上事务T在读取数据在读取数据R之前之前 必须先对其加必须先对其加S锁,直到事务锁,直到事务结束结束才释放。才释放。3级级封封锁锁协协议议除除可可防防止止丢丢失失修修改改和和防防止止读读“脏脏数数据据”外外,可可以以防防止不可重读。止不可重读。更新事务更新事务T1DB中的中的A和和B值值50,100更新事务更新事务T2t1LOCKS(A)READ(A)LOCKS(B)READ(B)A+B150t2t3READ(A)READ(B)A+B=150CommitUnlockAUnlockBABLOCK X(B)WAIT WAIT WAITLOCK X(B)READ(B)B=B*2Write(B)B=200死锁:两个或两个以上事务循环等待被同组中另一事务锁住的数据死锁:两个或两个以上事务循环等待被同组中另一事务锁住的数据单元的现象称为死锁。单元的现象称为死锁。事务事务T1事务事务T21LOCKX(A)2LOCKX(B)3READ(A)4READ(B)5LOCKX(B)6WAIT7WAITLOCKX(A)8WAITWAIT发生死锁发生死锁如:如:五五.事务控制中死锁的问题事务控制中死锁的问题六六.保证并发可串行化的两段封锁协议保证并发可串行化的两段封锁协议1、并发事务可串行化、并发事务可串行化问题:怎样的并发控制才能使一组交叉执行事务的结果是正确问题:怎样的并发控制才能使一组交叉执行事务的结果是正确的呢?的呢?并发调度正确性标准是什么?并发调度正确性标准是什么?事务调度:事务调度:串行调度串行调度:多个事务依次执行:多个事务依次执行.并发调度并发调度:采用分时处理的方法,同时处理多个事务:采用分时处理的方法,同时处理多个事务的执行。的执行。并发事务可串行化并发事务可串行化:当一个并发调度的结果与某一串行调度的结:当一个并发调度的结果与某一串行调度的结果等价,则说该并发调度是可串行化的。果等价,则说该并发调度是可串行化的。注:串行调度与可串行化调度的区别:注:串行调度与可串行化调度的区别:串串行行调调度度是是事事务务顺顺序序调调度度的的一一种种方方式式,可可串串行行化化调调度度是是衡衡量量并并发发调度正确性的标准。调度正确性的标准。“可可串串行行化化的的”不不是是调调度度本本身身“已已串串行行化化了了”,只只是是结结果果与与某某个个串行调度结果一样。串行调度结果一样。一一组组事事务务的的串串行行调调度度不不是是唯唯一一的的,因因而而可可串串行行化化的的调调度度也也不不是是唯唯一的。一的。例如,现有两个事务:例如,现有两个事务:T1:读读B;A=B+1;写回写回A;T2:读:读A;B=A+1;写回写回B;假设假设A的初值为的初值为10,B的初值为的初值为2。下面给出了对这两个事务。下面给出了对这两个事务的三种不同的调度策略。的三种不同的调度策略。1)串行调度)串行调度事务事务T1:事务事务T2:读B=2;A=B+1;写回A=3;读读A=3;B=A+1;写回写回B=4;事务事务T1:事务事务T2:读A=10;B=A+1;写回B=11;读读B=11;A=B+1;写回写回A=12;串行调度串行调度 1 (T1-T2)串行调度串行调度 2 (T2-T1)串行调度串行调度 1和串行调度和串行调度 2为两种不同的串行调度为两种不同的串行调度,虽结果不同,虽结果不同,但它们都是正确的调度。但它们都是正确的调度。结结论论:可可串串行行化化调调度度是是事事务务并并发发执执行行的的正正确确性性准准则则,即即当当且且仅仅当当一组事务的并发执行调度是可串行化的,才认为它们是正确的一组事务的并发执行调度是可串行化的,才认为它们是正确的。事务事务T1:事务事务T2:读B=2;读读A=10;A=B+1;写回A=3;B=A+1;写回写回B=11;事务事务T1:事务事务2:读B=2;等待 等待A=B+1;等待写回A=3;等待 读读A=3;B=A+1;写回写回B=4;2)不可串行化调度)不可串行化调度3)可串行化调度)可串行化调度 3)的调度结果与)的调度结果与1)的结果相同。的结果相同。2 2、两段封锁法、两段封锁法问问题题:怎怎样样的的封封锁锁,其其调调度度才才是是可可串串行行化化的的呢呢?最最简简单单的的方方法法采采用两段封锁法。用两段封锁法。两段封锁法:就是事务遵循两段锁协议(简记两段封锁法:就是事务遵循两段锁协议(简记2PL)的调度方法。的调度方法。(1)两段封锁协议两段封锁协议2PL规定事务必须遵守的规则:规定事务必须遵守的规则:在对任何数据进行读写之前,事务首先要获得对该数据的封锁。在对任何数据进行读写之前,事务首先要获得对该数据的封锁。在释放一个封锁之后,事务不再申请获得任何其它封锁。在释放一个封锁之后,事务不再申请获得任何其它封锁。2PL要求将事务分成两个阶段:增生阶段和收缩阶段。要求将事务分成两个阶段:增生阶段和收缩阶段。增增生生阶阶段段(加加锁锁阶阶段段):事事务务可可以以申申请请封封锁锁,不不能能解解除除任任何何已已取取得的封锁。得的封锁。收缩阶段(释放阶段):一旦事务释放封锁,以后不能申请新的收缩阶段(释放阶段):一旦事务释放封锁,以后不能申请新的封锁封锁。如:如:T1的封锁序列是:的封锁序列是:LOCKS(A)LOCKS(B)LOCKX(C)UNLOCK(B)UNLOCK(A)UNLOCK(C)T2的封锁序列是:的封锁序列是:LOCKS(A)UNLOCK(A)LOCKS(B)LOCKX(C)UNLOCK(C)UNLOCK(B)很明显:很明显:T1遵守两段封锁协议;遵守两段封锁协议;T2没有遵守两段封锁协议没有遵守两段封锁协议。(2)两段封锁法与可串行化调度的关系两段封锁法与可串行化调度的关系定理:遵循两段封锁协议的事务的任何并发调度都是可串行化的。定理:遵循两段封锁协议的事务的任何并发调度都是可串行化的。即说明:所有遵守即说明:所有遵守2PL事务的任何并发执行的结果都是一致的。事务的任何并发执行的结果都是一致的。T1 T2 LOCK S(B)Read(B);(=2)Y:=B LOCK X(A)LOCK S(A)A:=Y+1;等待等待write(A);(=3).UNLOCK(B).UNLOCK(A)LOCK S(A)Read(A);(=3)Y:=A LOCK X(B)B:=Y+1;write(B);(=4)UNLOCK(B)UNLOCK(A)遵循两段封锁协遵循两段封锁协议的调度是可串议的调度是可串行化的调度行化的调度遵循两段封锁协议调度的遵循两段封锁协议调度的事务发生死事务发生死锁锁 T1 T2 T1 T2LOCK S(B)LOCK S(B)READ(B)READ(B)LOCK S(A)LOCK S(A)READ(A)READ(A)LOCK X(A)LOCK X(A)等待等待 LOCK X(B)LOCK X(B)等待等待 等待等待前面的例子前面的例子3):):6.3 数据库的完整性数据库的完整性DB的完整性:指的完整性:指DB中数据的正确性和相容性(有效性)。中数据的正确性和相容性(有效性)。保保证证DB中中的的数数据据完完整整性性是是防防止止合合法法用用户户使使用用数数据据库库时时向向DB中中加加入语义不合法的数据。入语义不合法的数据。一、一、DB中的数据完整性约束中的数据完整性约束约约束束是是通通过过限限制制列列、元元组组中中的的数数据据和和关关系系之之间间的的数数据据来来保保证证数数据据完完整性的方法。整性的方法。1、数据完整性约束的类别、数据完整性约束的类别数据完整性约束可在数据完整性约束可在DB中数据的三个级别上进行:中数据的三个级别上进行:(1)列级(域级):类型、取值范围、精度、排序等方面的约束。)列级(域级):类型、取值范围、精度、排序等方面的约束。对数据格式的约束。如:对学号的格式,规定前对数据格式的约束。如:对学号的格式,规定前2位入学年份,位入学年份,后后4位表示顺序号等。位表示顺序号等。对域的取值范围的约束:如:成绩取值对域的取值范围的约束:如:成绩取值0-100。对对域域空值的约束:如:主关键字不允许为空值,成绩可为空值。空值的约束:如:主关键字不允许为空值,成绩可为空值。(2)元组级:指规定组成一个元组的)元组级:指规定组成一个元组的各列之间的约束关系各列之间的约束关系。如:教师关系中包含职称,工资等列,并规定教授的工资不能低如:教师关系中包含职称,工资等列,并规定教授的工资不能低 于于800元。元。(3)关系级:一个关系中,各)关系级:一个关系中,各元组之间存在的联系或约束元组之间存在的联系或约束。主要包括:主要包括:实体完整性约束。实体完整性约束。参照完整性约束。参照完整性约束。用户定义完整性约束用户定义完整性约束 二、完整性的实施二、完整性的实施约束约束1、DBMS的完整性子系统的完整性子系统DB数据完整性是通过数据完整性是通过DBMS的完整性子系统实现的。的完整性子系统实现的。完整性子系统的功能完整性子系统的功能定义功能:即提供定义完整性约束条件的机制。定义功能:即提供定义完整性约束条件的机制。检查功能:检查用户的操作请求是否违背了完整性约束条件。检查功能:检查用户的操作请求是否违背了完整性约束条件。处处理理功功能能:若若违违背背了了完完整整性性约约束束条条件件,采采取取一一定定的的动动作作(如如报报错错)保证完整性。保证完整性。注:注:完整性检查不针对数据的完整性检查不针对数据的“准确性准确性”,对针对数据的,对针对数据的“正确性正确性”和和“有效性有效性”。如:一个职工如:一个职工“工资工资”是是350元,却输入了元,却输入了“530”,而,而“530”在在“工资工资”取值范围内是一个有效值。取值范围内是一个有效值。完整性约束条件由完整性约束条件由DDL语言描述并定义到语言描述并定义到DB的数据字典中,由系的数据字典中,由系统管理员修改;统管理员修改;DBMS中的完整性子系统按约束条件执行和处理违中的完整性子系统按约束条件执行和处理违规情况。规情况。关系关系DB中三类完整性约束:中三类完整性约束:实体完整性约束:实体完整性约束:主键约束(主键约束(primarykey)、唯一索引()、唯一索引(uniqueindex)等。)等。参照完整性约束:参照完整性约束:外键约束(外键约束(foreignkey)。)。用户定义完整性约束用户定义完整性约束(其它完整性归结此约束中):值检查(其它完整性归结此约束中):值检查(checkcheck)、唯一性()、唯一性(unique)非空()非空(notnull)、类型定义等。)、类型定义等。2、SQL中的完整性约束的定义语句中的完整性约束的定义语句(1)主关键字的约束:定义主键值不能为空,不允许出现重复)主关键字的约束:定义主键值不能为空,不允许出现重复值,保证实体完整性。值,保证实体完整性。定义形式:定义形式:“PRIMARYKEY(SNO)”子句,子句,或或“SnoCHAR(4)PRIMARYKEY”:主键短语。主键短语。(2)外来关键字的约束)外来关键字的约束如:定义如:定义SC关系中的外来关键字约束:关系中的外来关键字约束:CREATETABLESC(SNOCHAR(4),),CNOCHAR(4),),GRADEINT,PRIMARKEY(SNO,CNO),FOREIGNKEY(SNO)REFERENCESS(SNO),FOREIGNKEY(CNO)REFERENCESC(CNO),CHECK(GREADE=0ANDGREADE客体的密级时,该主体才能客体的密级时,该主体才能读读取相取相应的客体。应的客体。b.仅当主体的许可证级别客体的密级时,该主体才能仅当主体的许可证级别客体的密级时,该主体才能写写相应相应的客体。的客体。由于密级标记与数据是一个不可分割的整体,只有符合密级由于密级标记与数据是一个不可分割的整体,只有符合密级标记要求的用户才能操纵数据。标记要求的用户才能操纵数据。注注:MAS检查包括检查包括DAC检查。检查。(3)视图机制)视图机制视图机制间接地实现了支持存取用户权限定义,从而保证数据的视图机制间接地实现了支持存取用户权限定义,从而保证数据的安全。安全。如:如:Createviewcstudentasselect*fromstudentwheresdeptcs;grantselectoncstudentto王平;王平;(4)审计)审计将用户数据库的所有操作自动记录下来放入将用户数据库的所有操作自动记录下来放入审计日志审计日志中。(如存取中。(如存取人、时间、操作类型、旧值、新值等)。人、时间、操作类型、旧值、新值等)。DBA可利用审计日志的跟可利用审计日志的跟踪信息,踪信息,重现导致重现导致DB现有状况一系列事件,现有状况一系列事件,找出非法者及相关内容找出非法者及相关内容信息。信息。审计功能用于安全性要求较高的部门。审计功能用于安全性要求较高的部门。(5 5)数据加密技术)数据加密技术加密方法加密方法 通过加密程序和解密程序完成保密。通过加密程序和解密程序完成保密。替换方法替换方法:将明文中的每一个字符转换为密文中的:将明文中的每一个字符转换为密文中的一个字符。一个字符。置换方法置换方法:将明文中的字符按不同的顺序重新排序。:将明文中的字符按不同的顺序重新排序。两者结合使用方法两者结合使用方法。6.5 数据库的恢复数据库的恢复DB的的恢恢复复:指指使使因因故故障障变变成成不不正正确确或或可可能能不不正正确确状状态态的的DB恢恢复复到正确状态。到正确状态。一、故障的类型一、故障的类型1 1、事务故障事务故障由由程程序序执执行行错错误误而而引引起起事事务务非非预预计计的的,异异常常的的终终止止。(实实际际上上是是程序错误)程序错误)非非预预期期的的事事务务故故障障(不不能能由由事事务务程程序序处处理理的的故故障障):如如程程序序逻逻辑辑错误错误,并发事务发生死锁而被选中撤消该事务等。,并发事务发生死锁而被选中撤消该事务等。可可预预期期的的事事务务故故障障:应应用用程程序序可可发发现现的的事事务务故故障障,并并可可让让事事务务回回退(退(ROLLBACK)撤消错误的事务故障,恢复撤消错误的事务故障,恢复DB到正确状态。到正确状态。2、系统故障系统故障引起系统停止运转,从而要重新启动的事件:引起系统停止运转,从而要重新启动的事件:CPU等硬件故障等硬件故障、电源故障电源故障、OS出错出错、操作员操作错误。操作员操作错误。3、介介质质故故障障:磁磁头头碰碰撞撞盘盘面面,强强磁磁场场干干扰扰,数数据据传传输输部部件件出出错错,控制器出错等。控制器出错等。4.4.计算机病毒:恶意攻击的一段程序。计算机病毒:恶意攻击的一段程序。二、二、DB恢复的方法恢复的方法 (DBDB后备和建立日志文件后备和建立日志文件)1、DB的后备的后备DB的后备:指事先保留故障前的的后备:指事先保留故障前的DB正确状态,以便恢复时使用。正确状态,以便恢复时使用。采采用用方方法法:定定期期对对整整个个DB进进行行复复制制,转转储储到到另另一一存存储储设设备备上上,保保留留DB后备副本。后备副本。静态转储静态转储:指转储期间不允许对:指转储期间不允许对DBDB进行存取,修改等活动。进行存取,修改等活动。动动态态转转储储:指指转转储储期期间间允允许许对对DB进进行行存存取取,修修改改,即即转转储储与与用用户户事务并发执行。事务并发执行。海量转储海量转储:每次全部转储:每次全部转储DBDB中的数据。中的数据。增量转储增量转储:每次只转储更新过的数据。:每次只转储更新过的数据。转储方式分为:转储方式分为:转储类型:转储类型:数据库镜象数据库镜象:DBMS自动自动把数据库从一个把数据库从一个磁盘复制到另一个磁磁盘复制到另一个磁 盘上,这样得到的数据库副本称为数据库盘上,这样得到的数据库副本称为数据库镜象。镜象。数据库数据库镜象的作用:镜象的作用:有助于解决因有助于解决因介质故障而被破坏的数据库的恢复介质故障而被破坏的数据库的恢复。一旦出现介质故障,一旦出现介质故障,DBMSDBMS就会自动地利用就会自动地利用镜象镜象磁盘进行磁盘进行 数据库的恢复,不必关闭系统和重装数据库副本。数据库的恢复,不必关闭系统和重装数据库副本。有利于有利于事务的并发控制。事务的并发控制。当一个加排他锁修改数据库时,其他用户可以读当一个加排他锁修改数据库时,其他用户可以读数据库数据库 镜象,而不必等待该用户释放镜象,而不必等待该用户释放锁。锁。减少减少DBA转储数据库或重装数据库副本的负担。转储数据库或重装数据库副本的负担。数据库镜象数据库镜象2、建立日志文件、建立日志文件 日志文件是用来日志文件是用来记录事务对数据库更新操作的文件记录事务对数据库更新操作的文件。系系统统把把事事务务开开始始,事事务务结结束束及及对对DB删删除除、插插入入、修修改改的的每每一一次次操操作为一条记录写入日志文件。作为一条记录写入日志文件。日志文件的内容:日志文件的内容:执行者的事务标识,操作类型,更新前的旧数据,更新后的数执行者的事务标识,操作类型,更新前的旧数据,更新后的数据,更新日期和更新时间等。据,更新日期和更新时间等。日志文件在数据库恢复起着重要的作用:日志文件在数据库恢复起着重要的作用:可以用来进行可以用来进行事务故障恢复和系统故障恢复,并协助后备副事务故障恢复和系统故障恢复,并协助后备副本进行介质故障恢复。本进行介质故障恢复。3、恢复方法、恢复方法一旦故障发生,通常根据不同的故障进行不同的恢复处理:一旦故障发生,通常根据不同的故障进行不同的恢复处理:1)事务故障的恢复事务故障的恢复事事务务故故障障是是指指事事务务在在运运行行至至正正常常终终止止点点前前被被终终止止,这这时时恢恢复复子子系系统应统应撤消撤消(UNDOUNDO)此事务已对此事务已对DBDB进行的修改。做法:进行的修改。做法:.反向扫描日志文件(从后向前)查找该事务的更新操作。反向扫描日志文件(从后向前)查找该事务的更新操作。.对对该该事事务务的的更更新新操操作作执执行行逆逆操操作作(插插入入删删除除),将将日日志志记录中的记录中的“更新前的值更新前的值”写入数据库中。写入数据库中。2 2)系统故障的恢复系统故障的恢复 系系统统故故障障的的恢恢复复造造成成数数据据库库不不一一致致状状态态的的原原因因有有二二:一一是是一一些些未未完完成成事事务务对对数数据据库库的的更更新新已已写写入入数数据据库库。二二是是一一些些已已提提交交事事务务对对数据库的更新留在缓冲区未写入数据库。数据库的更新留在缓冲区未写入数据库。因此,恢复操作就是要因此,恢复操作就是要撤消撤消故障发生时故障发生时未完成的事务未完成的事务,重做已完重做已完成的事务。成的事务。做法:做法:.正向扫描正向扫描日志文件(从前向后)查找在故障前已提交的事务,将日志文件(从前向后)查找在故障前已提交的事务,将事务标记记入重做(事务标记记入重做(REDOREDO)队列;将故障前尚未完成事务的标记记队列;将故障前尚未完成事务的标记记入撤消队列。入撤消队列。.对撤消队列做撤消处理(对撤消队列做撤消处理(UNDOUNDO),),对重做队列做重做处理对重做队列做重做处理(REDOREDO)。)。事务故障和系统故障的恢复都是由恢复子系统自动完成。事务故障和系统故障的恢复都是由恢复子系统自动完成。3 3)介质故障的恢复介质故障的恢复 发生介质故障后,磁盘上的数据库和日志文件都被破坏,恢发生介质故障后,磁盘上的数据库和日志文件都被破坏,恢复的方法是重装数据库,然后重做已完成的事务。做法:复的方法是重装数据库,然后重做已完成的事务。做法:.装入最新的后备数据库副本和相应的日志文件,使数据库装入最新的后备数据库副本和相应的日志文件,使数据库恢复到最近一次转储时的一致状态。恢复到最近一次转储时的一致状态。.装入有关的日志文件副本,重做已完成的事务。装入有关的日志文件副本,重做已完成的事务。介质故障的恢复需要介质故障的恢复需要DBA介入,重装数据库和日志文件副本,介入,重装数据库和日志文件副本,并执行恢复命令,恢复操作由并执行恢复命令,恢复操作由DBMS完成。完成。4)计算机病毒的恢复:用杀毒软件杀毒。)计算机病毒的恢复:用杀毒软件杀毒。第第6章章 课外练习题课外练习题一一.填空题填空题1.事务的性质有事务的性质有_、_、_、和、和_.2.DB的并发控制通常会带来的并发控制通常会带来_、_和和_三类问题三类问题.解决这三解决这三类问题采用类问题采用_技术。技术。3.常用的对事务的封锁有常用的对事务的封锁有_和和_.4.对对DB的保护主要涉及的保护主要涉及4个方面的内容个方面的内容_、_、_和和_.5.如果一个事务并发控制的结果与某一串行调度执行结果等价如果一个事务并发控制的结果与某一串行调度执行结果等价,则称这个并发则称这个并发调度为调度为_调度调度.6.除了计算机病毒外,数据库系统中常见的三类故障是除了计算机病毒外,数据库系统中常见的三类故障是_故障、故障、_故障和故障和_故障。故障。二二.判断题判断题1.为了保证关系数据库中数据的实体完整性,必须要定义关系的主键。(为了保证关系数据库中数据的实体完整性,必须要定义关系的主键。()2.利用复制方法建立的利用复制方法建立的DB副本,主要是保证数据的完整性。(副本,主要是保证数据的完整性。()3.串行化调度是事务并发调度正确性的准则。(串行化调度是事务并发调度正确性的准则。()4.遵循两段封锁协议的事务的任何并发调度都是可串行化的调度。(遵循两段封锁协议的事务的任何并发调度都是可串行化的调度。()5.数据库中的数据库中的“日志日志”文件可以用于对数据库的恢复。(文件可以用于对数据库的恢复。()6.防止未经授权的用户恶意地存取数据库中的数据,这是数据库中保证数据完防止未经授权的用户恶意地存取数据库中的数据,这是数据库中保证数据完整性要解决的问题。(整性要解决的问题。()7.在数据库中对用户授权与回收,可以保证对数据并发操作的正确性。(在数据库中对用户授权与回收,可以保证对数据并发操作的正确性。()

    注意事项

    本文(第6章 数据库的保护.ppt)为本站会员(高校教****PT)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开