對事務與併發控制的認識

2021-07-09 07:22:44 字數 1098 閱讀 6351

一:事務的概念

事務的特性:acid,即原子性,一致性,隔離性和永續性。

事務的狀態:活躍狀態,部分提交狀態,提交狀態,失敗狀態和中止狀態。

sql對事務的支援:

sql中的事務的開始是隱含的,結束有兩種形式:

commit work

rollback work

set transaction語句的格式:

set transaction 事務模式列表

事務模式列表有訪問列表和隔離級別,訪問列表有read only和read write。隔離級別格式:

isolation level 級別

級別可以是:read uncommited,read commited,reaptable read,serialization。

二:併發控制概述

方式:交叉併發方式和同時併發方式。

併發執行可能導致的問題:覆蓋修改,讀髒資料,不可重複讀,其中不可重複讀有值改變,記錄消失,多出記錄。

三:併發排程的可序列化

四:基於鎖的協議

共享鎖和排他鎖:

s鎖和x鎖。

讀鎖和寫鎖。

鎖相容矩陣。

申請和釋放鎖的語句格式:

lock-s(q)

lock-x(q)

unlock(q)

封鎖協議:

一級封鎖協議:事務t更新資料物件q之前,要申請x鎖,並且事務結束後才釋放鎖。

二級封鎖協議:在一級封鎖協議的基礎上,事務t讀取資料物件q之前,要申請s鎖,讀取完就立即釋放鎖。

**封鎖協議:在一級封鎖協議的基礎上,事務t讀取資料物件q之前,要申請s鎖,但是事務結束後才釋放鎖。

read uncommited,read commited和repeatable read分別對應一級封鎖協議,二級封鎖協議和**封鎖協議。

活鎖和死鎖:

活鎖就是事務進入無限期等待狀態,是由於不公平的鎖排程導致的。

死鎖就是多個事務進入迴圈等待狀態。處理方法有預防措施和允許措施。

死鎖的預防:一次封鎖法和順序封鎖法。

死鎖的檢測和解除:

死鎖的檢測:超時法和等待圖法。

死鎖的解除。

事務與併發控制。

事務與併發控制

所謂事務是使用者定義的乙個資料操作序列,這些操作可作為乙個完整的工作單元,要麼全部執行,要麼全部不執行,是乙個不可分割的工作單位.事務中的操作一般是對資料的更新操作,包括增,刪,改.事務的特徵 原子性 atomicity 一致性 consistency 隔離性 isolation 持續性 durab...

事務的併發控制

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

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

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