Skip to content

Commit

Permalink
auto commit
Browse files Browse the repository at this point in the history
  • Loading branch information
CyC2018 committed Mar 22, 2018
1 parent 17bc374 commit ea34288
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 6 deletions.
36 changes: 30 additions & 6 deletions notes/数据库系统原理.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 10,15 @@
* [封锁粒度](#封锁粒度)
* [封锁协议](#封锁协议)
* [四、隔离级别](#四隔离级别)
* [五、关系数据库设计理论](#五关系数据库设计理论)
* [五、多版本并发控制](#五多版本并发控制)
* [六、关系数据库设计理论](#六关系数据库设计理论)
* [函数依赖](#函数依赖)
* [异常](#异常)
* [范式](#范式)
* [、数据库系统概述](#六数据库系统概述)
* [、数据库系统概述](#七数据库系统概述)
* [基本术语](#基本术语)
* [数据库的三层模式和两层映像](#数据库的三层模式和两层映像)
* [、关系数据库建模](#七关系数据库建模)
* [、关系数据库建模](#八关系数据库建模)
* [ER 图](#er-图)
* [约束](#约束)
* [参考资料](#参考资料)
Expand Down Expand Up @@ -178,7 179,29 @@ lock-x(A)...unlock(A)...lock-s(B)...unlock(B)...lock-s(c)...unlock(C)...
| 可重复读 | NO | NO | YES |
| 可串行化 | NO | NO | NO |

# 五、关系数据库设计理论
# 五、多版本并发控制

(未完待续)

(Multi-Version Concurrency Control, MVCC)是 MySQL 的 InnoDB 存储引擎实现的一种并发控制方式,通过保存数据在某个时间点的快照,让多个事务对同一个数据的读取结果是一致的。

MVCC 可以工作在提交读和可重复读两个隔离级别下,因为未提交读总是读取最新的数据行,可串行化会对所有读取的行都加锁。

<font size=4> **版本号是一个** </font></br>

版本是一个递增的数字,每开始一个新的事务,系统版本号就会自动递增。

事务的版本号为事务开始时的系统版本号。

InooDB 的 MVCC 在每行记录后面都保存着两个隐藏的列,一个列保存着创建的版本号,一个列保存着删除的版本号。

<font size=4> **Undo 日志** </font></br>

MVCC 实现使用到的快照其实是 Undo 日志,它通过回滚指针把一个数据行(Record)的所有版本连接起来。

<div align="center"> <img src="../pics//e41405a8-7c05-4f70-8092-e961e28d3112.jpg"/> </div><br>

# 六、关系数据库设计理论

## 函数依赖

Expand Down Expand Up @@ -305,7 328,7 @@ Sname, Sdept 和 Manme 都函数依赖于 Sno,而部分依赖于键码。当

可以分解成 SC(Sname, Cname, Grade) 和 ST(Sname, Tname),对于 ST,属性之间是多对多关系,无函数依赖。

# 、数据库系统概述
# 、数据库系统概述

## 基本术语

Expand Down Expand Up @@ -347,7 370,7 @@ Sname, Sdept 和 Manme 都函数依赖于 Sno,而部分依赖于键码。当

把模式的全局逻辑结构和内模式的物理结构联系起来,该映像可以保证数据和应用程序的物理独立性。

# 、关系数据库建模
# 、关系数据库建模

## ER 图

Expand Down Expand Up @@ -416,3 439,4 @@ Entity-Relationship,有三个组成部分:实体、属性、联系。
- [The Nightmare of Locking, Blocking and Isolation Levels!](https://www.slideshare.net/brshristov/the-nightmare-of-locking-blocking-and-isolation-levels-46391666)
- [三级模式与两级映像](http://blog.csdn.net/d2457638978/article/details/48783923)
- [Database Normalization and Normal Forms with an Example](https://aksakalli.github.io/2012/03/12/database-normalization-and-normal-forms-with-an-example.html)
- [The basics of the InnoDB undo logging and history system](https://blog.jcole.us/2014/04/16/the-basics-of-the-innodb-undo-logging-and-history-system/)
Binary file added pics/e41405a8-7c05-4f70-8092-e961e28d3112.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit ea34288

Please sign in to comment.