數據庫-課件第11講-事務管理_第1頁
數據庫-課件第11講-事務管理_第2頁
數據庫-課件第11講-事務管理_第3頁
數據庫-課件第11講-事務管理_第4頁
數據庫-課件第11講-事務管理_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

DBMS三個聯(lián)系緊密的功事務支持(保證數據庫可靠一致并發(fā)控 數據庫恢復 ,電氣學院事務的基本概事務 ,電氣學院銀行轉帳:事務T從A帳戶過戶50¥到B帳戶

A:=A–B:=B+ 原子性(Atomicity)要求 通過恢復機制 持久性(Durability)要求 通過恢復機制 ,電氣學院示例:事務特性(續(xù)

A:=A–B:=B+ 一致性(Consistency)要求:A+B在執(zhí)行事務后保持不 ,電氣學院示例:事務特性(續(xù) A:=A–B:=B+

read(A),read(B),實 T1,T2,oneby→并發(fā)控 ,電氣學院ACID屬在事務處理中,保持數據庫的完整.Consistency.事務的 Isolation.未完成事務導致的中間結果對其他事務來說不可 事務狀態(tài)/Transaction事務狀態(tài)/TransactionActivePartiallycommittedFailedAborted–事務回滾,數據庫恢復到事務開始前狀態(tài),2重啟事務:在沒有內部邏輯錯誤條件Kill事Committed事務的狀Begin

事務的執(zhí)BEGINTRANSACTION事務通常是以BEGINTRANSACTION ,電氣學院BEGIN//讀帳戶甲的余額BALANCEBALANCE_aAMOUNT;(AMOUNT帳金額IF(BALANCE<0)PRINT‘金額不足,不能轉 {BALANCE_b=BALANCE_b+ ,電氣學院Atomicity&Durability所有更新基于數據庫的shadowcopydb_pointercopy;庫得到恢復,shadowcopy可以刪除。Atomicity&Durability(續(xù)Theshadow-database對小型數據庫(texteditors率極低:執(zhí)行一個事務需要拷貝整個數據庫事務支并發(fā)控可串行性與可恢復性 并發(fā)控制機制:加鎖協(xié)議 ,電氣學院并發(fā)執(zhí)行的必要并發(fā)控制協(xié)議–實現(xiàn) Schedules–指定了并發(fā)事務中操作順的執(zhí)行序串行調LetT1transfer$50fromAtoB,andT2transfer10%ofthebalancefromAtoB.下圖為一個串行調度serialscheduleT2跟隨各事務之間的操作沒有任何的調非串行調相同的事務,下圖為一個Schedule2Schedule1A+B (Schedule(ScheduleSchedule3無法保持A+B未執(zhí) ,電氣學院可串行基本假設:單個事務能夠保證數據庫的一致性→因此,該一個串行化的調度僅當該調度等價于一個串行調度;兩種串可串行化 視圖可串行(viewread和writeli和lj是分別對應Ti和Tj事務的兩個操作,當且僅當存在某 li=read(Q),lj= liandlj liread(Q),lj li=write(Q),lj= li=write(Q),lj= 通常,li和lj若存在 若li和lj在一個調度中連續(xù)且不 可串行化(續(xù)若調度S能夠通過一系列 操作轉換為調度S’,我們稱S 若調度S 等價于一個串行調度,我們稱S為 可串行化Example: 無法通過串行調度<T3,T4>或<T4,T3>,使用非 可串行化(續(xù)Schedule4能夠通過一系列 S和S′為一個事務集合的兩個調度,當滿足一下條件時,稱S和S′為視圖等價(viewequivalent):(Ti,Tj為事務集合中對每個數據項Q,若事務Ti在調度S中Q的初值,則在在調S’中,也必須由Ti其初值對每個數據項Q,若事務Ti在調度S中執(zhí)行read(Q),同時該數據值經由事務Tj處理[write(Q)],則在調度S′中,Ti同樣必須執(zhí)行經事務Tj處理后的數據值[write(Q)];2.對每個數據項Q,在兩個調度S和S′中,執(zhí)行對Q最后寫操作write(Q)的必須是同一個事視圖等價1,2保證兩個調度相同的值→3同1,2視圖可串行化續(xù)(viewserializable); 下圖調度,同<T3,T4,T6>串行調度是視圖可串行化調 可恢復性調可恢復性調度(Recoverableschedule):對于每一對事務TA和TB,如果TB 應該在TB之前提交自己的操作. 性的實現(xiàn)(并發(fā)控制 或視圖可串某些方法僅允許 可串行化調度,而其他方法允許非沖并發(fā)控制技在有效算法進試;另外,在調度執(zhí)行后進行樂觀方法:基于出現(xiàn)為小概率事件,因此允許事務執(zhí)行不保持同步,僅在最后事務提交時進行驗 ,電氣學院并發(fā)控制協(xié)議:加 ,電氣學院基于加鎖協(xié)議(Lock-based數據項可賦予兩種加鎖模式shared(S)共享模式,該模式下,數據項僅可讀;通基于加鎖協(xié)議(Lock-basedpatibility 有的非兼容鎖被其它事務,才能獲得加鎖權限。Exampleofatransactionperformingread(B);read(B); ConsiderthepartialT3&T4都無法完成:executing lock-S(B)causesT4towaitforT3toreleaseitslockonB,whileexecuting lock-X(A)causesT3 towaitforT4toreleaseitslockonA.這一現(xiàn)象稱為死鎖T3T4中任意一個必須回滾(rollback)所賦加的鎖解除加鎖協(xié)議的問題(續(xù)(Starvation)For該相同的事務由于死鎖總是不停的回滾,無法完通過事務備選擇為犧牲品的次數,并在該次數達回滾的事務)的策略,避免現(xiàn)象發(fā)生死鎖處理(續(xù)死鎖防止協(xié)議保證系統(tǒng)不會進入死鎖狀態(tài),某些策略:明predeclaration)兩段鎖協(xié)議(two-phaselockingTimeout-BasedSchemes 執(zhí)行簡單;butstarvationispossible.確定一個好的等待時間比較困一個鎖管理器(LockManager)可作為單獨進程實現(xiàn),負責 鎖管理器通過發(fā)送允許加鎖信 回復事務加鎖請(或者在碰到死鎖的情況下要求事務回滾鎖管理器 一個稱為鎖表(lock table)的數據結構,以LOCK

黑框表示獲得的鎖,白框表鎖表同時記錄或請求鎖的類 當某一事務中止(aborts),所有該事 有效實現(xiàn)這能事務支并發(fā)控數據庫恢復概 ,電氣學院計算機系統(tǒng)中硬件的故障、軟件的錯誤、操作員的以及的破壞是不可避免的故障輕則造成運行事務 中斷,影響數據庫中數據的正確性,重則破壞數據庫,使數據庫中部分數據庫管理系統(tǒng)(恢復子系統(tǒng))必須具有把數據庫從錯誤狀態(tài)恢復到某一已知的正確狀態(tài)(亦稱為一致狀態(tài)或完整狀態(tài))的功能,這就是數據庫的恢復。 邏輯錯誤:由于內部錯誤系統(tǒng)錯誤:基于某類出錯條件(如死鎖),數據庫系統(tǒng)必須中止Fail-stop假設:假設系統(tǒng)故障發(fā)生后磁 內容不發(fā)生損磁盤故障(介質故障,HardCrash):磁頭錯誤、扇區(qū)壞死 假設該損壞時可探測的:利用磁盤本身查錯功 器在系 時丟examples:mainmemory,cache非易失 器即使系 ,仍保持數examples:disk,tape,flashnon-volatile(batterybackedup) 器假設的一 狀態(tài),可克服

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論