當前位置:首頁 » 數據倉庫 » 資料庫中臟數據是什麼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫中臟數據是什麼

發布時間: 2022-06-30 16:50:42

⑴ 請問java中的臟數據是指什麼

「臟數據 」在很多地方都有出現比如:資料庫,MFC的文檔設置中。通常臟數據是表示一個數據已經被修改,但是還沒有保存或進一步的處理。比如在MFC的文檔中當你把一個文檔設置成由臟數據時假如你退出程序,就會提示你是否保存修改當數據。
臟數據 一般就是一個標志,數據被修改了。

⑵ SQL中臟數據是啥意思

臟讀:一個用戶對一個資源做了修改,此時另外一個用戶正好讀取了這條被修改的記錄,然後,第一個用戶放棄修改,數據回到修改之前,這兩個不同的結果就是臟讀。

⑶ oracle中臟數據是什麼意思怎麼產生的

臟數據就是已經寫入到內存里,但是還沒有寫入到硬碟上的數據。一般當事物沒有提交的時候會產生,當事物提交以後,臟數據就會被寫進硬碟的數據塊,這時他就不叫臟數據了。

⑷ 什麼是臟數據

臟數據(Dirty Read)是指源系統中的數據不在給定的范圍內或對於實際業務毫無意義,或是數據格式非法,以及在源系統中存在不規范的編碼和含糊的業務邏輯。

通俗的講,當一個事務正在訪問數據,並且對數據進行了修改,而這種修改還沒有提交到資料庫中,這時,另外一個事務也訪問這個數據,然後使用了這個數據。

因為這個數據是還沒有提交的數據,那麼另外一個事務讀到的這個數據是臟數據,依據臟數據所做的操作可能是不正確的。

(4)資料庫中臟數據是什麼擴展閱讀:

臟數據產生的影響:

1、丟失的修改:一個事物的更新覆蓋了另一個事物的更新。例如:事物A和B讀入同一數據並修改,B提交的結果破壞了A提交的結果,導致A的修改被丟失。

2、不可重復讀:一個事物兩次讀取同一個數據,兩次讀取的數據不一致。不可重復讀是指事物A讀取數據後,事物B執行更新操作,事務A 無法再現前一次讀取結果。

(1)事物A讀取某一數據後,事物B對其作了修改,當事物A再次讀取數據時,得到與前一次不同的值。

(2)事物A按一定的條件從資料庫中讀取了某些數據後,事物B刪除了其中部分記錄,當A再次以相同條件讀取時,發現某些記錄消失了。

3、臟讀:一個事物讀取了另一個事物未提交的數據。讀「臟」數據是指事物A修改某一數據,並將其寫回磁碟,事物B讀取同一數據後,A由於某種原因被撤銷,這時A已修改過的數據恢復原值,B讀到的數據就與資料庫中的數據不一致,則B讀到的數據為「臟」數據,即不正確的數據。

4、幻讀:一個事務按相同的查詢條件重新讀取以前檢索過的數據,卻發現其他事務插入了滿足其查詢條件的新數據,這種現象就稱為「幻讀」。

⑸ 資料庫的數據臟讀是什麼意思,怎樣有效的避免數組臟讀,博客

臟讀就是指當一個事務正在訪問數據,並且對數據進行了修改,而這種修改還沒有提交到資料庫中,這時,另外一個事務也訪問這個數據,然後使用了這個數據。因為這個數據是還沒有提交的數據,那麼另外一個事務讀到的這個數據是臟數據,依據臟數據所做的操作可能是不正確的。

1、如果都未更新你就讀取了,或者都更新完才讀取,這都不是臟讀,因為得到的是更新前的有效值,或完全更新後的值。

2、如果那個用戶更新一半你就讀取了,也就是說更新了A,正打算要更新B但尚未更新時,就讀取了,此時得到的就是臟數據。

避免臟讀的辦法就是採取事務,使得用戶正在更新時鎖定資料庫,阻止你讀取,直至全部完成才讓讀取。

(5)資料庫中臟數據是什麼擴展閱讀:

在資料庫技術中,臟數據在臨時更新(臟讀)中產生。事務A更新了某個數據項X,但是由於某種原因,事務A出現了問題,於是要把A回滾。但是在回滾之前,另一個事務B讀取了數據項X的值(A更新後),A回滾了事務,數據項恢復了原值。事務B讀取的就是數據項X的就是一個「臨時」的值,就是臟數據。

⑹ 求助大神 什麼叫資料庫的臟數據

LRU(LeastRecentlyUsed)演算法—最近最少使用原則。ORACLE採用LRU保持內存中的數據塊是最近使用的,使盡可能減少I/O,提高資料庫的性能;

LRU列表(LRUList)—是數據緩沖區的管理列表區。登記了數據緩沖區空閑塊和保持塊的地址和狀態標識(Free自由、Pinned保持、Drity臟);

臟列表(DIRTYList)—數據緩存區中被修改過的數據塊地址列表區。當數據緩沖區中的塊被修改,則被標志為「臟」塊。DBWR的主要任務是把「臟」數據緩沖塊寫入磁碟,使緩沖區保持「干凈」。

⑺ 在資料庫技術中,臟數據是什麼

臟數據在臨時更新(臟讀)中產生。事務A更新了某個數據項X,但是由於某種原因,事務A出現了問題,於是要把A回滾。但是在回滾之前,另一個事務B讀取了數據項X的值(A更新後),A回滾了事務,數據項恢復了原值。事務B讀取的就是數據項X的就是一個「臨時」的值,就是臟數據。

⑻ 資料庫的數據臟讀是什麼意思怎樣有效的避免數組臟讀

臟讀就是指讀到還沒完全弄好的數據。避免臟讀的辦法就是採取事務,使得他用戶正在更新時鎖定資料庫,阻止你讀取,直至全部完成才讓你讀取。

⑼ 什麼是操作不能重復讀 丟失修改 讀"臟"數據

常見並發一致性問題包括:丟失的修改、不可重復讀、讀臟數據、幻影讀(幻影讀在一些資料中往往與不可重復讀歸為一類)。
丟失修改
下面先來看一個例子,說明並發操作帶來的數據的不一致性問題。
考慮飛機訂票系統中的一個活動序列:
甲售票點(甲事務)讀出某航班的機票余額A,設A=16.
乙售票點(乙事務)讀出同一航班的機票余額A,也為16.
甲售票點賣出一張機票,修改余額A←A-1.所以A為15,把A寫回資料庫.
乙售票點也賣出一張機票,修改余額A←A-1.所以A為15,把A寫回資料庫.
結果明明賣出兩張機票,資料庫中機票余額只減少1。
歸納起來就是:兩個事務T1和T2讀入同一數據並修改,T2提交的結果破壞了T1提交的結果,導致T1的修改被丟失。前文(2.1.4數據刪除與更新)中提到的問題及解決辦法往往是針對此類並發問題的。但仍然有幾類問題通過上面的方法解決不了,那就是:
不可重復讀
不可重復讀是指事務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讀到的數據就為"臟"數據,即不正確的數據。
產生上述三類數據不一致性的主要原因是並發操作破壞了事務的隔離性。並發控制就是要用正確的方式調度並發操作,使一個用戶事務的執行不受其它事務的干擾,從而避免造成數據的不一致性。