ACID原则是什么?

ACID 是关系型数据库的事务机制需要遵守的原则。事务是一个一致和可靠计算的基本单元,由作为原子单元执行的一系列数据库操作组成。数据库库一般在启动时会提供事务机制,包括事务启动、停止、取消或回滚等。

关系型数据库支持事务的 ACID 原则,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),这四种原则保证在事务过程当中数据的正确性,具体描述如下。

原子性(A)

一个事务的所有系列操作步骤被看成一个动作,所有的步骤要么全部完成,要么一个也不会完成。如果在事务过程中发生错误,则会回滚到事务开始前的状态,将要被改变的数据库记录不会被改变。

一致性(C)

一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏,即数据库事务不能破坏关系数据的完整性及业务逻辑上的一致性。

 隔离性(I)

主要用于实现并发控制,隔离能够确保并发执行的事务按顺序一个接一个地执行。通过隔离,一个未完成事务不会影响另外一个未完成事务。

持久性(D)

一旦一个事务被提交,它应该持久保存,不会因为与其他操作冲突而取消这个事务。

从事务的四个特性可以看到关系型数据库是要求强一致性的,但是这一点在 NoSQL 数据库中是重点弱化的机制。原因是当数据库保存强一致性时,很难保证系统具有横向扩展和可用性的优势,因此针对分布式数据存储管理只提供了弱一致性的保障,即 BASE 原理