文档介绍:第8章事务管理
事务
并发控制
恢复
事务
事务的概念
事务的性质
可串行性和隔离级别
SQL对事务的支持
事务的概念
事务是构成单一逻辑工作单元的操作集合。
为什么需要事务的概念呢?
恢复的需要
并发操作的需要
事务的性质
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
事务的这些性质通常称为ACID特性
原子性
事务的原子性强调了一个事务是一个逻辑工作单元,是一个整体,是不可分割的。一个事务所包含的操作要么全部做,要么全部不做。
一致性
一个事务执行一项数据库操作,事务将使数据库从一种一致性的状态变换成另一种一致性状态。
在事务执行前,总是假设数据库是一致的,那么当事务成功执行后,数据库肯定仍然是一致的。
隔离性
如果每个事务单独执行能保持原子性和一致性,这些事务并发执行也能保持原子性和一致性,则是事务的隔离性。
持久性
事务的持久性是指一旦事务成功完成,该事务对数据库所施加的所有更新都是永久的。
可串行性
可串行性通常看作是多个事务并发执行的正确性准则。具体判定方法如下:
各单个事务如能将数据库从一个正确状态转变为另一个正确状态,则认为该事务是正确的;
按任何一个串行顺序依次执行多个事务也是正确的(这里的串行顺序假定各个事务间彼此独立、不交叉);
事务的交叉执行过程是正确的,当且仅当其与串行执行过程等价,则事务是可串行化的。
隔离级别
隔离性虽然是事务的基本性质之一,但是彻底的隔离意味着并发操作效率的降低。所以人们设想在避免干扰的前提下,适当地降低隔离的级别,从而提高并发的操作效率。隔离级别越低,并发操作的效率越高,但是产生干扰的可能性也越大;隔离级别越高,则并发操作的效率越低,同时产生干扰的可能性也越小。在设计应用时,可以在所能容忍的干扰程度范围内,尽可能的降低隔离级别,从而提高应用的执行效率。