事务T1读取某一数据后,事务T2对其做了修改,当事务1再次读该数据时,得到与前一次不同的值.例如,T1读取B=100进行运算,T2读取同一数据B,对其进行修改后将B=200写回数据库.T1为了对读取值校对重读B,B已为200,与第一次读取值不一致.
事务T1按一定条件从数据库中读取了某些数据记录后,事务T2删除了其中部分记录,当T1再次按相同条件读取数据时,发现某些记录神密地消失了.
事务T1按一定条件从数据库中读取某些数据记录后,事务T2插入了一些记录,当T1再次按相同条件读取数据时,发现多了一些记录.(这也叫做幻影读) 答案补充 读"脏"数据是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤消,这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为"脏"数据,即不正确的数据.
产生上述三类数据不一致性的主要原因是并发 *** 作破坏了事务的隔离性.并发控制就是要用正确的方式调度并发 *** 作,使一个用户事务的执行不受其它事务的干扰,从而避免造成数据的不一致性.答案补充 两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了T1提交的结果,导致T1的修改被丢失,即丢失的修改.
大致会产生三类:1、丢失更新2、不可重复读3、读“脏”数据。解决方法:封锁:排他锁(X锁),共享锁(S锁),三级封锁协议,两段锁协议(2PL),其他的我也不清楚了,这些也是我在书上看的,不要见怪!欢迎分享,转载请注明来源:内存溢出
评论列表(0条)