Update from Sync Service

This commit is contained in:
FNS Service
2026-04-21 20:40:56 +08:00
parent cb6afe3aef
commit c0ae2f0edb
4 changed files with 314 additions and 82 deletions

View File

@@ -1,14 +1,80 @@
**关系型数据库遵循ACID规则**
==事务在英文中是transaction和现实世界中的交易很类似它有如下四个特性==
**1、A (Atomicity) 原子性**
==原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。==
==比如银行转账从A账户转100元至B账户分为两个步骤1从A账户取100元2存入100元至B账户。这两步要么一起完成要么一起不完成如果只完成第一步第二步失败钱会莫名其妙少了100元。==
**2、C (Consistency) 一致性**
==一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。==
==例如现有完整性约束a+b=10如果一个事务改变了a那么必须得改变b使得事务结束后依然满足a+b=10否则事务失败。==
**3、I (Isolation) 独立性**
==所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。==
==比如现在有个交易是从A账户转100元至B账户在这个交易还未完成的情况下如果此时B查询自己的账户是看不到新增加的100元的。==
**4、D (Durability) 持久性**
==持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。==
> 来自 <[http://www.runoob.com/mongodb/nosql.html](http://www.runoob.com/mongodb/nosql.html)>
# 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)