事務與併發控制

2022-09-27 18:09:07 字數 1605 閱讀 5046

所謂事務是使用者定義的乙個資料操作序列,這些操作可作為乙個完整的工作單元,要麼全部執行,要麼全部不執行,是乙個不可分割的工作單位.

事務中的操作一般是對資料的更新操作,包括增,刪,改.

事務的特徵:原子性(atomicity),一致性(consistency),隔離性(isolation),持續性(durability)    acid

併發操作問題

丟失更新:事務t1,t2同時讀入同一資料並加以修改,t2的提交結果會破壞t1提交的結果.

不可重複讀:事務t1讀取資料後,事務t2執行更新操作,使t2無法再現前一次讀取結果.

讀"髒"資料:事務t1修改資料後撤銷,使得t2讀取的資料與資料庫中不一致.

封鎖是最常用的併發控制技術.

基本思想:需要時,事務通過向系統請求對它所希望的資料物件加鎖,以確保它不被非預期改變.

鎖:乙個鎖實質上就是允許或阻止乙個事務對乙個資料物件的訪問特權.

基本的鎖型別:1)排他鎖(x鎖),用於寫操作. 2)共享鎖(s鎖),用於讀操作

封鎖的工作原理:

1)若事務t對資料d加了x鎖,則所有別的事務對資料d的鎖請求都必須等待直到事務t釋放鎖.

2)若事務t對資料d加了s鎖,則別的事務還可對資料d請求s鎖,而對資料d的x鎖請求必須等待直到事務t釋放鎖.

3)事務執行資料庫操作時都要先請求相應的鎖,即對讀請求s鎖,對更新請求x鎖.這個過程一般是由dbms在執行操作時自動隱含地進行.

4)事務一直占有獲得的鎖直到結束時釋放.

封鎖的粒度:通常用粒度來描述封鎖的資料單元的大小,dbms可以決定不同粒度的鎖.粒度越細,併發性越大,但軟體複雜性和系統開銷也就越大.

封鎖的級別:封鎖的級別又稱為一致性級別或隔離度.

0級封鎖:不重寫其他非0級封鎖事務的未提交的更新資料(實用價值低).

1級封鎖:不允許重寫未提交的更新資料.防止了丟失更新的發生.

2級封鎖:既不重寫也不讀未提交的更新資料(防止了讀髒資料).

3級封鎖:不讀未提交的更新資料,不寫任何(包括讀操作)未提交資料.   //不代表完全封鎖

死鎖和活鎖:活鎖-先來先服務  死鎖-預防 1)一次性鎖請求 2)鎖請求排序 3)序列化處理 4)資源剝奪

可序列性:一組事務的乙個排程就是它們的基本操作的一種排序.

在資料庫系統中,可序列性就是併發執行的正確性準則,即當且當一組事務的併發執行排程是可序列化的,才認為它們是正確的.

兩段封鎖法(two-phase locking,2pl)

1)發展(growing)或加鎖階段 2)收縮(shrinking)或釋放鎖階段

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

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

事務的併發控制

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

事務併發控制(一)

1 事務的概念 事務是使用者定義的一組資料庫操作序列。事務具有acid特性 原子性 atomicity 一致性 consistency 隔離性 isolation 和持續性 durability 原子性指 事務包含的所有操作要麼全部被執行,要麼都不執行 一致性指 事務的執行結果必須使資料庫從乙個一致...