事务——ACID原则

183 阅读1分钟

1. 原子性:

事务是一个完整的操作,操作不可分,事务中的所有元素必须作为一个整体提交或回滚,如果其中一个元素失败,则整个事务失败。以银行转账事务为例,该事务提交了,则这两个账户的数据将会更新,如果在更新两个账户之间终止了,则不会更新这两个账户的余额,并且撤销对任何账户余额的修改,事务不能部分提交

2. 一致性:

事务执行前后数据库必须由一个一致性状态转为另一个一致性状态。以银行转账举例,在事务开始前,所有账户余额的总额处于一致状态,在事务进行中一个账户余额减少了,而另一个余额尚未增加,这就是不一致状态,事务完成以后,账户余额再一次恢复到一致状态

3. 隔离性:

并发访问数据库时,一个用户的事务不被其他事务干扰,各事务之间是独立的,A 对 B 的转账于 C 对 D 的转账是相互独立的

4. 持久性:

事务被提交后对数据库的改变是持久的,即使发生故障,也不应该有任何影响。


事务的 ACID 原则保证了一个事务要么成功提交,要么失败回滚,二者必居其一。因此,它对事务的修改具有可恢复性。即当事务失败时,它对数据的修改都会恢复到该事务执行前的状态。