数据库-第11章并发控制

并发操作带来的问题:丢失修改、不可重复读、读‘脏’数据(后两种也被称为幻影现象)

并发控制的方法:封锁、时间戳、乐观控制法和多版本并发控制等

1.封锁

封锁类型:排他锁和共享锁

一级封锁协议:事务T在修改数据R之前必须对其加X锁,直到事务T结束以后才释放。解决了:丢失修改

二级封锁协议:在一级封锁协议的基础上,增加读数据之前必须加S锁,读完即可释放。解决了:丢失修改和读'脏'数据

三级封锁协议:在一级封锁协议的基础上,增加读数据之前必须加S锁,事务结束后才可以释放。解决了:全部问题

2.活锁和死锁

           避免活锁:先来先服务

           预防死锁:一次封锁法、顺序封锁法

           诊断死锁和接触死锁:可以通过超时法或者事务等待图法诊断死锁,当发现死锁以后,选择一个处理死锁代价最小的事务将其撤销,释放此事务持有的锁,使其他事务得以继续运行下去。

3.并发调度的可串行性

可串行化调度:多个事务并发执行是正确的的,当且仅当与某一次序串行地执行这些事务时的结果相同。

 可串行性是并发事务正确调度的准则。

 ***判断一个调度是否是冲突可串行化的?

           答:冲突操作:不同事务对一个数据的读写、写写操作。各种互换位置,变成“事务1->事务2->事务3”这种形式的话,就证明这个调度是冲突可串行化的。并且冲突可串行化一定是可串行化的调度(充分条件)。

4.两段锁协议~针对每一个事务

      概念:在对任何数据读、写操作之前,必须申请并获取该数据的锁;在释放一个封锁之后,事务不再申请和获得任何其他封锁。

    【拓】遵循两段锁协议,一定是可串行化的;可串行化的,不一定遵循两端锁协议;遵循两段锁协议的可能会出现死锁现象。

5.封锁的粒度

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值