高级数据库技术-高级数据库技术7-事务处理技术ppt课件.ppt

高级数据库技术-高级数据库技术7-事务处理技术ppt课件.ppt

ID:58643810

大小:799.00 KB

页数:100页

时间:2020-10-05

高级数据库技术-高级数据库技术7-事务处理技术ppt课件.ppt_第1页
高级数据库技术-高级数据库技术7-事务处理技术ppt课件.ppt_第2页
高级数据库技术-高级数据库技术7-事务处理技术ppt课件.ppt_第3页
高级数据库技术-高级数据库技术7-事务处理技术ppt课件.ppt_第4页
高级数据库技术-高级数据库技术7-事务处理技术ppt课件.ppt_第5页
资源描述:

《高级数据库技术-高级数据库技术7-事务处理技术ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、事务处理提纲并发控制基于锁的协议两段锁协议多粒度封锁带来的问题恢复故障日志恢复封锁的定义封锁就是一个事务对某个数据对象加锁,取得对它一定的控制,限制其它事务对该数据对象使用要访问一个数据项R,事务Ti必须先申请对R的封锁,如果R已经被事务Tj加了不相容的锁,则Ti需要等待,直至Tj释放它的封锁封锁的类型排它锁(X锁,eXclusivelock)事务T对数据对象R加上X锁,则其它事务对R的任何封锁请求都不能成功,直至T释放R上的X锁;又称写锁申请对R的排它锁:lock-X(R)共享锁(S锁,Sharelock)事务T对数据对象R加上S锁,则其它事务对R的X锁请求不能成功

2、,而对R的S锁请求可以成功;又称读锁申请对R的共享锁:lock-S(R)封锁的相容矩阵相容矩阵comp(A,B)请求锁模式A现有锁模式BSXS是否X否否两阶段封锁协议Two-PhaseLockingProtocol两阶段封锁协议内容增长阶段(GrowingPhase)事务可以获得锁,但不能释放锁缩减阶段(ShrinkingPhase)事务可以释放锁,但不能获得锁示例lock-S(A)…lock-S(B)…lock-X(C)…unlock(A)…unlock(C)…unlock(B)遵从两段锁协议lock-S(A)…unlock-S(A)…lock-S(B)…lock-

3、X(C)…unlock(C)…unlock(B)不遵从两段锁协议两阶段封锁协议封锁点:事务获得其最后封锁的时间事务调度等价于和它们的封锁点顺序一致的串行调度令{T0,T1,…,Tn}是参与调度S的事务集,如果Ti对数据项R加A型锁,Tj对数据项R加B型锁,且comp(A,B)=false,则称Ti先于Tj,记作TiTj,得到一个优先图设ti是Ti的封锁点,若TiTj,则ti

4、可以释放的锁称作短锁发生级联回滚BEGIN短X锁短S锁EOT两阶段封锁+短X锁+短S锁严格两阶段封锁协议lock-S(A);read(A);A1:=A;unlock(A);lock-S(A);read(A);A1:=A;unlock(A);commit;lock-X(A)read(A);A:=A1;write(A);commit;T1T2不能保证可重复读BEGIN短S锁长X锁EOT两阶段封锁+长X锁强两阶段封锁协议BEGIN长S锁长X锁EOT长X锁+长S锁锁转换带有锁转换的两段锁协议增长阶段可获得lock-S可获得lock-X可将lock-S升级为lock-X(up

5、grade)缩减阶段可释放lock-S可释放lock-X可将lock-X降级为lock-S(downgrade)T1T2lock-S(a1)lock-S(a1)lock-S(a2)……lock-S(an)unlock(a1)upgrade(a1)T1:read(a1);read(a2);……read(an);write(a1).T2:read(a1);……更新锁更新锁(U锁,Updatelock)在锁转换中,一个更新事务读取数据项Q,获取Q上的S锁,然后修改行,此操作要求锁转换为X锁。如果两个事务都获得了Q上的S锁,然后试图同时更新数据,则一个事务尝试将S锁转换为X锁

6、,由于另一个事务持有Q上的S锁,所以发生锁等待。同样第二个事务也试图将其S锁升级为X锁以便进行更新,需要等待第一个事务释放Q上的锁,从而导致两个事务都无法进行,因此发生死锁。当一个事务查询数据以便要进行修改时,可以对数据项施加更新锁,如果事务修改资源,则更新锁会转换为排它锁,否则转换为共享锁。一次只有一个事务可以获得资源上的更新锁,它允许其它事务对资源的共享式访问但阻止排他式的访问。更新锁相容矩阵comp(A,B)请求锁模式A现有锁模式BSXUS是否是X否否否U是否否封锁粒度封锁对象属性值、属性值集合、元组、关系、某索引项、整个索引、整个数据库、物理页、块封锁粒度大,

7、则并发度低,封锁机构简单,开销小封锁粒度小,则并发度高,封锁机构复杂,开销高理想的情况是只封锁与规定的操作有关的的数据对象,称之为事务的完整性相关域SQLServer的封锁粒度T1:lock-s(row1)T2:lock-x(page1)封锁粒度意向(预约)封锁在分层封锁中,封锁了上层节点就意味着封锁了所有内层节点。如果有事务T1对某元组加了S锁,而事务T2对该元组所在的关系加了X锁,因而隐含地X封锁了该元组,从而造成矛盾引入意向锁I(Intend):当为某节点加上I锁,表明其某些内层节点已发生事实上的封锁,防止其它事务再去显式封锁该节点I锁的实施是

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

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

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