事务是数据库中的一组工作单元,它具有两个状态:成功或者失败,成功则一组动作全部提交,失败则全部动作被回滚。
事务主要提供了两个方面的能力:
- 提供了可靠性和一致性,在执行失败时可以全部回滚到事务开始前的状态;
- 提供了隔离性能力,不同事务之间可以通过不同的隔离级别进行控制;
事务包括四个特性:
- 原子性(atomicity):一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
- 一致性(consistency):事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
- 隔离性(isolation):一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
- 持久性(durability):持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。