并发操作带来数据不一致性包括哪三类?
并發(fā)操作帶來數(shù)據(jù)不一致性包括:丟失修改、不可重復讀、讀“臟”數(shù)據(jù)。產(chǎn)生這三種現(xiàn)象的原因是并發(fā)操作破壞了事務(wù)的隔離性。為了應(yīng)對這些數(shù)據(jù)不一致性,主要技術(shù)主要有:封鎖,時間戳,樂觀控制法。
并發(fā)操作會帶來哪些數(shù)據(jù)不一致性 ( )
A.丟失修改、不可重復讀、臟讀、死鎖
B.不可重復讀、臟讀、死鎖
C.丟失修改、臟讀、死鎖
D.丟失修改、不可重復讀、臟讀
正確答案:D
答案解析:
事務(wù)是并發(fā)控制的基本單位,保證事務(wù)的ACID特性是事務(wù)處理的重要任務(wù),而事務(wù)ACID特性可能遭到破壞的原因之一就是多個事務(wù)對數(shù)據(jù)庫的并發(fā)操作造成的。
并發(fā)操作帶來的數(shù)據(jù)不一致性重要有丟失修改,不可重復讀,讀“臟”數(shù)據(jù)。
1、丟失修改
兩個事務(wù)T1和T2讀入同一個數(shù)據(jù)并修改,T2提交的結(jié)果破壞了T1提交的結(jié)果,導致了T1的修改被丟失。典型例子:買飛機票或者火車票的例子。
2、不可重復讀
不可重復讀指的是事務(wù)T1讀取數(shù)據(jù)后,事務(wù)T2執(zhí)行更新操作,使T1無法再現(xiàn)前一次讀取的結(jié)果。
分為以下三種情況:
(1)事務(wù)T1讀取了某一數(shù)據(jù)后,事務(wù)T2對其做了修改,當事務(wù)T1再次讀數(shù)據(jù)時,得到了與前一次不同的值。
(2)事務(wù)T1讀取了某一數(shù)據(jù)后,事務(wù)T2刪除了其中的記錄,當事務(wù)T1再次讀數(shù)據(jù)時,發(fā)現(xiàn)某些記錄神秘消失了。
(3)事務(wù)T1讀取了某一數(shù)據(jù)后,事務(wù)T2插入了一些新的記錄,當事務(wù)T1再次讀數(shù)據(jù)時,發(fā)現(xiàn)多了一些記錄。
后兩種操作叫做幻影現(xiàn)象。
3、讀“臟”數(shù)據(jù)
讀“臟”數(shù)據(jù)只得是事務(wù)T1修改了某一數(shù)據(jù),并將其寫回磁盤,事務(wù)T2讀取某一數(shù)據(jù)后,T1由于某種原因撤銷了操作,恢復原值,這時T2讀到的數(shù)據(jù)就和數(shù)據(jù)庫中的數(shù)據(jù)不一致,稱為讀“臟”數(shù)據(jù)。
產(chǎn)生以上三種現(xiàn)象的原因是并發(fā)操作破壞了事務(wù)的隔離性。為了應(yīng)對這些數(shù)據(jù)不一致性,主要技術(shù)主要有:封鎖,時間戳,樂觀控制法。
更多相關(guān)知識,請訪問:PHP中文網(wǎng)!
總結(jié)
以上是生活随笔為你收集整理的并发操作带来数据不一致性包括哪三类?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 联想创投携手12家被投企业MWC展示元宇
- 下一篇: 教师节文案想好了吗?看这!