预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共117页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

会计学银行数据库系统第十一章数据库并发控制及SQLServer的并发控制机制多事务执行方式多事务执行方式(续)多事务执行方式(续)事务并发执行带来的问题并发控制机制的目的(1)甲售票点(甲事务)读出某航班的机票余额A,设A=16。(2)乙售票点(乙事务)读出同一航班的机票余额A,也为16。(3)甲售票点卖出一张机票,修改余额AA-1,所以A为15,把A写回数据库。(4)乙售票点卖出一张机票,修改余额AA-1,所以A为15,把A写回数据库。原因:并发操作破坏了事务的隔离性。并发操作带来的数据不一致性丢失修改丢失修改(续)丢失修改(续)读“脏”数据读“脏”数据读“脏”数据不可重复读不可重复读不可重复读三类不可重复读第十一章数据库并发控制及SQLServer的并发控制机制11.2并发调度的可串行性一、可串行化调度可串行化调度(续)可串行化调度(续)可串行化调度(续)为了保证并行操作的正确性,DBMS的并行控制机制必须提供一定的手段来保证调度是可串行化的。 从理论上讲,在某一事务执行时禁止其他事务执行的调度策略一定是可串行化的调度,这也是最简单的调度策略,但这种方法实际上是不可行的,因为它使用户不能充分共享数据库资源。判定可串行化调度的充分条件是冲突可串行化调度 11.2并发调度的可串行性二、冲突可串行化调度冲突可串行化调度(续)冲突可串行化调度(续)冲突可串行化调度(续)冲突可串行化调度(非冲突串行化)冲突可串行化调度(续)第十一章数据库并发控制及SQLServer的并发控制机制11.3封锁一、什么是封锁11.2封锁二、基本封锁类型排它锁共享锁11.2封锁三、锁的相容矩阵 SlockC 等待 等待 等待 等待 获得SlockC 读C=100 CommitC UnlockC第十一章数据库并发控制及SQLServer的并发控制机制11.4两段锁协议两段锁协议(续)两段锁协议(续)两段锁协议(续)两段锁协议(续)两段锁协议(续)第十一章数据库并发控制及SQLServer的并发控制机制11.5封锁的粒度一、多粒度封锁(一)什么是封锁粒度什么是封锁粒度(续)一、封锁粒度(二)选择封锁粒度的原则选择封锁粒度的原则(续)(三)多粒度封锁多粒度封锁(续)多粒度封锁协议显式封锁和隐式封锁对某个数据对象加锁时系统检查的内容11.5封锁的粒度二、意向锁什么是意向锁意向锁(续)常用意向锁意向锁(续)意向锁(续)意向锁(续)意向锁(续)意向锁(续)意向锁(续)第十一章数据库并发控制及SQLServer的并发控制机制11.6活锁和死锁一、活锁什么是活锁如何避免活锁二、死锁死锁(续)死锁(续)死锁(续)解决死锁的方法1.死锁的预防死锁的预防(续)(1)一次封锁法(2)顺序封锁法顺序封锁法(续)死锁的预防(续)2.死锁的诊断与解除超时法等待图法死锁的诊断与解除(续)1.字典锁2.数据锁数据锁(续)数据锁(续)数据锁(续)数据锁(续)数据锁(续)第十一章数据库并发控制及SQLServer的并发控制机制11.8小结小结(续)小结(续)小结(续)小结(续)