7.2.3 数据库的并发控制
在多用户共享系统中,许多事务可能同时对同一个数据进行操作,这时候就产生了并发控制的问题。并发控制就是以正确的方式调度并发事务,使一个事务的执行不受其他事务的干扰。DBMS的并发控制子系统负责协调并发事务的执行,保证数据库的完整性不受破坏,同时避免用户得到不正确的数据。
并发控制机制是衡量一个数据库管理系统性能的重要标志之一。
数据库的并发操作通常可能带来以下的问题:
(1)丢失更新问题。
(2)不一致分析问题(读过时的数据)。
(3)依赖于未提交更新问题(读“脏”数据)。
处理并发控制的主要方法是采用封锁技术。封锁是实现并发控制的一个非常重要的技术。
封锁:所谓封锁就是事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。
基本的封锁类型有两种:排它锁(Exclusive Locks,简记为X锁)和共享锁(Share Locks,简记为S锁)。
排它锁:排它锁又称为写锁。若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。这就保证了其他事务在T释放A上的锁之前不能再读取和修改A。
共享锁:共享锁又称为读锁。若事务T对数据对象A加上S锁,则事务T可以读A,但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这就保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。