Update 数据库系统原理.md

调整高频标记。
This commit is contained in:
CyC2018
2026-11-04 22:39:58 +08:00
parent 1e2285030d
commit 6ae4884320
+6 -6
View File
@@ -10,12 +10,12 @@
* [脏读](#脏读)
* [不可重复读](#不可重复读)
* [幻读](#幻读)
* [三、封锁](#三封锁) 🔥🔥
* [三、封锁](#三封锁)
* [封锁粒度](#封锁粒度)
* [封锁类型](#封锁类型)
* [封锁协议](#封锁协议)
* [MySQL 隐式与显式锁定](#mysql-隐式与显式锁定)
* [MySQL 中的锁](#mysql-中的锁)
* [MySQL 中的锁](#mysql-中的锁) 🔥
* [四、隔离级别](#四隔离级别) 🔥🔥
* [未提交读(READ UNCOMMITTED)](#未提交读read-uncommitted)
* [提交读(READ COMMITTED)](#提交读read-committed)
@@ -34,7 +34,7 @@
* [七、关系数据库设计理论](#七关系数据库设计理论)
* [函数依赖](#函数依赖)
* [异常](#异常)
* [范式](#范式) 🔥
* [范式](#范式)
* [八、ER 图](#八er-图)
* [实体的三种联系](#实体的三种联系)
* [表示出现多次的关系](#表示出现多次的关系)
@@ -145,7 +145,7 @@ InnoDB 在可串行化以下的隔离级别都不会自动避免这种先读后
产生并发不一致性问题的主要原因是破坏了事务的隔离性,解决方法是通过并发控制来保证隔离性。并发控制可以通过封锁来实现,但是封锁操作需要用户自己控制,相当复杂。数据库管理系统提供了事务的隔离级别,让用户以一种更轻松的方式处理并发一致性问题。
## 三、封锁 🔥🔥
## 三、封锁
### 封锁粒度
@@ -262,7 +262,7 @@ SELECT ... FOR SHARE; -- MySQL 8.0 之前写作 LOCK IN SHARE MODE
SELECT ... FOR UPDATE;
```
### MySQL 中的锁
### MySQL 中的锁 🔥
按粒度从大到小,MySQL 中的锁主要有以下几种:
@@ -529,7 +529,7 @@ SELECT c FROM t WHERE c BETWEEN 10 and 20 FOR UPDATE;
- 删除异常:删除一个信息,那么也会丢失其它信息,例如删除了 `课程-1` 需要删除第一行和第三行,那么 `学生-1` 的信息就会丢失;
- 插入异常:例如想要插入一个学生的信息,如果这个学生还没选课,那么就无法插入。
### 范式 🔥
### 范式
范式理论是为了解决以上提到的四种异常。