数据库7并发控制.ppt
《数据库7并发控制.ppt》由会员分享,可在线阅读,更多相关《数据库7并发控制.ppt(21页珍藏版)》请在三一办公上搜索。
1、,7并发控制,事务是并发控制的基本单位,保证事务acid特性是事务处理的重要任务,而事务acid特性可能遭到破坏的原因之一是多个事务对数据库的兵法操作造成的,为了保证事务的隔离性更一般,为了保证数据库的一致性,dbms需要对并发操作进行正确调度,这些就是数据库管理系统中并发控制机制的责任。数据的不一致性:因多个事务对同一数据地交叉修改(并发操作)而引起地数据不正确或数据修改丢失就称为数据的不一致性。,并发操作带来的数据不一致性包括3类:丢失修改,不可重复读和读脏数据。1.丢失修改两个事务t1 t2读入同一数据并修改,t2提交的结果破坏了t1提交的结果,导致t1得修改被丢失2.不可重复 读指t1
2、读取数据后,t2执行更新操作,使t1无法再现前一次的读取结果3.读脏数据指t1修改某一数据,并将其写回磁盘,t2读取同一数据后,t1由于某种原因被撤销,数据恢复原值,而t2得到的数据与数据库中的数据不一致。,并发操作举例,产生上述3类数据不一致性的原因是并发操作破坏了事务的隔离性并发控制:就是要用正确的方式调度并发操作,避免造成数据的不一致性,使一个用户事务的执行不受其它事务的干扰。另一方面,对数据库的应用有时允许某些不一致性。并发控制的主要方法是采用封锁机制(Locking)。,封锁,封锁:事务对数据库操作之前,先对数据加锁以便获得这个数据对象的一定控制,使得其他事务不能更新此数据,直到该事
3、务解锁为止。1封锁的类型 共享性封锁(共享锁,或称S锁),也称读锁(RLOCK):若事务T对数据对象A加上S锁,则事务T可以读取A但不能修改A,其他事务只能对A加S锁,而不能加X锁,直道T释放A上的S锁。这就保证了其他事务可以读A,但在T释放A上的锁之前不能修改A。排他性封锁(排他锁,或称X锁)也称写锁(WLOCK):若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直道T释放A上的锁。这就保证了其他事务在T释放A上的锁之前不能在读取和修改A。,2封锁类型的控制方式 封锁类型决定控制方式,用相容矩阵表示控制方式。,3、用封锁机制解决购买火车票问题,封
4、锁,封锁的方法可能引起活锁和死锁4、活锁与死锁(1)活锁:某一事务的请求可能永远得不到,该事务一直处于等待状态。(2)死锁:两个事务处于相互等待状态,永远不能结束。举例:见下页,死锁的预防1.一次封锁法一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行存在的问题:降低了系统的并发度 很难事先精确地确定每个事物所要封锁的数据对象2.顺序封锁法预先对数据对象规定一个封锁顺序,所有的事务都按这个顺序实行封锁。存在的问题:很难维护这样的资源的封锁顺序很难按规定的顺序去施加封锁,死锁的诊断与解除1.超时法如果一个事务的等待时间超过了规定的时间,就认为发生了死锁。误判 时限太长时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 并发 控制
链接地址:https://www.31ppt.com/p-6296350.html