分布式数据库并发控制技术内容并发控制概述并发控制封锁方法常见死锁检测方法一、并发控制概述并发控制机制的提出: 当多个用户并发地存取数据库时可能出现多个事务同时存取同一数据的情况,并发控制机制将对这些并发操作加以控制以保证每个事务的ACID特性,确保数据库的一致性并发操作造成的问题这种数据库的不一致是由并发操作引起的机票数量AA=16读读A=A-1A=A-1A=15A=15售票点售票点A=16A=16出售1出售1事务T1事务T2并发操作引起的数据不一致性包括三类丢失修改不可重复读读脏数据丢失修改事务T1对数据的修改被事务T2的修改覆盖T1读A=16A=A-1写回A=15T2读A=16A=A-1写回A=15不可重复读事务T1读取某一数据后,事务T2对其做了修改,当T1按同样条件再读时得到不同的值事务T1读取某些数据后,事务T2删除(或插入)了一些记录,当T1按同样条件再读时发现少(或多)了一些记录T1读A=1,B=2求A+B=3读A=1,B=4求A+B=5T2读B=2B=B*2写回B=4读脏数据事务T1修改了某数据并写回磁盘,事务T2读取了同一数据后,T1由于某种原因被撤销,被修改的值复原,此时T2读到的数据与数据库中的数据不一致T1读C=1C=C*2写回C=2ROLLBACKC恢复为1T2读C=2二、并发控制封锁方法封锁的概念封锁就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁在事务T释放它所获得的锁之前,其他事务不能更新此数据对象锁的类型排它锁(Xlock):写锁若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁共享锁(Slock):读锁若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁锁的相容矩阵Y:相容的请求N:不相容的请求T2T1XS-XS-T2T1XS-XNNYSNYY-YYY
分布式数据库课件 来自淘豆网m.daumloan.com转载请标明出处.