并发 *** 作会带来哪些数据不一致性.a,丢失修改,不可重复读,读脏数据,死锁 b,不

并发 *** 作会带来哪些数据不一致性.a,丢失修改,不可重复读,读脏数据,死锁 b,不,第1张

主要是一致性问题.常见并发并发一致性问题包括:丢失的修改、不可重复读、读脏数据幻影读(幻影读在一些资料中往往与不可重复读归为一类).答案补充 不可重复读是指事务T1读取数据后,事务T2执行更新 *** 作,使T1无法再现前一次读取结果.具体地讲,不可重复读包括三种情况:

事务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),其他的我也不清楚了,这些也是我在书上看的,不要见怪!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9927792.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存