Files
chill_notes/数据库/关系型数据库遵循ACID规则.md
2026-04-21 20:40:56 +08:00

81 lines
1.5 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ACID 规则
> 关系型数据库事务的四个基本特性
---
## ACID 特性
事务Transaction在英文中与"交易"类似,具有以下四个特性:
---
### A — Atomicity原子性
事务的所有操作**要么全部完成**,要么**全部不执行**。
**示例**:银行转账
```
A账户转100元到B账户
1. 从A账户减100元
2. 向B账户加100元
两步必须同时成功,否则全部回滚
```
---
### C — Consistency一致性
事务执行前后,数据库始终处于**一致的状态**。
**示例**
- 完整性约束:`a + b = 10`
- 事务改变了 `a`,必须相应改变 `b`
- 事务结束后仍满足 `a + b = 10`
---
### I — Isolation隔离性
并发事务之间**互不影响**。
**示例**
- 转账事务进行中
- 另一事务查询 B 账户余额
- **看不到**新增的 100 元(直到事务提交)
---
### D — Durability持久性
事务提交后,修改**永久保存**在数据库中。
- 即使系统宕机
- 也不会丢失已提交的数据
---
## ACID vs BASE
| 特性 | ACID关系型 | BASENoSQL |
|------|----------------|---------------|
| **一致性** | 强一致性 | 弱一致性 |
| **可用性** | 可能牺牲 | 优先保证 |
| **分隔容忍** | 不保证 | 保证 |
---
## 总结
```
原子性:要么全做,要么全不做
一致性:事务前后数据一致
隔离性:并发事务互不干扰
持久性:提交后永久保存
```
---
> 参考:[NoSQL 简介 - 菜鸟教程](http://www.runoob.com/mongodb/nosql.html)