並發操作帶來資料不一致性包括:遺失修改、無法重複讀取、讀取「髒」資料。產生這三種現象的原因是並發操作破壞了事務的隔離性。為了因應這些資料不一致性,主要技術主要有:封鎖,時間戳,樂觀控制法。
並發運算會帶來哪些資料不一致性 ( )
A.遺失修改、不可重複讀取、髒讀、死鎖
B.不可重複讀取、髒讀、死鎖
C.遺失修改、髒讀、死鎖
D.遺失修改、不可重複讀取、髒讀
正確答案:D
#答案解析:
##交易是並發控制的基本單位,確保事務的ACID特性是事務處理的重要任務,而事務ACID特性可能遭到破壞的原因之一就是多個事務對資料庫的並發操作造成的。 並發操作帶來的資料不一致性重要有遺失修改,不可重複讀取,讀取「髒」資料。 1、遺失修改兩個事務T1和T2讀入同一個資料並修改,T2提交的結果破壞了T1提交的結果,導致了T1的修改被遺失。典型例子:買機票或火車票的例子。 2、不可重複讀取不可重複讀指的是事務T1讀取資料後,事務T2執行更新操作,使T1無法重現前一次讀取的結果。 分為以下三種情況:(1)事務T1讀取了某一資料後,事務T2對其做了修改,當事務T1再次讀取資料時,就得到了與前一次不同的值。 (2)事務T1讀取了某一資料後,事務T2刪除了其中的記錄,當事務T1再次讀取資料時,發現某些記錄神秘消失了。 (3)事務T1讀取了某一資料後,事務T2插入了一些新的記錄,當事務T1再次讀取資料時,發現多了一些記錄。 後兩種操作叫做幻影現象。 3、讀「髒」數據讀「髒」數據只得是事務T1修改了某一數據,並將其寫回磁盤,事務T2讀取某一數據後, T1因為某些原因撤銷了操作,恢復原值,這時T2讀到的資料就和資料庫中的資料不一致,稱為讀取「髒」資料。 產生以上三種現象的原因是並發操作破壞了交易的隔離性。為了因應這些資料不一致性,主要技術主要有:封鎖,時間戳,樂觀控制法。 更多相關知識,請造訪:PHP中文網!
以上是並發操作帶來資料不一致性包含哪三類?的詳細內容。更多資訊請關注PHP中文網其他相關文章!