因为多个事务对数据库的并发控制造成ACID特性被破坏,为保证数据的隔离性和一致性,需要并发控制。
一、多事务并发导致的问题
1.丢失修改(Lost Update,READ UNCOMMITED)
T1 T2
R(A)=16
R(A)=16
W(A)=A-1
W(A)=A-1
T1的修改丢失。
2.不可重复读(Non-Repeatable Read)
2.1T1读取数据,T2修改了数据,当T1再次读取刚才的数据发现前后不一致。
2.2T1读取数据,T2删除数据,T1按照相同条件重新读取数据,发现数据消失3
2.3T1读取数据,T2插入数据,T1按照相同条件重新读取数据,发现增加了数据。
2.2和2.3被称为幻影现象(SERIALIZABLE)。
3.读脏数据(Dirty Read)
T1修改数据并写回磁盘,T2读取数据,T1由于某种原因被撤销,这时T1已经恢复为原值,T2读取的数据和数据库中的数据不一致。
二、并发技术
数据库基础——并发控制
原文:http://www.cnblogs.com/bluewhy/p/4962919.html