数据库中并发控制.ppt
《数据库中并发控制.ppt》由会员分享,可在线阅读,更多相关《数据库中并发控制.ppt(29页珍藏版)》请在三一办公上搜索。
1、第十四章,并发控制,了解并发访问带来的问题理解锁、锁定和锁定协议的相关概念理解活锁与死锁的概念理解锁的粒度掌握Oracle中的锁的分类及特点掌握通过SQL*Plus检测与解决锁争用,1,目标,事务的并发,在一般的数据库应用中,不太可能出现在一个时刻有且只有一个事务在操作数据库的情况,对于大多数数据库应用来说,往往都会出现两个或两个以上事务试图修改数据库中的同一个数据的情况,这种情况就被称为事务的并发。,2,事务并发带来的问题,锁与锁定,锁与锁定是实现并发控制的非常重要的技术。锁是多个用户能够同时操纵同一个数据源而不会出现数据不一致现象的重要保障,是防止其他事务访问指定的资源控制、实现并发控制的
2、一种主要手段。如果一个数据库对象被添加了锁,则此数据库对象就有了一定的访问限制,也就是说对此数据库对象进行了锁定操作。所谓锁定是数据库用来同步多个用户对同一个数据库对象访问的一种机制。通过锁定可以阻止其他事务造成的负面影响,当事务不再依赖锁定的数据资源时,可以将锁释放。,3,锁定的流程图,锁的基本类型,独占锁 独占锁是对锁定的资源只允许进行锁定操作的事务使用的,独占锁又称为写锁,表示如果某事务在数据库对象A上加了独占锁,则只允许该事务对A进行操作,其他任何事务都既不能对A进行操作或者加锁,直到该事务释放A上的独占锁为止。这就确保不会同时有多个事务对同一数据库对象进行操作。共享锁 共享锁是指对不
3、更改或不更新数据的读取操作的事务使用的,共享锁又称为读锁,它是非独占的,允许多个并发事务读取其锁定的数据库对象。如果某个事务在数据库对象A上加了共享锁,则只允许该事务读取A但不能更改A。其他任何其他事务也可以同时对A进行读取操作,但不能更改A,这样就确保了多个事务可以对保护的数据库对象同时进行读操作,但不能同时进行写操作。,独占锁和共享锁锁定的示意图,6,锁定协议,一级锁定协议 事务在修改数据库对象A之前,必须先对其加独占锁,并直到事务结束时才释放该独占锁,如果事务仅仅是读取A,则不需要加任何锁。二级锁定协议 二级锁定协议是在一级锁定协议的基础上,加上事务在读取A之前必须加共享锁,读完后立即释
4、放共享锁。三级锁定协议 三级锁定协议是在二级锁定协议的基础上,加上事务在读取A之前必须加共享锁,直到事务结束后才释放共享锁。,锁定协议主要分为如下3个级别:,不同级别的锁定协议及其作用,活锁与死锁,活锁多个事务并发执行的过程中,可能会存在某个有机会获得锁的事务却永远也没有得到锁,这种现象称为活锁。死锁在多个事务并发执行的过程中,还会出现另外一种现象,即多个并发事务处于相互等待的状态,其中的每一个事务都在等待它们中的另一个事务解除锁定,这样才可以继续执行下去,但任何一个事务都没有释放自己已获得的锁,也就无法获得其他事务已拥有的锁,所以只好相互等待下去。因此产生死锁的原因是两个或多个事务都锁定了一
5、些数据库对象,然后又都需要锁定对方的数据库对象失败而需要等待所造成的。,活锁的例子,死锁的例子,死锁的预防,一次锁定法 该方法要求每个事务必须一次将所有要使用的数据库对象全部锁定,否则就不继续执行。在之前表14-5中的例子中,如果事务T1一次就将数据库对象A1、A2全部都锁定的话,T1就会执行下去。T2开始是等待的,但在T1执行完毕释放锁之后,T2就可以锁定A1、A2了,也就可以执行下去了。顺序锁定法 顺序锁定法要求预先对数据库对象规定一个锁定的顺序,所有事务都按这个顺序来实行锁定。在之前表14-5中的例子中,规定锁定顺序是A1、A2,事务T1 和T2都按此顺序锁定,即T2也必须首先锁定A1。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 并发 控制
链接地址:https://www.31ppt.com/p-6364928.html