臟數據
臟數據
臟數據(Dirty Read)是指源系統中的數據不在給定的範圍內或對於實際業務毫無意義,或是數據格式非法,以及在源系統中存在不規範的編碼和含糊的業務邏輯。
在資料庫技術中,臟數據在臨時更新(臟讀)中產生。事務A更新了某個數據項X,但是由於某種原因,事務A出現了問題,於是要把A回滾。但是在回滾之前,另一個事務B讀取了數據項X的值(A更新后),A回滾了事務,數據項恢復了原值。事務B讀取的就是數據項X的就是一個“臨時”的值,就是臟數據。
通俗的講,當一個事務正在訪問數據,並且對數據進行了修改,而這種修改還沒有提交到資料庫中,這時,另外一個事務也訪問這個數據,然後使用了這個數據。因為這個數據是還沒有提交的數據,那麼另外一個事務讀到的這個數據是臟數據,依據臟數據所做的操作可能是不正確的。