允许多个用户同时使用同一个数据库的数据库系统称为多用户数据库系统。
事务可以一个一个地中行执行,即每个时刻只有一个事务运行,其他事务必须等到这个事务结束以后方能运行。
单处理机系统中,事务的并行执行实际上是这些并行事务的并行操作轮流交叉运行。并没有真正地并行运行,但减少了处理机的空闲时间,提高了系统的效率。
多处理机系统中,多个处理机可以同时运行多个事务,实现多个事务真正的并发运行,称同时并发方式。
11.1并发控制概述
为了保证事务的隔离性和一致性,数据库管理系统需要对并发操作进行正确调度。
并发操作带来的数据不一致性包括丢失修改,不可重复读和读脏数据。
主要原因是并发操作破坏了事务的隔离性。并发控制机制就是要用正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性。
并发控制的主要技术有封锁,时间戳,乐观控制法和多版本并发控制等。
11.2封锁
封锁就是事务T在对某个数据对象,例如表,记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他事务不能更新此数据对象。
基本的封锁类型:排他锁和共享锁。
11.4活锁和死锁
活锁。永远等待。先来先服务。
死锁。T等待B,B等待T。两个事务永远不能结束,形成死锁。一类是采取一定措施预防死锁的发生,另一类方法是允许发生死锁,采用一定手段定期诊断系统中有无死锁,若有则解除之。
①一次封锁法。②顺序封锁法
①超时法。②等待图法。