Update 数据库系统原理.md
This commit is contained in:
parent
3d315e6916
commit
21e21c591a
@ -99,12 +99,14 @@ T<sub>1</sub> 和 T<sub>2</sub> 两个事务都对一个数据进行修改,T<s
|
||||
## 读脏数据
|
||||
|
||||
T<sub>1</sub> 修改一个数据,T<sub>2</sub> 随后读取这个数据。如果 T<sub>1</sub> 撤销了这次修改,那么 T<sub>2</sub> 读取的数据是脏数据。
|
||||
**解决办法**:第一个事务提交前,任何其他事务不可读取其修改过的值
|
||||
|
||||
<div align="center"> <img src="pics/bab0fba6-38e4-45f7-b34d-3edaad43810f.jpg" width="400"/> </div><br>
|
||||
|
||||
## 不可重复读
|
||||
|
||||
T<sub>2</sub> 读取一个数据,T<sub>1</sub> 对该数据做了修改。如果 T<sub>2</sub> 再次读取这个数据,此时读取的结果和第一次读取的结果不同。
|
||||
**解决办法**:只有在修改事务完全提交之后才可以读取数据
|
||||
|
||||
<div align="center"> <img src="pics/43bf0957-0386-4c09-9ad7-e163c5b62559.jpg" width="400"/> </div><br>
|
||||
|
||||
@ -112,7 +114,7 @@ T<sub>2</sub> 读取一个数据,T<sub>1</sub> 对该数据做了修改。如
|
||||
## 幻影读
|
||||
|
||||
T<sub>1</sub> 读取某个范围的数据,T<sub>2</sub> 在这个范围内插入新的数据,T<sub>1</sub> 再次读取这个范围的数据,此时读取的结果和和第一次读取的结果不同。
|
||||
|
||||
**解决办法**:在操作事务完成数据处理之前,任何其他事务都不可以添加新数据
|
||||
<div align="center"> <img src="pics/2959e455-e6cb-4461-aeb3-e319fe5c41db.jpg" width="400"/> </div><br>
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user