ACID 是数据库事务正确执行所必须满足的四个属性的首字母缩写:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。由 Jim Gray 和 Andreas Reuter 于1983年正式定义,是衡量关系型数据库可靠性的核心标准。

| 提出者 | Jim Gray & Andreas Reuter,1983年 |
| 核心属性 | 原子性、一致性、隔离性、持久性 |
| 对立概念 | BASE(最终一致性) |
原子性(Atomicity):事务中的所有操作要么全部执行,要么全部不执行,不存在部分完成的中间状态。实现依赖 Undo Log,回滚时根据日志将已执行的操作逆向还原。
一致性(Consistency):事务执行前后,数据库必须满足所有定义的完整性约束(外键、唯一性、CHECK 约束等)。一致性是其他三个属性共同保障的目标,而非独立的技术机制。
隔离性(Isolation):并发执行的事务之间互不干扰,一个事务的中间状态对其他事务不可见。SQL 标准定义了四个隔离级别(读未提交到串行化),隔离级别越高,并发性能越低,但数据正确性越强。
持久性(Durability):一旦事务提交成功,其修改就永久保存,即使系统随后崩溃也不丢失。依赖 Redo Log(WAL)实现——提交前必须确保日志已刷盘。[1]
NoSQL 数据库兴起后,出现了与 ACID 对立的 BASE 理论:基本可用(Basically Available)、软状态(Soft State)、最终一致(Eventually Consistent)。BASE 是 CAP 定理在工程上的体现——在分布式系统中,网络分区发生时无法同时保证一致性和可用性,选择可用性就意味着放弃强一致性。
实践中,大多数系统不是非此即彼。Cassandra 提供可调节一致性,可以在同一系统内根据不同操作选择强一致或最终一致;Google Spanner 则通过 TrueTime 机制在全球分布式部署中实现了外部一致性,证明 ACID 和大规模分布式并非不可兼得。

| 提出者 | Jim Gray & Andreas Reuter,1983年 |
| 核心属性 | 原子性、一致性、隔离性、持久性 |
| 对立概念 | BASE(最终一致性) |
登录 后参与讨论
暂无讨论,来发表第一条评论吧