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