所谓的ACID,是指数据库事务(Transaction)正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务的数据库系统,必需要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。
1.原子性(Atomicity)
原子性表明,一个事务就是一个整体。在执行的过程中要么完整地执行要么不执行。不会出现执行一半的情况。事务的原子性也真是考虑到数据库线程的安全性来设计的。另一方面,当执行一半出现错误的时候,数据库会进行回滚,来保持数据内容的正确性。
2.一致性(Consistency)
在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。所谓的数据库完整性是指数据库中数据的正确性、有效性和相容性。也就是事务改变的是事务所要改变的内容,不会影响其他内容。
3.隔离性(Isolation)
也就是串行化,跟消息队列有点相似。在有多个事务在相同的时间点将要执行的时候,将他们强制地排队,使多个事务能够有序地进行数据库操作。也就是让在同一个时间点只有一个事务运行。
4.持久性(Durability)
当完成事务之后,数据库会被持久地改变,不存在回滚的情况。这也是项目体系架构中数据库处理模被称为持久化层的原因了。这也是事务所要做的。