并发控制¶
并发能力是指多用户在同一时间对相同数据同时访问的能力。事务的并发控制也就是多个事务对相同数据同时访问而不破坏数据库一致性。
为什么需要对事务进行并发控制呢?考虑以下情况:
客户需要预定13:30从北京去杭州的班机,机场的售票员A查询机场售票系统的数据库,发现还有5张票剩余,并且告知客户A。正在这时,售票员B也正在为另一个客户B查询同一班机,并且告诉客户B剩余5张票。此时,客户A预定3张该次机票,并且操作成功,售票员B对此一无所知,她仍然认为有5张机票,所以客户B预定4张该次机票,操作也成功了。这里,如果对这两个事务不进行并发控制,就会出现数据库的不一致。
在并发控制方面,神通数据库具有多版本并发控制的机制。
为确保事务的并发性和数据的一致性,可以采用系统本身的并发控制机制,也可以采用显式的表封锁(LOCK TABLE)命令。
为了获得最佳的并发度,同时又要保持数据的一致性,并发控制就必须根据应用系统的需要来平衡这两个特征。这个平衡过程是通过用户为应用程序定义事务隔离级别或使用 LOCK TABLE 的命令来实现的。
关于事务隔离级别的定义,参考本章 事务隔离级别 小节。关于表封锁,请参见《神通数据库SQL语言参考手册》。