事務和併發控制

2021-10-07 19:11:04 字數 1250 閱讀 6825

事務就是使用者定義的乙個資料庫操作序列,這些操作要麼全做,要麼全不做,是乙個不可分割的工作單位。

事物的acid特性

事務具有原子性,一致性,隔離性和永續性

原子性:表示事務中的操作是乙個原子操作,要麼全做,要麼全不做

一致性: 表示資料庫必須從乙個一致狀態轉移到另乙個一致狀態,一致性是與原子性密切相關的。

隔離性: 是指乙個事務的執行不能被其他事務干擾,即乙個事務內部操作及其使用的資料對其他併發事務是隔離的,併發執行的各個事物之間互不干擾。

永續性:指乙個事務一旦提交,他對資料庫中資料的改變時永久性的,接下來的操作或者故障不應該對其執行結果有任何影響。

併發操作帶來的資料不一致問題

併發操作帶來的資料不一致問題包括丟失修改,不可重複讀和讀髒資料。

丟失修改:兩個事務同時對乙個資料進行修改,後者完成的事務覆蓋改了前者的修改,導致前者的修改丟失。

不可重複讀:事務1讀取某個資料,事務2對該資料進行了修改,導致事務1無法重現前一次的讀取結果。

讀髒資料: 事務1修改某一資料後寫入磁碟,事務2讀取了該資料,但由於某種原因,事務1撤銷了修改,這時事務2讀取的資料就與資料庫中的資料不一致了,則事務2讀取的資料就是髒資料,即不正確的資料。

造成上述三類資料不一致問題的原因是併發操作破壞了事務的隔離性,併發控制機制就是要採用正確的方式來排程併發操作使乙個使用者事務的執行不受其他事務的影響,從而避免資料的不一致問題。

封鎖是實現併發控制的乙個重要的技術

排他鎖

又稱為寫鎖x,即對乙個資料物件加上寫鎖後,不再允許其他事務讀取和修改該物件。

共享鎖

又稱為讀鎖s,若事務對乙個資料物件加讀鎖後,則該事務和其他事務只能讀取該資料物件而不能寫。

一級封鎖協議

事務在修改資料物件r前必須對其加上寫鎖x,在事務完成後再釋放,一級封鎖協議可以解決丟失修改問題。

二級封鎖協議

二級封鎖協議在一級封鎖協議的基礎上增加了事務在讀取資料前必須對其新增讀鎖,在讀取資料後再釋放讀鎖。二級封鎖協議進一步防止了讀髒資料的問題

**封鎖協議

**封鎖協議在一級封鎖協議的基礎上增加了事務在讀取資料前必須對其新增讀鎖,在事務結束後再釋放讀鎖。**封鎖協議進一步解決了不可重複讀的問題。

事務併發 併發控制(加鎖)

事務處理中的併發控制 1.併發操作 資料庫是乙個共享資源,允許多個使用者程式並行地訪問資料庫,所以當多個使用者併發地訪問同一資料,就可能出現資料的不一致性。例如 假設有兩個事務 t1 和 t2 它們都需要讀出並修改資料 a 其執 況如下所示 執行順序 1 2 3 4 5 6 事務t1 讀aa a 1...

分布式事務和事務併發控制

近期阿里開源了fescar分布式事務中介軟體,值得期待.分布式事務是指乙個事務會涉及到到多個應用介面呼叫,底層資料表涉及到多個,但資料庫可以是乙個或多個,它是傳統單資料庫事務在廣度上的延伸.事務併發控制,在oltp關係型資料庫中,事務併發控制往往是指事務的隔離性,在本文中,指的是應用層的併發事務控制...

事務的併發控制

我們知道,當多個執行緒都開啟事務運算元據庫中的資料時,資料庫系統要能進行隔離操作以保證各個執行緒獲取資料的準確性。也就是說,事務的隔離性主要用於解決事務的併發安全問題 事務隔離級別 髒讀不可重複讀 幻讀讀未提交 read uncommitted 是是 是不可重複讀 read committed 否是...