并发一致性问题
在并发环境下,事务的隔离性很难保证,因此会出现很多并发一致性的问题。
丢失修改
T1和T2两个事务都对一个数据进行修改,T1先修改,T2随后修改,T2的修改覆盖了T1的修改。
读脏数据
T1修改一个数据,T2随后读取这个数据。如果T1撤销了这次修改,那么T2读取的数据就是脏数据。
不可重复读
T2读取一个数据,T1对该数据做了修改。如果T2再次读取这个数据,此时读取的结果和第一次读取的结果不同。
T1读取某个范围的数据,T2在这个范围内插入新的数据,T1再次读取这个范围的数据,此时读取的结果和第一次读取的结果不同。
产生并发不一致性的原因是破坏了事务的隔离性,解决方法是通过并发控制来保证事务的隔离性。并发控制可以通过封锁来实现,但是封锁操作需要用户自己来进行控制,相当复杂。数据库管理系统提供了事务的隔离级别,让用户以一种更轻松的方式处理并发一致性问题。