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