故障恢复 事务的

故障恢复 事务的

ID:39132175

大小:1.55 MB

页数:5页

时间:2019-06-25

故障恢复 事务的_第1页
故障恢复 事务的_第2页
故障恢复 事务的_第3页
故障恢复 事务的_第4页
故障恢复 事务的_第5页
资源描述:

《故障恢复 事务的》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、三种数据不一致:丢失修改:(写—写):一级封锁读“脏”数据:(写—读):二级封锁不可重复读:(读—写):三级封锁一级封锁协议:事务在修改数据之前先对其加X锁,直到事务结束才释放。二级封锁协议:一级协议的基础上,加上事务读数据之前先对其加S锁,读完后即可释放。三级封锁协议:一级协议的基础上,加事务读数据之前先对其加S锁,直到事务结束。三级封锁协议(保持数据的一致性)两段锁协议(保证并行调度可串行性)1.在数据库中为什么要并发控制?答:数据库是共享资源,通常有许多个事务同时在运行。当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。若对并发

2、操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。2.并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况?答:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读“脏’夕数据。(l)丢失修改(lostupdate)两个事务Tl和T2读入同一数据并修改,T2提交的结果破坏了(覆盖了)Tl提交的结果,导致Tl的修改被丢失。(2)不可重复读(Non一RepeatableRead)不可重复读是指事务Tl读取数据后,事务几执行更新操作,使Tl无法再现前一次读取结果。(3)读“脏”数据(

3、DirtyRead)读“脏’夕数据是指事务Tl修改某一数据,并将其写回磁盘,事务几读取同一数据后,Tl由于某种原因被撤销,这时Tl已修改过的数据恢复原值,几读到的数据就与数据库中的数据不一致,则几读到的数据就为“脏”数据,即不正确的数据。避免不一致性的方法和技术就是并发控制。最常用的技术是封锁技术。也可以用其他技术,例如在分布式数据库系统中可以采用时间戳方法来进行并发控制。3.什么是封锁?基本的封锁类型有几种?试述它们的含义。答:封锁就是事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在

4、事务T释放它的锁之前,其他的事务不能更新此数据对象。封锁是实现并发控制的一个非常重要的技术。排它锁:又称为写锁(eXclusivelock)若事务T对数据对象A加上X锁,则只允许T读取和修改A其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。共享锁:又称为读锁(Sharelock)若事务T对数据对象A加上S锁,T可以读取A其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。活锁:当某个事务请求对某一数据的排它性封锁时,由于其他事务对该数据的操作而使这个事务处于永久等待状态,这种状态称为活锁。先来先服务原则。死锁:系统中有两个或两个以上

5、的事务都处于等待状态,其中的每一个事务在它能够执行之前,都在等待着另一个事务解除封锁,结果造成任何一个事务都无法继续执行,这种状态称为死锁。一次封锁法和顺序封锁法。可串行化调度:多个事务的并发执行时正确的,当且仅当其结果与按某一次序串行的执行这些事务时的结果相同,称这种调度策略为可串行化的调度。可串行化的调度一定是正确的。4.如何用封锁机制保证数据的一致性?答:DBMS在对数据进行读、写操作之前首先对该数据执行封锁操作,例如下图中事务Tl在对A进行修改之前先对A执行xock(A),即对A加x锁。这样,当几请求对A加x锁时就被拒绝,几只能等待Tl释放A上的

6、锁后才能获得对A的x锁,这时它读到的A是Tl更新后的值,再按此新的A值进行运算。这样就不会丢失Tl的更新。DBMS按照一定的封锁协议,对并发操作进行控制,使得多个并发操作有序地执行,就可以避免丢失修改、不可重复读和读“脏’夕数据等数据不一致性。9.设Tl,T2,T3是如下的3个事务,设A的初值为0,Tl:A:=A+2;T2:A:=A*2;T3:A:=A**2;(A<-A*A)(l)若这3个事务允许并行执行,则有多少可能的正确结果,请一一列举出来。答:A的最终结果可能有2、4、8、16。因为串行执行次序有TlT2T3、TlT3T2、T2T1T3、T2T3T

7、l、T3T1T2、T3T2Tl。对应的执行结果是16、8·4·2·4·2。(2)请给出一个可串行化的调度,并给出执行结果最后结果A为16,是可串行化的调度。(4)若这3个事务都遵守两段锁协议,请给出一个不产生死锁的可串行化调度。1.试述事务的概念及事务的4个特性。答:事务:是作为单个逻辑工作单元执行的一系列数据库操作,操作序列作为一个整体一起向系统提交,要么都执行、要么都不执行,一个不可分割的操作单位。事务具有4个特性:ACID特性。原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。一致性:事务执行的结果必须是使数据库从一个一致

8、性状态变到另一个一致性状态。隔离性:一个事务的执行不能被其他事务干扰。即一个事务

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。