08数据库保护.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
08数据库保护.pptx08数据库保护.pptx

数据库技术与应用 袁宝库 yuanbaoku@bupt.edu.cn 数据库保护 事务的基本概念 并发控制 数据库备份与恢复 并发控制 并发控制概述 并发控制措施 封锁协议 死锁 并发调度的可串行性 两段锁协议 并发控制概述 数据库中的数据是一个共享的资源,因此会有很多用户同时使用数据库中的数据, 在多用户系统中,可能同时运行着多个事务,而事务的运行需要时间,并且事务中的操作是在一定的数据上进行的。 当系统中同时有多个事务在运行时,特别是当这些事务是对同一段数据进行操作时,彼此之间就有可能产生相互干扰的情况。 并发事务的相互干扰示例 A、B两个订票点恰巧同时办理同一架航班的飞机订票业务。设其操作过程及顺序如下: A订票点(事务A)读出航班目前的机票余额数,假设为10张; B订票点(事务B)读出航班目前的机票余额数,也为为10张; A订票点订出6张机票,修改机票余额为10-6 = 4,并将4写回到数据库中; B订票点订出5张机票,修改机票余额为10-5 = 5,并将5写回到数据库中; 丢失数据修改 读“脏”数据 不可重复读 产生“幽灵”数据 属于不可重复读的范畴。 指当事务T1按一定条件从数据库中读取了某些数据记录后,事务T2删除了其中的部分记录,或者在其中添加了部分记录,则当T1再次按相同条件读取数据时,发现其中莫名其妙地少了(对删除)或多了(对插入)一些记录。 这样的数据对T1来说就是“幽灵”数据或称“幻影”数据。 并发控制措施 控制目标:事务运行过程中尽可能隔离事务外操作对本事务数据环境的影响。 在数据库环境下,并发控制的主要方式是封锁机制,即加锁(Locking),加锁是一种并行控制技术,是用来调整对共享目标,如DB中共享的记录并行存取的技术。 基本的封锁类型 共享锁:指对于读操作(检索)来说,可以多个事务同时获得共享锁,但阻止其它事务对已获得共享锁的数据进行排它封锁。 排它锁:一旦一事务获得了对某一数据的排它锁,则任何其它事务再不能对该数据进行排它封锁,其它事务只能进入等待状态,直到第一个事务撤销了对该数据的封锁。 排它锁和共享锁的控制方式 T2 T1 X S 无锁 X No No Yes S No Yes Yes - Yes Yes Yes 封锁协议 在运用X锁和S锁对数据对象进行加锁时,还需要约定一些规则,如何时申请X锁或S锁、持锁时间、何时释放锁等。 称这些规则为封锁协议或加锁协议(Locking Protocol)。 对封锁方式规定不同的规则,就形成了各种不同级别的封锁协议。 不同级别的封锁协议达到的系统一致性级别不同。 一级封锁协议 对事务T要修改的数据加X锁,直到事务结束(包括正常结束和非正常结束)时才释放。 一级封锁协议可以防止丢失修改,并保证事务T是可恢复的 但不能保证可重复读和不读“脏”数据。 一级封锁协议示例 二级封锁协议 一级封锁协议加上对事务T对要读取的数据加S锁,读完后即释放S锁。 除了可以防止丢失修改外,还可以防止读“脏”数据。 但不能保证可重复读数据。 二级封锁协议示例 三级封锁协议 一级封锁协议加上事务T对要读取的数据加S锁,并直到事务结束才释放。 除了可以防止丢失修改和不读“脏”数据之外,还进一步防止了不可重复读。 三级封锁协议示例 不同级别的封锁协议总结 死锁 两个事务相互等待对方先释放资源,则会造成死锁。 预防死锁的方法 一次封锁法 一次封锁法是每个事务一次将所有要使用的数据全部加锁。 顺序封锁法 顺序封锁法是预先对数据对象规定一个封锁顺序,所有事务都按这个顺序封锁。 并发调度的可串行性 多个事务的并发执行是正确的,当且仅当其结果与按某一顺序的串行执行的结果相同,则我们称这种调度为可串行化的调度。 可串行性是并发事务正确性的准则,按这个准则,一个给定的并发调度,当且仅当它是可串行化的时,才认为是正确的调度。 两段锁协议 两段锁协议是实现可串行化调度的充分条件。 可以将每个事务分成两个时期:申请封锁期和释放封锁期,申请期申请要进行的封锁,释放期释放所占有的封锁。 在申请期不允许释放任何锁,在释放期不允许申请任何锁,这就是两段式封锁。 数据库备份与恢复 数据库故障的种类 数据库备份 数据库恢复 数据库故障的种类 事务内部的故障 事务故障意味着事务没有达到预期的终点(COMMIT或ROLLBACK),因此,数据库可能处于不正确的状态。 系统故障 指造成系统停止运转、系统要重启的故障。例如,硬件错误(CPU故障)、操作系统故障、突然停电等。 其它故障 介质故障或由计算机病毒引起的故障或破坏。 数据库备份 指定期或不定期地对数据库数据进行复制。 可以复制到本地机器上,也可以复制到其它机器上。 备份的介质可以是磁

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档