数据库保护课件.ppt

上传人(卖家):三亚风情 文档编号:3325390 上传时间:2022-08-20 格式:PPT 页数:46 大小:406.50KB
下载 相关 举报
数据库保护课件.ppt_第1页
第1页 / 共46页
数据库保护课件.ppt_第2页
第2页 / 共46页
数据库保护课件.ppt_第3页
第3页 / 共46页
数据库保护课件.ppt_第4页
第4页 / 共46页
数据库保护课件.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、第六讲第六讲 数据库保护数据库保护 本讲将讨论数据库的安全性、完整性、并发控本讲将讨论数据库的安全性、完整性、并发控制及数据库的恢复问题。制及数据库的恢复问题。本讲的重点是介绍事务概念,并在此基础上讨本讲的重点是介绍事务概念,并在此基础上讨论并发控制和恢复问题。论并发控制和恢复问题。第1页,共46页。数据库的安全性数据库的安全性 数据库中的数据是重要的资源,它需要被共享,数据库中的数据是重要的资源,它需要被共享,但同时需要进行保护。但同时需要进行保护。数据库的安全性是指对数据库进行保护,防止数据库的安全性是指对数据库进行保护,防止非法用户的使用而造成的数据泄漏、更改或破非法用户的使用而造成的数

2、据泄漏、更改或破坏。坏。第2页,共46页。安全性控制的一般方法安全性控制的一般方法 用户标识和鉴定用户标识和鉴定 存取控制存取控制 密码存储密码存储第3页,共46页。安全性控制的一般方法安全性控制的一般方法 用户标识和鉴定用户标识和鉴定用户名:SA口令:*有各种口令确定方法有各种口令确定方法第4页,共46页。安全性控制的一般方法安全性控制的一般方法 存取控制存取控制 对用户授权对用户授权 存取权限的两个要存取权限的两个要素:数据对象,操素:数据对象,操作类型作类型关系系统中的存取权限关系系统中的存取权限数据对象操作类型模式模式外模式内模式建立、修改、检索建立、修改、检索建立、修改、检索数据表属

3、性列检索、插入、修改、删除检索、插入、修改、删除GRANT SELECT ON student TO huang第5页,共46页。安全性控制的一般方法(其他方法)安全性控制的一般方法(其他方法)密码存储密码存储 定义视图定义视图 审计审计第6页,共46页。ORACLE的安全性措施的安全性措施系统权限系统权限角色角色CONNECTRESOURCE DBA数据库对象权限数据库对象权限表级表级行级(通过视图实现)行级(通过视图实现)列级(通过视图实现)列级(通过视图实现)审计审计其他其他触发器触发器第7页,共46页。数据库的完整性数据库的完整性 数据库的完整性是指数据的正确性和相容性。数据库的完整性

4、是指数据的正确性和相容性。用于防止合法用户向数据库中加入不合语义的用于防止合法用户向数据库中加入不合语义的数据。数据。通过在数据库的数据上规定完整性约束条件来通过在数据库的数据上规定完整性约束条件来实现实现第8页,共46页。完整性约束条件的分类完整性约束条件的分类 按作用的对象分按作用的对象分 列级列级 元组级元组级 关系级关系级 按发挥作用的时机分按发挥作用的时机分 静态静态 动态动态 组合起来共有六类组合起来共有六类第9页,共46页。完整性约束条件的分类(含义)完整性约束条件的分类(含义)静态列级约束静态列级约束列的定义(类型、格式、值域、空值)列的定义(类型、格式、值域、空值)静态元组级

5、约束静态元组级约束元组各个列值之间应该满足的条件(如:发货量不得高于订货量)元组各个列值之间应该满足的条件(如:发货量不得高于订货量)静态关系级约束静态关系级约束实体完整性约束、参照完整性约束、函数依赖约束、统计约束(如:经理的工资实体完整性约束、参照完整性约束、函数依赖约束、统计约束(如:经理的工资不得高于职工平均工资的不得高于职工平均工资的5倍)倍)动态列级约束动态列级约束修改列定义时的约束(原来允许空值、想改成不允许空值,但修改列定义时的约束(原来允许空值、想改成不允许空值,但),修改列值时的约束),修改列值时的约束(如:只许比原来高,不许比原来低)(如:只许比原来高,不许比原来低)动态

6、元组级约束动态元组级约束元组新旧值之间应满足的约束条件(新工资元组新旧值之间应满足的约束条件(新工资=原工资原工资+1.5*工龄)工龄)动态关系级约束动态关系级约束关系变化前后应满足的约束条件,如事务一致性、原子性关系变化前后应满足的约束条件,如事务一致性、原子性第10页,共46页。数据库完整性控制机制数据库完整性控制机制 提供定义功能提供定义功能 如:提供定义关系主码的功能如:提供定义关系主码的功能 提供自动检查功能提供自动检查功能 如:插入、修改时,如:插入、修改时,DBMS自动对主码的值进行检查自动对主码的值进行检查 提供保证措施提供保证措施 如:拒绝插入主码属性为空的元组如:拒绝插入主

7、码属性为空的元组第11页,共46页。SQL Server中的完整性控制机制中的完整性控制机制 上机查看上机查看HELP第12页,共46页。事务事务(Transaction)事务是为完成一次任务所执行的一个操作序列。事务是为完成一次任务所执行的一个操作序列。事务通常从事务通常从BEGIN TRANSACTION开始,以开始,以COMMIT或或ROLLBACK终止。终止。以以COMMIT结束:事务执行成功(又称事务提交或事务交结束:事务执行成功(又称事务提交或事务交托),它对数据库的所有改变从此永远存在,并对所有用户托),它对数据库的所有改变从此永远存在,并对所有用户来说也都是可见;来说也都是可见

8、;以以ROLLBACK结束:事务执行不成功,在这种情况下,事务结束:事务执行不成功,在这种情况下,事务中所执行过的那些操作都被撤销,数据库恢复到事务开始执中所执行过的那些操作都被撤销,数据库恢复到事务开始执行之前的状态。行之前的状态。事务是执行并发控制的基本单位。事务是执行并发控制的基本单位。第13页,共46页。事务的特点(事务的事务的特点(事务的ACID性质)性质)原子性(原子性(Atomicity):原子性要求事务的所有操作要么都被):原子性要求事务的所有操作要么都被执行,要么都不执行;执行,要么都不执行;一致性(一致性(Consistency):事务将数据库由一个一致状态变为另):事务将

9、数据库由一个一致状态变为另一个一致状态。一致性允许数据库在执行一个事务的期间存在不一个一致状态。一致性允许数据库在执行一个事务的期间存在不一致状态,但必须保证在事务结束时是一致的;一致状态,但必须保证在事务结束时是一致的;隔离性(隔离性(Isolation):并发事务要求相互隔离。即当不同事务并):并发事务要求相互隔离。即当不同事务并发访问数据库时,不应产生相互影响;发访问数据库时,不应产生相互影响;持久性(持久性(Duralility):成功执行的事务结果要被永久保):成功执行的事务结果要被永久保留,即使是在数据库系统遇到各种硬件错误(如磁头损留,即使是在数据库系统遇到各种硬件错误(如磁头损

10、坏)的情形下也要如此。坏)的情形下也要如此。第14页,共46页。事务的原子性事务的原子性考查转账事务:首先要执行资金提取操作,然后则是资金考查转账事务:首先要执行资金提取操作,然后则是资金存入操作,这样才能将钱从一个账户转移到另一个账户。存入操作,这样才能将钱从一个账户转移到另一个账户。如果只有资金提取操作而没有资金存入操作,那就会破坏如果只有资金提取操作而没有资金存入操作,那就会破坏一致性:因为所有账户下的资金总数被改变了(即钱丢失一致性:因为所有账户下的资金总数被改变了(即钱丢失了)。为了避免这种事情发生,事务处理要求提取操作和了)。为了避免这种事情发生,事务处理要求提取操作和存入操作要么

11、都执行,要么都不执行。这个属性称为原子存入操作要么都执行,要么都不执行。这个属性称为原子性。性。另外,某些更新操作也可能会破坏数据库一致性。如机另外,某些更新操作也可能会破坏数据库一致性。如机票订购系统中,如果在某次航班已经没有空位的情况下票订购系统中,如果在某次航班已经没有空位的情况下执行定票操作,就将导致数据库状态的不一致性。这种执行定票操作,就将导致数据库状态的不一致性。这种对数据库的更新操作必须能使数据库从一个一致性状态对数据库的更新操作必须能使数据库从一个一致性状态转换到另一个一致性状态的性质被称为一致性保护。转换到另一个一致性状态的性质被称为一致性保护。第15页,共46页。并发事务

12、引起的不一致性并发事务引起的不一致性 更新丢失更新丢失:两个事务两个事务T1和和T2,读入同一数据进行,读入同一数据进行修改,一个事务的修改结果破坏了另一个事务修改,一个事务的修改结果破坏了另一个事务的修改结果。(订票)的修改结果。(订票)执行次序T1T21temp:=空位数;2temp:=空位数;3temp:=temp-14temp:=temp-15空位数:=temp6空位数:=temp第16页,共46页。并发事务引起的不一致性并发事务引起的不一致性 脏读脏读:事务事务T1修改某一数据,事务修改某一数据,事务T2读取该数据,读取该数据,由于事务由于事务T1的撤销使得事务的撤销使得事务T2读到

13、的数据是错读到的数据是错误的数据。误的数据。执行次序T1T21temp1:=x;2temp1:=temp1+503x:=temp14temp:=x5rollback;设x(库存量)初值为100,T2读到的X=?第17页,共46页。并发事务引起的不一致性并发事务引起的不一致性 不能重复读不能重复读:事务事务T1读取某一数据,由于事务读取某一数据,由于事务T2,对该数据进行了修改,导致事务对该数据进行了修改,导致事务T1第二次读该第二次读该数据时与第一次读出的结果不一致。数据时与第一次读出的结果不一致。执行次序T1T21temp:=x;2temp:=x;3temp:=temp+14x:=temp5

14、temp:=x;设x初值为100,T1第二次读时,X=?第18页,共46页。并发事务引起的不一致性并发事务引起的不一致性 不能重复读不能重复读:事务事务T1按一定条件读取某些数据记录后,由于事务按一定条件读取某些数据记录后,由于事务T2插入或插入或删除了一些记录,导致事务删除了一些记录,导致事务T1再按同样的条件读取数据时,发现多了一些再按同样的条件读取数据时,发现多了一些纪 录 或 者 原 来 的 某 些 记 录 神 秘 消 失。这 种 现 象 也 称 为 幻 行纪 录 或 者 原 来 的 某 些 记 录 神 秘 消 失。这 种 现 象 也 称 为 幻 行(phantom row)。执行次序

15、T1T21Select*from s2Insert into s34Or Delete from s5Select*from s开始时查出10条记录,再查一次变成了11条记录第19页,共46页。一致性的三个级别一致性的三个级别 一级一致性:保证不会发生更新丢失。一级一致性:保证不会发生更新丢失。(更新丢失是严重错误)(更新丢失是严重错误)二级一致性:保证不会发生脏读。二级一致性:保证不会发生脏读。三级一致性:保证可重复读。三级一致性:保证可重复读。第20页,共46页。并发控制并发控制 封锁机制封锁机制并发控制的主要方法是采用封锁机制。封锁机制是指并发控制的主要方法是采用封锁机制。封锁机制是指1

16、、任何想访问某数据库对象的事务(无论这种访问是读还是、任何想访问某数据库对象的事务(无论这种访问是读还是写),都必须向系统申请一个锁。只有当获得锁后,才能访写),都必须向系统申请一个锁。只有当获得锁后,才能访问这个对象。在此其间,其它想访问该对象的事务必须等到问这个对象。在此其间,其它想访问该对象的事务必须等到持有锁的事务终止之后,才能获得该对象的锁。持有锁的事务终止之后,才能获得该对象的锁。2、一个事务结束时,才释放它的锁、一个事务结束时,才释放它的锁第21页,共46页。锁模式锁模式锁的两种基本类型锁的两种基本类型排它锁(排它锁(Exclusive lock):事务事务T对数据加排它锁后,其

17、他事务不能再对该数据加对数据加排它锁后,其他事务不能再对该数据加任何锁。一般对数据更新时采用排它锁。任何锁。一般对数据更新时采用排它锁。共享锁(共享锁(Share lock):事务):事务T对数据加共享锁后,其他事务仍可以再对该数据加共享锁。对数据加共享锁后,其他事务仍可以再对该数据加共享锁。如果仅仅是读取数据,则采用共享锁。如果仅仅是读取数据,则采用共享锁。锁的相容性锁的相容性 事务2事务1XS没加锁X S 没加锁 第22页,共46页。运用三级封锁协议实现三各级别的一致性运用三级封锁协议实现三各级别的一致性封锁协议X锁S锁一致性保证立即结束立即结束一级二级三级123*立即是指操作后立即释放锁

18、,结束指事务结束后才释放锁第23页,共46页。封锁协议举例封锁协议举例一级封锁协议保证一级一致性(防止更新丢失)一级封锁协议保证一级一致性(防止更新丢失)执行次序T1T21请求排它锁2temp:=x;3请求排它锁4temp:=temp+1等待5X:=temp等待6commit等待7释放锁等待8获得锁9temp:=x;10temp:=temp+111X:=temp12commit设x(库存量)初值为100,T1,T2结束后,X=?第24页,共46页。封锁协议举例封锁协议举例二级封锁协议保证二级一致性(防止脏读)二级封锁协议保证二级一致性(防止脏读)执行次序T1T21请求排它锁2temp:=x;3

19、请求共享锁4temp:=temp+50等待5。等待6rollback等待7释放锁等待8获得共享锁9temp:=x;10。11。12commit设x(库存量)初值为100,T2读取的X=?第25页,共46页。封锁协议举例封锁协议举例三级封锁协议保证三级一致性(保证可重复读)三级封锁协议保证三级一致性(保证可重复读)执行次序T1T21请求共享锁2temp:=x;3。请求排他锁4。等待5temp:=x;。等待6commit等待7释放锁等待8获得共享锁9temp:=x;10temp:=temp+1011x:=temp12commit设x(库存量)初值为100,T2读取的X=?第26页,共46页。思考题

20、思考题 举例说明为什么二级封锁协议不能保证三级一举例说明为什么二级封锁协议不能保证三级一致性。致性。第27页,共46页。两阶段封锁协议两阶段封锁协议如果规定在一个事务中所有解锁操作必须在任何加锁操作如果规定在一个事务中所有解锁操作必须在任何加锁操作之后,则这种封锁策略称为两阶段封锁协议。之后,则这种封锁策略称为两阶段封锁协议。两阶段封锁协议将事务分为加锁和解锁两个阶段,并且这两个阶两阶段封锁协议将事务分为加锁和解锁两个阶段,并且这两个阶段不能交错进行。也就是说,执行完解锁操作后事务就结束了。段不能交错进行。也就是说,执行完解锁操作后事务就结束了。不遵守两阶段封锁协议可能会引起不遵守两阶段封锁协

21、议可能会引起脏读脏读和和不可重复读不可重复读,这是,这是因为,在这种情况下事务中释放某个对象上的锁,而这因为,在这种情况下事务中释放某个对象上的锁,而这个事务又最终夭折的话,可能导致在解锁和事务夭折之个事务又最终夭折的话,可能导致在解锁和事务夭折之间,其它事务读到该对象上的数据是脏数据。为了防止间,其它事务读到该对象上的数据是脏数据。为了防止这种错误发生,大多数商用数据库管理系统都采用了严这种错误发生,大多数商用数据库管理系统都采用了严格的两阶段封锁协议。格的两阶段封锁协议。第28页,共46页。两阶段封锁协议两阶段封锁协议锁的数量时间事务开始事务结束第29页,共46页。活锁活锁 活锁活锁:事务

22、:事务T1封锁了数据封锁了数据R,事务,事务T2请求封锁请求封锁数据数据R,T2等待,等待,T3、T4、T5也请求封锁也请求封锁R,T1释放了数据释放了数据R上的锁后,系统调度批准上的锁后,系统调度批准T3的请求,的请求,有可能造成,有可能造成T2永久等待,形成永久等待,形成活锁。活锁。避免活锁的方法避免活锁的方法:采用先来先服务的调度策略。:采用先来先服务的调度策略。第30页,共46页。死锁死锁(Deadlock)死锁死锁:多个事务封锁了对方所需的数据,同时请求已被对方封锁的:多个事务封锁了对方所需的数据,同时请求已被对方封锁的数据,从而造成循环等待关系,导致没有一个事务可以被执行,数据,从

23、而造成循环等待关系,导致没有一个事务可以被执行,这就是所谓的死锁。这就是所谓的死锁。避免或解决死锁的方法避免或解决死锁的方法:可采取以下方法之一来避免发生死:可采取以下方法之一来避免发生死锁,或在死锁发生后解除死锁。锁,或在死锁发生后解除死锁。(1)要求事务一次性将所要使用的数据全部加锁,不成功就不执行。要求事务一次性将所要使用的数据全部加锁,不成功就不执行。(2)预先规定一个封锁顺序,要求所有事务按相同的次序对数据进行封锁。预先规定一个封锁顺序,要求所有事务按相同的次序对数据进行封锁。(3)系统不采取任何避免死锁的措施,而是采取某种方法检测系统中是否发生死锁。在系统不采取任何避免死锁的措施,

24、而是采取某种方法检测系统中是否发生死锁。在死锁发生时,从形成循环锁的事务中选择一个事务并终止它,从而释放该事务的死锁发生时,从形成循环锁的事务中选择一个事务并终止它,从而释放该事务的锁,使得其他事务得以执行。根据事务的原子性,被选中的事务必须回滚。锁,使得其他事务得以执行。根据事务的原子性,被选中的事务必须回滚。第31页,共46页。可串行化可串行化 串行调度串行调度:使事务一个接一个,没有交叉地执:使事务一个接一个,没有交叉地执行,这种事务调度方法称为串行调度。串行调行,这种事务调度方法称为串行调度。串行调度的事务执行结果是正确的。但串行调度的并度的事务执行结果是正确的。但串行调度的并发程度为

25、发程度为0。公理公理:几个事务并行执行的结果是正确的,当:几个事务并行执行的结果是正确的,当且仅当其结果与某一串行调度的执行结果相同。且仅当其结果与某一串行调度的执行结果相同。定义定义:若某组事务的交叉调度产生的结果与这:若某组事务的交叉调度产生的结果与这些事务的某一串行调度的结果相同,则这个交些事务的某一串行调度的结果相同,则这个交叉调度是可串行化的。叉调度是可串行化的。第32页,共46页。锁的粒度与并发程度锁的粒度与并发程度 锁的粒度(锁的粒度(granularity)被封锁的对象的大小称为锁的粒度。按由大到小的顺序,可被封锁的对象的大小称为锁的粒度。按由大到小的顺序,可分为:数据库,关系

26、,元组,属性。如果一个数据库系统允分为:数据库,关系,元组,属性。如果一个数据库系统允许多种粒度的锁,则称该数据库系统是多粒度锁的系统。多许多种粒度的锁,则称该数据库系统是多粒度锁的系统。多粒度锁的应用可以提高系统的并发程度。粒度锁的应用可以提高系统的并发程度。锁的粒度与并发程度的关系锁的粒度与并发程度的关系 锁的粒度越大,数据库可封锁的数据单元数越少,并发程度锁的粒度越大,数据库可封锁的数据单元数越少,并发程度越低,封锁机构越简单,为完成封锁的开销越小。反之,封越低,封锁机构越简单,为完成封锁的开销越小。反之,封锁的粒度越小,则可封锁的数据单元数越多,并发程度越高,锁的粒度越小,则可封锁的数

27、据单元数越多,并发程度越高,同时封锁机构也越复杂,为完成封锁的开销也越大。同时封锁机构也越复杂,为完成封锁的开销也越大。第33页,共46页。多粒度锁的锁模式多粒度锁的锁模式除共享锁和排它锁之外,还引入了意向锁除共享锁和排它锁之外,还引入了意向锁(Intention lock),意向,意向锁的引入旨在降低实现封锁所需要的系统开销。锁的引入旨在降低实现封锁所需要的系统开销。基于关系和元组粒度的多粒度锁模式基于关系和元组粒度的多粒度锁模式锁名称粒度说明共享锁S元组,关系排它锁X元组,关系意向共享锁IS关系表示将用共享锁锁定关系上的某些元组,元祖上的锁必须显示获得。意向p排他锁IX关系表示将用排他锁锁

28、定关系上的某些元组,元祖上的锁必须显示获得。共享意向排它锁SIX关系关系被共享锁定,并允许对关系中的某些元组施加排它锁。第34页,共46页。多粒度锁的相容矩阵多粒度锁的相容矩阵已加锁欲加锁SXISIXSIXSXISIXSIX第35页,共46页。多粒度锁模式下事务调度的可串行性多粒度锁模式下事务调度的可串行性 在多粒度锁模式下要保证事务调度的可串行性,在多粒度锁模式下要保证事务调度的可串行性,必须在遵守二阶段协议和上述相容矩阵的前提必须在遵守二阶段协议和上述相容矩阵的前提下,再遵守以下规则:下,再遵守以下规则:若想获得小粒度层次上的若想获得小粒度层次上的S锁,则相应大粒度层次必须先被锁锁,则相应

29、大粒度层次必须先被锁定在定在IS模式下。模式下。若想获得小粒度层次上的若想获得小粒度层次上的X锁,则相应大粒度层次必须先被锁锁,则相应大粒度层次必须先被锁定在定在IX或或SIX模式下。模式下。加锁次序是从大粒度到小粒度,解锁次序相反。加锁次序是从大粒度到小粒度,解锁次序相反。在支持继承层次的系统中,加锁也具有继承性。在支持继承层次的系统中,加锁也具有继承性。第36页,共46页。多粒度锁模式下的封锁机制举例多粒度锁模式下的封锁机制举例执行次序事务T1事务T21IS锁定数据库2IS锁定关系R3S锁定关系R中的元组t1IX锁定数据库4。SIX锁定关系R5读t1中的数据S锁定关系R中的所有元组6com

30、mitX锁定关系R中的元组t27释放t1上的S锁更新元组t28释放关系R上的IS锁9释放数据库上的IS锁commit10释放锁11无需等待,并发执行。若不采用多粒度锁呢?第37页,共46页。采用封锁机制进行并发控制的代价采用封锁机制进行并发控制的代价基于封锁的并发控制策略造成额外的系统开销:基于封锁的并发控制策略造成额外的系统开销:维护锁的开销。即使只有只读事务也必须维护维护锁的开销。即使只有只读事务也必须维护锁;锁;事务要经常性地等待其它事务的终止;事务要经常性地等待其它事务的终止;死锁检测过程所花费的新的系统开销;死锁检测过程所花费的新的系统开销;在死锁情况下,回滚(夭折)某个事务的开销在

31、死锁情况下,回滚(夭折)某个事务的开销也不可忽视。也不可忽视。第38页,共46页。乐观的并发控制策略乐观的并发控制策略 乐观的并发控制策略乐观的并发控制策略:不对数据进行封锁,允:不对数据进行封锁,允许所有的事务运行,直到事务想提交对数据库许所有的事务运行,直到事务想提交对数据库的改变时,系统启动一个证实过程来检测是否的改变时,系统启动一个证实过程来检测是否可能发生冲突,如果检测到冲突,则回滚该事可能发生冲突,如果检测到冲突,则回滚该事务。务。乐观并发控制的事务阶段乐观并发控制的事务阶段读阶段读阶段证实阶段证实阶段写阶段写阶段第39页,共46页。读阶段读阶段 将事务访问的所有数据库对象拷贝到事

32、务的私将事务访问的所有数据库对象拷贝到事务的私有空间,所有更新操作均在私有空间进行,因有空间,所有更新操作均在私有空间进行,因而不必加锁。系统为事务保持两个集合。读集而不必加锁。系统为事务保持两个集合。读集合(事务读出的所有数据库对象)和写集合合(事务读出的所有数据库对象)和写集合(事务更新的所有数据库对象),读阶段完成(事务更新的所有数据库对象),读阶段完成后,加入一个时间戳(事务结束读、写阶段的后,加入一个时间戳(事务结束读、写阶段的时刻),进入验证阶段。时刻),进入验证阶段。读阶段实际上是事务的本地化执行阶段。读阶段实际上是事务的本地化执行阶段。第40页,共46页。证实阶段证实阶段验证事

33、务与其他事务(早期事务)有无冲突,若无冲突,则可提验证事务与其他事务(早期事务)有无冲突,若无冲突,则可提交事务,进入写阶段。否则,回滚事务。交事务,进入写阶段。否则,回滚事务。验证阶段根据下述三个准则来判断有无冲突,只要符合其中一个,验证阶段根据下述三个准则来判断有无冲突,只要符合其中一个,即可保证事务是可串行化的(即,没有冲突):即可保证事务是可串行化的(即,没有冲突):将事务将事务T的早期事务记为的早期事务记为T(由事务的时间戳确定)(由事务的时间戳确定)准则一:在准则一:在T开始读阶段之前,开始读阶段之前,T都结束了写阶段都结束了写阶段准则二:准则二:T的写集合不能与的写集合不能与T的

34、读集合相交,并且,在的读集合相交,并且,在T开始写阶段之前,开始写阶段之前,T结束其写阶段。结束其写阶段。准则三:准则三:T的写集合不能与的写集合不能与T的读集合或写集合相交的读集合或写集合相交第41页,共46页。写阶段写阶段 将事务的本地更新,提交给数据库。将事务的本地更新,提交给数据库。第42页,共46页。数据库的恢复数据库的恢复 由于各种原因,事务的由于各种原因,事务的ACID特性会被破坏,特性会被破坏,从而引起数据库的错误。此时需要将数据库恢从而引起数据库的错误。此时需要将数据库恢复到正确的状态。复到正确的状态。回滚回滚Rollback是一种特殊的恢复。造成回滚的是一种特殊的恢复。造成

35、回滚的原因是事务的失败,或称事务故障。原因是事务的失败,或称事务故障。造成数据库错误的其他原因:造成数据库错误的其他原因:软件故障:如操作系统错误,数据库系统错误软件故障:如操作系统错误,数据库系统错误 硬件故障:如硬盘故障,自然灾害硬件故障:如硬盘故障,自然灾害第43页,共46页。恢复的基本原理恢复的基本原理-冗余冗余 建立冗余的两种方式:建立冗余的两种方式:数据库备份或转储:定期将数据库复制到其他存储设备上保存数据库备份或转储:定期将数据库复制到其他存储设备上保存起来的过程,保存的数据库数据叫作备份,备份或转储按备起来的过程,保存的数据库数据叫作备份,备份或转储按备份时是否要停止对数据库的

36、操作可分为静态备份和动态备份。份时是否要停止对数据库的操作可分为静态备份和动态备份。静态备份可保证备份数据的一致性。而动态备份由于备份时静态备份可保证备份数据的一致性。而动态备份由于备份时可以对数据库进行更新,所以不能保证备份数据的一致性。可以对数据库进行更新,所以不能保证备份数据的一致性。需要通过它手段和动态备份数据相结合,来保证恢复的正确需要通过它手段和动态备份数据相结合,来保证恢复的正确性。性。日志文件:日志文件是用来记录对数据库的每一次更新活动的日志文件:日志文件是用来记录对数据库的每一次更新活动的文件,使用动态备份时必须结合日志文件才能有效地恢复数文件,使用动态备份时必须结合日志文件

37、才能有效地恢复数据库。使用静态备份时,也能够利用日志文件恢复备份后到据库。使用静态备份时,也能够利用日志文件恢复备份后到故障前这一段时间内已递交的事务。故障前这一段时间内已递交的事务。第44页,共46页。恢复方式的选择恢复方式的选择 利用日志文件由数据库管理系统自动恢复利用日志文件由数据库管理系统自动恢复 利用数据库备份恢复利用数据库备份恢复 利用数据库备份和日志文件恢复利用数据库备份和日志文件恢复第45页,共46页。恢复方式的选择恢复方式的选择最后一次静态备份系统失效,采取恢复行动时间日志文件利用静态备份可以正确恢复到该时间点利用日志文件可以恢复已提交的事务掉电硬盘损坏病毒破坏数据第46页,共46页。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(数据库保护课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|