第11章 并发控制ppt课件.ppt

第11章 并发控制ppt课件.ppt

ID:58714210

大小:566.50 KB

页数:53页

时间:2020-10-04

第11章 并发控制ppt课件.ppt_第1页
第11章 并发控制ppt课件.ppt_第2页
第11章 并发控制ppt课件.ppt_第3页
第11章 并发控制ppt课件.ppt_第4页
第11章 并发控制ppt课件.ppt_第5页
资源描述:

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

1、并发控制第11章要点并发操作及影响并发操作的可串行性并发控制及实现技术序言事务并行地运行可充分利用系统资源,事务是并发控制的基本单位多用户数据库系统中允许多个用户同时使用数据库,即在同一时刻可能有多个事务并行运行同时并行方式单处理机系统中,事务并行实际上是这些事务的并行操作轮流交叉运行交叉并行方式4数据库的并发控制技术数据库的重要特征是支持数据共享,允许多个用户程序并行地存取数据库中的数据。这样,多个用户或多个事务可能同时对同一数据进行操作,称为并发操作。如果系统对并发操作不加以控制,就会存取或存储不正确的数据,破坏数据的完整性。并发控制机制的提出当多个用户并发地存取数据库时可

2、能出现多个事务同时存取同一数据的情况,并发控制机制将对这些并发操作加以控制以保证每个事务的ACID特性,确保数据库的一致性并发控制机制是衡量某DBMS系统性能的指标之一11.1并发控制概述并发控制就是要避免这种情况的出现!!机票数量AA=16读读A=A-1A=A-1A=15A=15售票点售票点A=16A=16出售1出售1事务T1事务T2并发操作引起的丢失修改并发操作引起的数据不一致性包括三类丢失修改不可重复读读脏数据R=1000R=1000R=R-200R=R-100800R=1000900丢失修改T1T2R=1000R=R=R-200800R=1000800R=1000读“脏”数

3、据(污读)T1T2事务T1修改了某数据并写回磁盘,事务T2读取了同一数据后,T1由于某种原因被撤销,被修改的值复原,此时T2读到的数据与数据库中的数据不一致时间事务T1R的值事务T2t0-1000-t1ReadR-t2-ReadRt3-R=R-300t4-UPDATERt5ReadR700-不可重读事务T1读取某一数据后,事务T2对其做了修改,当T1按同样条件再读时得到不同的值事务T1读取某些数据后,事务T2删除(或插入)了一些记录,当T1按同样条件再读时发现少(或多)了一些记录造成以上问题的原因并发操作破坏了事务的隔离性大家想一想:应该采用什么措施?总结并发控制用正确的方式规定并

4、发操作,避免并发事务之间相互干扰造成的数据不一致性。并发控制的主要技术封锁技术(Locking)★时间戳技术(Timestamp)其他11.2封锁概念事务T在对某个数据对象(如数据库、表、记录等)操作之前,首先向系统发出加锁请求以便获得对数据对象相应的控制在事务T释放它所获得的锁之前,其他事务不能更新此数据对象锁的类型排它锁(eXclusivelock):写锁若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁共享锁(Sharelock):读锁若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其它事务只能再对A加

5、S锁,而不能加X锁,直到T释放A上的S锁锁的相容矩阵Y:相容的请求N:不相容的请求T2T1XS-XS-T2T1XS-XNNYSNYY-YYY三、封锁及其产生问题的解决三级封锁协议两段锁协议2、封锁协议指的是封锁规则,何时开始封锁,封锁多长时间,何时释放等。对封锁方式规定不同的规则,就形成了不同的封锁协议。三、封锁及其产生问题的解决可以解决“丢失修改”问题!三级封锁协议一级封锁协议内容:事务T在修改数据对象前必须对其加X锁,直到事务结束才释放。XLOCKRReadRR=R-200UPDATERUNLOCKX1000--800-700XLOCKR获得锁ReadRR=R-100UNLOC

6、KXR…×一级封锁协议为什么不能解决后两种问题?700写写解决丢失修改问题T1T2三、封锁及其产生问题的解决可以解决“污读”问题!三级封锁协议二级封锁协议内容:在一级封锁协议的基础上,另外加上事务T在读取数据对象R前必须对其加S锁,读完后立即释放。XLOCKRReadRR=R-200UPDATER-ROLLBACKUNLOCKX1000--800-1000SLOCKRWAITWAIT获得锁ReadRUNLOCKSR…….×二级封锁协议为什么不能解决“不可重读”问题?写读解决污读问题T1T2三、封锁及其产生问题的解决可以解决“不可重读”问题!三级封锁协议三级封锁协议内容:对于二级封锁

7、协议当中的读锁,直到事务T结束才释放。SLOCKRReadRReadRUNLOCKS1000---XLOCKR获得锁R…×写读解决不可重读问题T1T2三级封锁协议小结X锁S锁无丢失修改无污读可更新事务结束释放事务结束释放读完释放一级封锁协议√√二级封锁协议√√√√三级封锁协议√√√√√三、封锁及其产生问题的解决3、活锁和死锁三、封锁及其产生问题的解决活锁!…..XLockR操作RXLockR等待XLockRUnlockR等待等待XLockR等待获得锁等待等待操作R等待

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

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

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