每个时刻只有一个事务运行,其他事务必须等到这个事务结束后才运行,当多个用户并发存取数据库时就会产生多个事务同时存取同一数据的情况。事务时并发控制的基本单位。
事务并发操作带来的数据不一致性包括:丢失数据,不可重复读结果,读取脏数据。
1、丢失数据(lost update)
两个事务读入同一数据并修改,t2提交的结果破坏了t1提交的结果,导致t1提交的结果丢失。
2不可重复读(non-repeatable read)
不可重复读指t1读取数据后,t2执行更新操作,使t1无法读取之前结果。
(1)t1读取某一数据,t2对其修改,t1读取数据时得到的不同的值。
(2)t1按照一定条件读取某些数据,t2删除了部分记录,t1再次按照相同的条件读取数据时,数据消失。
(3)t1按照一定条件读取某些数据,t2插入了部分记录,t1再次按照相同的条件读取数据时,数据增多。
3读脏数据
指的是t1修改某一数据,并写入磁盘,t2读取同一数据后,t1由于某种原因撤销,这时t1已修改的数据恢复原值,t2读到的数据与数据库中的数据不一致。则t2读到的数据为脏数据。不正确的数据。