数据库理论中ACID含义
数据库理论中非常核心的概念,用来保证事务(transaction)的可靠性和一致性。
ACID 的四个属性:
原子性 (Atomicity)
原子性确保一个事务是一个不可分割的整体。要么事务中的所有操作都成功执行并提交,要么全部失败并回滚。比如,在银行转账中,从账户 A 扣款和向账户 B 存款必须同时成功,如果扣款成功但存款失败,整个事务会回滚,数据库状态不会改变。**一致性 (Consistency)**
一致性保证事务执行前后,数据库始终处于一种符合规则的合法状态。所有的约束(如主键唯一、数据类型匹配等)、触发器和业务规则都会得到遵守。比如,转账后账户余额不能为负(如果有这样的规则)。隔离性 (Isolation)
隔离性确保多个事务并发执行时,彼此之间不会互相干扰。每个事务的操作在提交前对其他事务是不可见的。比如,两个用户同时修改同一数据时,数据库会通过锁或其他机制保证结果的可预测性。常见的隔离级别包括读未提交、读已提交、可重复读和串行化。**持久性 (Durability)**
持久性保证一旦事务提交,其结果就会永久保存,即使系统崩溃或断电也不会丢失。通常通过日志记录(WAL,Write-Ahead Logging)或类似机制实现。
实际应用
ACID 是传统关系型数据库(如 MySQL、PostgreSQL、Oracle)的基石,特别适用于需要强一致性的场景,比如金融系统。不过在分布式系统或 NoSQL 数据库中,为了追求高可用性和性能,可能会放松部分 ACID 要求,转而遵循 BASE 模型(Basically Available, Soft state, Eventual consistency)。