什么是事务?事务的四大特性(ACID)?
一、事务的定义
**事务(Transaction)**是数据库系统中执行的一个逻辑工作单元,它由一个或多个数据库操作组成,这些操作要么全部成功执行,要么全部不执行。事务是保证数据一致性的核心机制。
关键结论:事务的本质是将多个操作打包成一个不可分割的原子单元,确保数据库从一个一致状态转变为另一个一致状态。
二、事务的四大特性(ACID)
1. 原子性(Atomicity)
原子性指事务是一个不可分割的工作单位,事务中的操作要么全部发生,要么全部不发生。
- 实现机制:通过undo log(回滚日志)实现
- 典型场景:银行转账中,扣款和加款必须同时成功或失败
- 技术细节:
- 任何操作都会先记录到undo log
- 如果事务失败,系统会根据undo log回滚所有修改
“原子性就像数字电路中的触发器,要么完全翻转,要么保持原状”
2. 一致性(Consistency)
一致性指事务执行前后,数据库必须从一个一致性状态变到另一个一致性状态。
- 包含两个层面:
- 数据库层面:符合所有定义的约束(主键、外键等)
- 业务层面:符合业务规则(如账户余额不能为负)
- 实现方式:
- 通过其他三个特性(AID)来保证
- 应用