《并发控制》PPT课件

《并发控制》PPT课件

ID:38829363

大小:261.00 KB

页数:37页

时间:2019-06-20

《并发控制》PPT课件_第1页
《并发控制》PPT课件_第2页
《并发控制》PPT课件_第3页
《并发控制》PPT课件_第4页
《并发控制》PPT课件_第5页
资源描述:

《《并发控制》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、7.5并发控制第7章数据库保护技术1主要内容数据库并发操作带来的数据不一致问题锁锁协议封锁带来的问题:活锁和死锁并发操作的调度2并发控制数据库是一个可以供多个用户共同使用的共享资源。串行访问,每个时刻只能有一个用户应用程序对数据库进行存取,其它用户程序必须等待。缺点:制约数据库访问效率的瓶颈,不利于数据库资源的利用。并行访问,通过并发控制机制允许多个用户并发地访问数据库。3并发控制当多个用户并发地访问数据库时就会产生多个事务同时存取同一数据的情况。若对并发操作不加以控制就会造成错误地存取数据,破坏数据库的一致性。数据库的并发控制

2、机制是衡量数据库管理系统性能的重要技术标志。47.5.1DB并发操作带来的数据不一致问题例7.16在一个飞机订票系统中,可能会出现的业务:(1)甲售票点读航班X的机票余额数为A=25;(2)紧接着,乙售票点读同一航班X的机票余额数A=25;(3)甲售票点卖出一张机票,然后修改机票余额数A=A-1为24,并把A写回数据库;(4)乙售票点也卖出一张机票,同样接着修改机票余额数A=A-1为24,并把A写回数据库。设甲售票点对应于事务T1,乙售票点对应于事务T2,则上述事务过程的描述如图5时间T1T2DB中的A值t025t1read(A

3、)t2read(A)t3A:=A-1t4write(A)t524t6A:=A-1t7write(A)t824丢失修改(1)丢失修改6时间T1T2DB中的A值t025t1read(A)t2read(A)t3A:=A-10t4write(A)t515读过时数据(2)读过时数据7时间T1T2DB中的A值t025t1read(A)t2A:=A-10t3write(A)t4read(A)15t5ROLLBACKt625读“脏”数据(3)读“脏”数据8DB并发操作带来的三类数据不一致问题并发操作可能带来的数据不一致性情况有三种(1)丢失修改

4、(2)读过时数据(3)读“脏”数据9产生原因:并发操作破坏了事务的隔离性并发控制就是要通过正确的调度方式,使一个用户事务的执行不受其它事务的干扰,从而避免造成数据的不一致性。DB并发操作带来的三类数据不一致问题107.5.2锁定义锁是防止存取同一资源的用户之间出现不正确地修改数据或不正确地更改数据结构的一种机制。基本的锁方式有二种:排它锁(ExclusiveLocks,简记为X锁)共享锁(ShareLocks,简记为S锁)11(1)排它锁(X锁)当某个事务T为修改某个数据项A且不允许其它事务修改该数据项,或不允许其它事务对该数据

5、项加S锁时,则该事务可以对A加排它锁,排它锁又称为写锁。本事务:读A,修改A其它事务:在T释放A上的X锁之前不能读A和修改A12(2)共享锁(S锁)当某个事务T希望阻止其它事务修改正为它读取的某个数据项A时,则该事务可以对A加共享锁,共享锁又称为读锁。本事务:读A,不能修改A其它事务:加S锁读A,在T释放A上S锁之前不能修改A13SX-S×X××S锁和X锁的共存相容矩阵147.5.3锁协议当一个事务T要对某个项加锁时,还必须遵守某种规则,比如在什么条件下可以申请S锁或X锁,持锁时间如何确定、何时释放锁等。一般称这些规则为锁

6、协议(LockingProtocol)。对加锁方式规定不同的规则,就形成了不同的锁协议。不正确的并发操作可能带来的丢失修改、读过时数据和读“脏”数据等不一致性问题,三级锁协议在不同程度上可以解决这些问题。15(1)一级锁协议事务T在修改数据R之前必须先对数据R所在的项申请加X锁,在获得了X加锁后,直到该事务T结束时才释放所加的X锁。如果未获准加X锁,则该事务T进入等待状态,直到获准X加锁后该事务才继续执行。16事务T要修改数据R:申请加X锁?等待加X锁YNT结束释放X锁(1)一级锁协议本事务:读R,修改R;用COMMIT和ROL

7、LBACK释放X锁其它事务:在T结束前不能读R,也不能修改R作用:防止丢失修改17(2)二级锁协议二级锁协议除包括一级锁协议的内容外,还包括如下规则:事务T在读数据R之前必须先对数据R所在的项申请加S锁,在获得了S加锁后,读完数据R后即可释放所加的S锁。如果未获准加S锁,则该事务T进入等待状态,直到获准S加锁后该事务才继续执行。18事务T要读数据R:申请加S锁?等待加S锁读数据YN释放S锁(2)二级锁协议一级锁协议+本事务:读R,不能修改R;用UNLOCK释放S锁(不需等T结束)其它事务:可加S锁读R,不能修改R作用:防止丢失修

8、改,防止读“脏”数据19(3)三级锁协议三级锁协议除包括一级锁协议的内容外,还包括如下规则:事务T在读数据R之前必须先对数据R所在的项申请加S锁,在获得了S加锁后,直到该事务T结束时才释放所加的S锁。如果未获准加S锁,则该事务T进入等待状态,直到获准S加锁后该事

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

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

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