Skip to content

Commit 3fbead4

Browse files
committed
更新格式
1 parent 98fba3c commit 3fbead4

1 file changed

Lines changed: 15 additions & 15 deletions

File tree

notes/MySQL.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -154,31 +154,31 @@ MySQL 默认采用自动提交模式。也就是说,如果不显式使用 `STA
154154

155155
### 1. 原子性(Atomicity)
156156

157-
原子性是指事务是一个不可分割的工作单位,事务中的操作要么全部成功,要么全部失败。比如在同一个事务中的SQL语句,要么全部执行成功,要么全部执行失败。
157+
  原子性是指事务是一个不可分割的工作单位,事务中的操作要么全部成功,要么全部失败。比如在同一个事务中的SQL语句,要么全部执行成功,要么全部执行失败。
158158

159-
回滚可以用日志来实现,日志记录着事务所执行的修改操作,在回滚时反向执行这些修改操作即可。
159+
  回滚可以用日志来实现,日志记录着事务所执行的修改操作,在回滚时反向执行这些修改操作即可。
160160

161161

162162

163163
### 2. 一致性(Consistency)
164164

165-
事务必须使数据库从一个一致性状态变换到另外一个一致性状态。以转账为例子,A向B转账,假设转账之前这两个用户的钱加起来总共是2000,那么A向B转账之后,不管这两个账户怎么转,A用户的钱和B用户的钱加起来的总额还是2000,这个就是事务的一致性。
165+
  事务必须使数据库从一个一致性状态变换到另外一个一致性状态。以转账为例子,A向B转账,假设转账之前这两个用户的钱加起来总共是2000,那么A向B转账之后,不管这两个账户怎么转,A用户的钱和B用户的钱加起来的总额还是2000,这个就是事务的一致性。
166166

167167

168168

169169
### 3. 隔离性(Isolation)
170170

171-
隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。
171+
  隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。
172172

173-
即要达到这么一种效果:对于任意两个并发的事务 T1 和 T2,在事务 T1 看来,T2 要么在 T1 开始之前就已经结束,要么在 T1 结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行。
173+
  即要达到这么一种效果:对于任意两个并发的事务 T1 和 T2,在事务 T1 看来,T2 要么在 T1 开始之前就已经结束,要么在 T1 结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行。
174174

175175

176176

177177
### 4. 持久性(Durability)
178178

179-
一旦事务提交,则其所做的修改将会永远保存到数据库中。即使系统发生崩溃,事务执行的结果也不能丢失。
179+
  一旦事务提交,则其所做的修改将会永远保存到数据库中。即使系统发生崩溃,事务执行的结果也不能丢失。
180180

181-
可以通过数据库备份和恢复来实现,在系统发生奔溃时,使用备份的数据库进行数据恢复。
181+
  可以通过数据库备份和恢复来实现,在系统发生奔溃时,使用备份的数据库进行数据恢复。
182182

183183

184184

@@ -197,13 +197,13 @@ MySQL 默认采用自动提交模式。也就是说,如果不显式使用 `STA
197197

198198
## 3. 数据库中的范式
199199

200-
满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。
200+
  满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式 (3NF)就行了。
201201

202-
范式的包含关系。一个数据库设计如果符合第二范式,一定也符合第一范式。如果符合第三范式,一定也符合第二范式…
202+
  范式的包含关系。一个数据库设计如果符合第二范式,一定也符合第一范式。如果符合第三范式,一定也符合第二范式…
203203

204-
- 1NF :符合1NF的关系中的每个属性都不可再分
204+
- 1NF:属性不可分
205205
- 2NF:属性完全依赖于主键 [消除部分子函数依赖]
206-
- 3NF:属性不依赖于其它非主属性[消除传递依赖]
206+
- 3NF:属性不依赖于其它非主属性 [消除传递依赖]
207207
- BCNF(巴斯-科德范式):在1NF基础上,任何非主属性不能对主键子集依赖[在3NF基础上消除对主码子集的依赖]
208208
- 4NF:要求把同一表内的多对多关系删除。
209209
- 5NF(完美范式):从最终结构重新建立原始结构。
@@ -306,7 +306,7 @@ Sname, Sdept 和 Mname 都部分依赖于键码,当一个学生选修了多门
306306

307307
### 1. 丢失修改
308308

309-
T1 和 T2 两个事务都对一个数据进行修改,T1 先修改,T2 随后修改,T2 的修改覆盖了 T1 的修改。
309+
   T1 和 T2 两个事务都对一个数据进行修改,T1 先修改,T2 随后修改,T2 的修改覆盖了 T1 的修改。
310310

311311
<div align="center"><img src="assets/88ff46b3-028a-4dbb-a572-1f062b8b96d3.png" width="400"/></div><br/>
312312

@@ -334,7 +334,7 @@ Sname, Sdept 和 Mname 都部分依赖于键码,当一个学生选修了多门
334334

335335
**图解:**
336336

337-
T1 修改一个数据,T2 随后读取这个数据。如果 T1 撤销了这次修改,那么 T2 读取的数据是脏数据。
337+
  T1 修改一个数据,T2 随后读取这个数据。如果 T1 撤销了这次修改,那么 T2 读取的数据是脏数据。
338338

339339
<div align="center"><img src="assets/dd782132-d830-4c55-9884-cfac0a541b8e.png" width="450"/></div><br/>
340340

@@ -378,7 +378,7 @@ select salary from employee empId ="Mary";
378378

379379
**图解:**
380380

381-
T2 读取一个数据,T1 对该数据做了修改。如果 T2 再次读取这个数据,此时读取的结果和第一次读取的结果不同。
381+
  T2 读取一个数据,T1 对该数据做了修改。如果 T2 再次读取这个数据,此时读取的结果和第一次读取的结果不同。
382382

383383
<div align="center"><img src="assets/c8d18ca9-0b09-441a-9a0c-fb063630d708-1534474726485.png" width="400"/></div><br/>
384384

@@ -427,7 +427,7 @@ select * from employee where salary =1000;
427427

428428
**图解:**
429429

430-
T1 读取某个范围的数据,T2 在这个范围内插入新的数据,T1 再次读取这个范围的数据,此时读取的结果和和第一次读取的结果不同。
430+
  T1 读取某个范围的数据,T2 在这个范围内插入新的数据,T1 再次读取这个范围的数据,此时读取的结果和和第一次读取的结果不同。
431431

432432
<div align="center"><img src="assets/72fe492e-f1cb-4cfc-92f8-412fb3ae6fec.png" width="400"/></div><br/>
433433

0 commit comments

Comments
 (0)