数据库事务基础
一、概述 1.事务概念 在数据库中,事务是指一组逻辑工作单元执行的一系列动作,要么都执行,要么都不执行。 2.事务ACID特性 原子性(Atomic) 原子性是指组成一个事务的多个数据库操作是一个不可分割的原子单元,事务中的操作要么都发生,要么都不发生。 一致性(Consistency) 事务必须使数据库从一个一致性状态变换到另外一个一致性状态 (数据不被破坏) 。如从A账户转账100元到B账户,不管操作成功与否,A和B的存款总额是不变的。 隔离性(Isolation) 在并发数据操作时,不同的事务拥有各自的数据空间,它们的操作不会对对方产生干扰。准确地说,并非要求做到完全无干扰,数据库规定了多种事务隔离级别,不同隔离级别对应不同的干扰程度,隔离级别越高,数据一致性越好,但并发性越弱。 持久性(Durabiliy) 一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来的其他操作和数据库故障不应该对其有任何影响。 在这些事务特性中,数据“一致性”是最终目标,其他的特性都是为达到这个目标的措施、要求或手段。 数据库管理系统采用日志来保证事务的原子性、一致性和持久性。日志记录了事务对数据库所做的更新,如果某个事务在执行过程中发生错误,就可以根据日志,撤销事务对数据库已做的更新,使数据库退回到执行事务前的初始状态。此外,对于已经提交的事务,即使数据库崩溃