在数据库中提到两段封锁协议,那么两段封锁协议用于解决什么问题?
二级封锁与三级封锁在概念上很相似,二级是读完数据释放,而三级是事务结束释放,这其中有何区别?

解决方案 »

  1.   

    数据库原理上的一些知识,以前学习过,现在都还给老师了。你google 百度一下吧。应该可以找到一些好的解释的。==================================================================
    Inthirties关注Oracle数据库 维护 优化,安全,备份,恢复,迁移,故障处理如果你需要帮助或想和我一起学习的请联系
    联系方式QQ:370140387
    QQ群:  85837884(注明:数据库)
    电子邮件:[email protected]
    网站: http://www.inthirties.com
      

  2.   

    二级是读完就可释放S锁,也许此时事务还在进行当中。所以在二级当中不能保证重复读。
    三级是事务结束才能释放两段锁协议:一个事务中一旦开始释放锁,就不能再申请新锁了。事务的加锁和解锁严格分为两个阶段,第一阶段加锁,第二阶段解锁。
    两段锁协议的目的是保证并发调度的正确性。就是说,如果所有操作数据库的事务都满足两段锁协议,那么这些事务的任何并发调度策略是可串行性的。三级封锁协议:三级封锁协议的目的是在不同程序上保证数据的一致性。
    是在一级封锁协议(一级封锁协议:修改之前先加X锁,事务完成释放)的基础上加上,读取之前还要加上S锁,事务结束后释放。