数据库理论中ACID含义

数据库理论中非常核心的概念,用来保证事务(transaction)的可靠性和一致性


ACID 的四个属性:

  1. 原子性 (Atomicity)
    原子性确保一个
    事务是一个不可分割的整体
    。要么事务中的所有操作都成功执行并提交,要么全部失败并回滚。比如,在银行转账中,从账户 A 扣款和向账户 B 存款必须同时成功,如果扣款成功但存款失败,整个事务会回滚,数据库状态不会改变。

  2. **一致性 (Consistency)**
    一致性保证事务执行前后,数据库始终处于一种符合规则的合法状态。所有的约束(如主键唯一、数据类型匹配等)、触发器和业务规则都会得到遵守。比如,转账后账户余额不能为负(如果有这样的规则)。

  3. 隔离性 (Isolation)
    隔离性确保
    多个事务并发执行时,彼此之间不会互相干扰
    。每个事务的操作在提交前对其他事务是不可见的。比如,两个用户同时修改同一数据时,数据库会通过锁或其他机制保证结果的可预测性。常见的隔离级别包括读未提交、读已提交、可重复读和串行化。

  4. **持久性 (Durability)**
    持久性保证一旦事务提交,其结果就会永久保存,即使系统崩溃或断电也不会丢失。通常通过日志记录(WAL,Write-Ahead Logging)或类似机制实现。

实际应用

ACID 是传统关系型数据库(如 MySQL、PostgreSQL、Oracle)的基石,特别适用于需要强一致性的场景,比如金融系统。不过在分布式系统或 NoSQL 数据库中,为了追求高可用性和性能,可能会放松部分 ACID 要求,转而遵循 BASE 模型(Basically Available, Soft state, Eventual consistency)。