版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第十二章 事務處理技術之一:并發(fā)控制技術生物醫(yī)學軟件工程事務是數(shù)據庫的一個操作序列,是數(shù)據庫應用程序的基本邏輯單元。程序、事務、操作事務的開始與結束可以由用戶顯示的控制。若用戶沒有顯示的定義事務,則由DBMS按缺省規(guī)定自動劃分事務。12.1 事務概述一個存取或更改數(shù)據庫的程序的運行稱為數(shù)據庫事務。在數(shù)據項和磁盤塊的級別上,事務中數(shù)據庫操作只包括以下兩個讀寫操作:Read (X, Y)Write (Y, X)事務在運行中的狀態(tài)可以劃分為如下五種:(1)活動狀態(tài)(2)部分提交狀態(tài) (3)失敗狀態(tài)(4)異常結束狀態(tài)(5)提交狀態(tài)活動狀態(tài)部分提交狀態(tài)失敗狀態(tài)提交狀態(tài)異常結束狀態(tài)執(zhí)行完未完成beginc
2、ommit成功嗎?rollback撤消影響存盤事務的特性(ACID)原子性(Atomicity):每個事務的所有操作要么被全部成功的執(zhí)行,要么一個也不被執(zhí)行。一致性(Consistency):在事務開始之前和事務結束之后,數(shù)據庫的完整性約束沒有被破壞。隔離性(Isolation):兩個事務的執(zhí)行是互不干擾的。持續(xù)性(Durability):事務完成后,它對數(shù)據庫中數(shù)據的改變就是永久的,不會被回滾。多個事務并發(fā)運行時,不同事務的操作交叉運行。事務在運行中被強制停止。破壞事務的ACID特性12.2 并發(fā)控制概述多用戶數(shù)據庫系統(tǒng):多個用戶同時使用的數(shù)據庫系統(tǒng)。本章討論的多用戶數(shù)據庫系統(tǒng)僅考慮單處理機
3、。在這種情況下,多個程序的并發(fā)運行實際是輪流交叉運行一個存取或改變數(shù)據庫內容的程序的運行稱為一個數(shù)據庫事務,簡稱為事務。對多個同時運行的事務需要適當控制,這不但可以減少處理機的空閑時間,提高系統(tǒng)效率,而且可以避免發(fā)生一些錯誤。例如,由于飛機售票系統(tǒng)和銀行通存通取業(yè)務系統(tǒng)均需要同時處理多個用戶提交的數(shù)據庫事務,因此都屬于多用戶數(shù)據庫系統(tǒng)事務T2:在x添加mread(x);x=x+m;write(x).設始值為x=80, n=5,m=4,若按先T1后T2 或先T2后T1的串行執(zhí)行,結果是x=79;但按左邊表格所示的并發(fā)執(zhí)行順序,結果卻是x=84。這個并發(fā)執(zhí)行的結果是錯誤的。產生錯誤的原因是T2在T
4、1把更新數(shù)據寫入磁盤之前讀x ,丟失T1對x更新結果兩事務并發(fā)執(zhí)行事務T1 事務T2read(x);x=x-n; read(x); x=x+m;write(x);read(y); write(x);y=y+n;write(y).對并發(fā)不加控制而引起問題例1:數(shù)據更新丟失問題事務T1:在x取出n,加到y(tǒng)上去read(x);x=x-n;write(x);read(y);y=y+n;write(y).事務T1:在x取出n,加到y(tǒng)上去read(x);x=x-n;write(x);read(y);y=y+n;write(y).事務T2:在X添加mread(x);x=x+m;write(x).例2:臨時值
5、問題事務T1讀y失敗,本應恢復x,但x已被T2更新,故無法恢復x。兩事務并發(fā)執(zhí)行事務T1 事務T2read(x);x=x-n;write(x) read(x); x=x+m; write(x);read(y);讀y失敗事務T1:在x取出n,加到Y上去read(x);x=x-n;write(x);read(y);y=y+n;write(y).事務T2:累計x+ys=0read(y);s=s+yread(x);s=s+x;例3:錯誤聚集計算問題事務T2累積過程中受到事務T1的干擾,因而得出錯誤結果兩事務并發(fā)執(zhí)行事務T1 事務T2 s=0; read(y); s=s+y;read(x);x=x-n;
6、write(x); read(x); s=s+x;read(y);y=y+n;write(y).實際問題例子1:有47件襯衫 銷售員A賣出了3件襯衫并登記了這次銷售; 銷售員B賣出了2件襯衫并登記了這次銷售。例子2:銀行轉帳 從一個用戶帳戶中提出10000元到另一個用戶.12.3 事務的調度和可串行性事務的調度Read(A);A=A-50;Write(A);Read(B);B=B+50;write(B);Read(A);Tmp=A*0.1;A=A-tmp;Write(A);Read(B);B=B+tmp;Write(B);Read(A);Tmp=A*0.1;A=A-tmp;Write(A);R
7、ead(B);B=B+tmp;Write(B);Read(A);A=A-50;Write(A);Read(B);B=B+50;write(B);串行調度:一個事務的所有操作都執(zhí)行完后才知曉另一個事務的所有操作。并行調度:其他類型的調度。Read(A);A=A-50;Write(A);Read(A);Tmp=A*0.1;A=A-tmp;Write(A);Read(B);B=B+50;write(B);Read(B);B=B+tmp;Write(B);Read(A);A=A-50;Read(A);Tmp=A*0.1;A=A-tmp;Write(A);Read(B);Write(A);Read(B)
8、;B=B+50;write(B); B=B+tmp;Write(B);可串行性:并發(fā)運行的多個事務的運行效果與這些事務按某種次序順序運行的效果相同。Slock BY=read(B)=2;Slock AX=read(A)=2;Unlock(B)Unlock(A)Xlock(A)A=Y+1=3;Write(A)Xlock(B)B=X+1=3;Write(B)Unlock(A)Unlock(B)Slock BY=read(B)=2;Unlock(B)Xlock(A) Slock AA=Y+1=3; Write(A)Unlock(A) X=read(A)=3;Unlock(A)Xlock(B)B=X+
9、1=4;Write(B)Unlock(B)12.4 基于鎖的并發(fā)控制協(xié)議我們要求事務具有可串行性,如何保證事務具有可串行性?在互斥的方式下存取數(shù)據項,即當一個事務存取一個數(shù)據項時,不允許其他事務修改這個數(shù)據項?;阪i的互斥并發(fā)控制方法,稱為基于鎖的協(xié)議。問題的解決:基于鎖的并發(fā)控制協(xié)議共享鎖:如果事務T得到了數(shù)據項Q上的共享鎖,則T可以讀這個數(shù)據項,但不能夠寫這個數(shù)據項?;コ怄i:如果事務T得到了數(shù)據項Q上的互斥鎖,則T既可以讀這個數(shù)據項,也可以寫這個數(shù)據項。SX-S相容不相容相容X不相容不相容相容-相容相容相容要求系統(tǒng)中的每個事務在加鎖或釋放鎖時,都必須遵守一定的規(guī)則,這就是鎖協(xié)議。兩段鎖協(xié)議
10、:要求每個事務分為兩個階段進行數(shù)據項的加鎖和解鎖。加鎖階段:可以申請任何數(shù)據項上的任何鎖,不能釋放任何鎖。解鎖階段:可以釋放任何數(shù)據項上的任何鎖,但不能再申請鎖。問題1:兩事務并發(fā)執(zhí)行事務T1事務T2Xlock(x)waitingXlock(y)waitingRead(x)waitingx=x-nwaitingwrite(x);waitingUnlock(x)Xlock(x)read(y);Read(x)y=y+n;x=x+mwrite(y)write(x)Unlock(y)Unlock(x)事務T1事務T2Xlock(x)WaitingXlock(y)WaitingRead(x)Waitingx=x-nWaitingwrite(x);Waitingread(y);rollbackWaitingUnlock(x)Xlock(x)Unlock(y)Read(x)x=x+mwrite(x)Unlock(x)事務T1事務T2X
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 采訪溝通話術
- 隧道工崗前培訓制度
- 體育培訓送教上門制度規(guī)定
- 體系品質檢查培訓制度
- 培訓機構物資管理制度
- 棉紡廠教育培訓制度
- 焊接培訓考核制度及流程
- 新生兒??漆t(yī)師培訓制度
- 中老年模特培訓班制度
- 維修管理人員培訓制度
- 2026年藥店培訓計劃試題及答案
- 2026春招:中國煙草真題及答案
- 物流鐵路專用線工程節(jié)能評估報告
- 2026河南省氣象部門招聘應屆高校畢業(yè)生14人(第2號)參考題庫附答案
- 2026天津市南開區(qū)衛(wèi)生健康系統(tǒng)招聘事業(yè)單位60人(含高層次人才)備考核心試題附答案解析
- 2025江蘇無錫市宜興市部分機關事業(yè)單位招聘編外人員40人(A類)備考筆試試題及答案解析
- 卵巢過度刺激征課件
- 漢服行業(yè)市場壁壘分析報告
- 重瞼手術知情同意書
- 2026華潤燃氣校園招聘(公共基礎知識)綜合能力測試題附答案解析
- 九師聯(lián)盟2026屆高三上學期12月聯(lián)考英語(第4次質量檢測)(含答案)
評論
0/150
提交評論