事務 二 事務的併發問題

2021-09-29 21:44:26 字數 1133 閱讀 5661

事務是併發操作的基本單位,保證事務acdi特性是事務處理的重要任務,而事務acdi特性遭到破壞的乙個直接原因就是是多個事務對資料庫(共享資源)的併發操作引起的,為了保證事務的隔離性與一致性。dbms必須對事物進行合理正確的排程。由於事物的併發操作可能導致事務之間進行交織操作,可能會出現資料不一致的問題,這種問題我們稱之為「併發問題」。

事務的併發問題典型的有三種:丟失更新問題、不可重複讀問題,髒讀問題。

1、丟失更新問題

設兩個事務t1,t2,當他們同時讀入乙個資料加以修改時,事務t2提交的結果會破壞事務t1提交的結果,由此導致t1的修改被丟失了,這就是由於資料庫併發操作引起的資料一致性問題。

特點:事務 t1,t2對統一資料進行修改操作。

解決丟失問題思路:悲觀鎖,樂觀鎖

2、不可重複度

設兩個事務t1,t2,不可重複讀是指事務t1讀取資料之後,事務t2對該資料進行了修改操作,使事務t1無法再現上次的讀取結果。不可重複度一般包含以下三種情況:

(1) 事務t1讀取資料後,事務t2對其做了修改,當事務t1再次讀取該資料的時候得到了與之前讀取不同的值。

(2) 事務t1按照一定的條件從資料庫中讀取某些記錄之後,事務t2刪除了相同條件下的部分資料記錄,當事務按照相同條件讀取資料時,發現某些記錄神秘的消失了。

(3) 事務t1按照一定的條件從資料庫中讀取某些記錄之後,事務t2在相同條件下增加了部分資料記錄,當事務按照相同條件讀取資料時,發現得到的資料結果集比之前增加了。

特點:事務t1對資料進行修改,事務t2對資料進行讀

3、讀髒資料

設事務t1,t2,讀髒資料是指,事務t1修改了某一資料並將資料寫回了磁碟裡,事務t2也讀取了相同的資料,事務t1由於某些操作進行了撤銷操作,這時事務t1已經被修改過的資料恢復了原來的值,事務t2讀到的資料就與資料庫中的資料不一致,則事務t2讀到的資料就是一條「髒」資料,即不正確的資料。

特點:事務t1對資料進行修改,事務t2對資料進行讀取

導致上述3種資料不一致的主要原因時併發操作破壞了事務的隔離性,併發控制機制就是正確的排程這些併發操作,使乙個使用者的事務的執行不受其他事物的干擾從而避免造成資料不一致的現象。

那麼都有哪些手段呢?封鎖,時間戳,樂觀控制法和多版本控制。

事務的併發問題

1 髒讀 事務a讀取了事務b更新的資料,然後b回滾操作,那麼a讀取到的資料是髒資料 2 不可重複讀 事務 a 多次讀取同一資料,事務 b 在事務a多次讀取的過程中,對資料作了更新並提交,導致事務a多次讀取同一資料時,結果 不一致。3 幻讀 系統管理員a將資料庫中所有學生的成績從具體分數改為abcde...

事務 鎖 併發 問題

sql server鎖型別 1 holdlock 在該錶上保持共享鎖,直到整個事務結束,而不是在語句執行完立即釋放所新增的鎖。2 nolock 不新增共享鎖和排它鎖,當這個選項生效後,可能讀到未提交讀的資料或 髒資料 這個選項僅僅應用於select語句。3 paglock 指定新增頁鎖 否則通常可能...

事務得併發問題理解

事務得併發問題 1 髒讀 事務a讀取了事務b更新的資料,然後b回滾操作,那麼a讀取到的資料是髒資料 2 不可重複讀 事務 a 多次讀取同一資料,事務 b 在事務a多次讀取的過程中,對資料作了更新並提交,導致事務a多次讀取同一資料時,結果 不一致。3 幻讀 系統管理員a將資料庫中所有學生的成績從具體分...