一:事務的概念
事務的特性: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...