數(shù)據(jù)庫系統(tǒng)管理與應用 課件 知識點4.5 事務認知_第1頁
數(shù)據(jù)庫系統(tǒng)管理與應用 課件 知識點4.5 事務認知_第2頁
數(shù)據(jù)庫系統(tǒng)管理與應用 課件 知識點4.5 事務認知_第3頁
數(shù)據(jù)庫系統(tǒng)管理與應用 課件 知識點4.5 事務認知_第4頁
數(shù)據(jù)庫系統(tǒng)管理與應用 課件 知識點4.5 事務認知_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

事務認知數(shù)據(jù)庫系統(tǒng)管理與應用

習標學目掌握事務提交01掌握事務回滾02掌握事務鎖定03掌握事務提交01事務提交事務就是提交事務對數(shù)據(jù)庫所做的修改,將從事務開始的所有更新保存到數(shù)據(jù)庫中,更改的記錄都被寫入日志文件并最終寫入到數(shù)據(jù)文件中,同時提交事務還會釋放由事務占用的資源,如鎖。在DM數(shù)據(jù)庫中還存在三種事務模式:自動提交模式、手動提交模式和隱式提交模式。自動提交模式DM數(shù)據(jù)庫默認采用自動提交模式。用戶通過DM數(shù)據(jù)庫的其他管理工具、編程接口訪問DM數(shù)據(jù)庫時,如果不手動/編程設置提交模式,所有的SQL語句都會在執(zhí)行結束后提交,或者在執(zhí)行失敗時回滾,此時每個事務都只有一條SQL語句。在DISQL中,用戶也可以通過執(zhí)行如下語句來設置當前會話為自動提交模式。語法:SETAUTOCOMMITWORK手動提交模式在手動提交模式下,DM數(shù)據(jù)庫用戶或者應用開發(fā)人員明確定義事務的開始和結束,這些事務也被稱為顯式事務。在DISQL中,沒有設置自動提交時,就是處于手動提交模式,此時DISQL連接到服務器后第一條SQL語句或者事務結束后的第一條語句就標記著事務的開始,可以執(zhí)行COMMT或者ROLLBACK來提交或者回滾事務,使當前事務工作單元中的所有操作“永久化”,并凍結該事務。手動提交語法格式:COMMIT[WORK]其中,WORK支持與標準SQL語句的兼容性,COMMIT和COMMITWORK等價。隱式提交模式隱式提交模式指的是在手動提交模式下,當遇到DLL語句時,DM數(shù)據(jù)庫會自動提交前面的事務,然后開始一個新的事務執(zhí)行DDL語句。相應的事務成為隱式事務。掌握事務回滾02事務回滾事務回滾是撤銷該事務所做的任何更改。回滾有兩種形式,即DM數(shù)據(jù)庫自動回滾或通過程序ROLLBACK命令手動回滾。除此之外,與回滾相關的還有回滾到保存點和語句級回滾自動回滾若事務運行期間出現(xiàn)連接斷開,DM數(shù)據(jù)庫都會自動回滾該連接所產生的事務。回滾會撤銷事務執(zhí)行的所有數(shù)據(jù)庫更改,并釋放此事務使用的所有數(shù)據(jù)庫資源。DM數(shù)據(jù)庫在恢復時也會使用自動回滾。例如,在運行事務時服務器突然斷電,接著系統(tǒng)重新啟動,DM數(shù)據(jù)庫就會在重啟時執(zhí)行自動恢復。自動恢復要從事務重做日志中讀取信息以重新執(zhí)行沒有寫入磁盤的已提交事務,或者回滾斷電時還沒有來得及提交的事務。手動回滾一般來說,在實際應用中,當某條SQL語句執(zhí)行失敗時,用戶會主動使用ROLLBACK語句或者編程接口提供的回滾函數(shù)來回滾整個事務,避免不合邏輯的事務污染數(shù)據(jù)庫,導致數(shù)據(jù)不一致。如果發(fā)生錯誤后只用回滾事務中的一部分,則需要用到回滾到保存點的功能?;貪L到保存點從事務的最末端回滾到事務中任意一個被稱為保存點的標記處。用戶在事務內可以聲明多個被稱為保存點的標記,將大事務劃分為幾個較小的片斷。之后用戶在對事務進行回滾操作時,就可以選擇從當前執(zhí)行位置回滾到事務內的任意一個保存點。DM數(shù)據(jù)庫用戶可以使用SAVEPOINT_NAME命令創(chuàng)建保存點,使用ROLLEACKTOSAVEPOINTSAVEPOINT_NAME命令來回滾到保存點SAVEPOINT_NAME。語法格式如下:設置保存點:SAVEPOINT<保存點名>回滾到保存點:ROLLBACK[WORK]TOSAVEPOINT<保存點名>;語句級回滾如果在一個SQL語句執(zhí)行過程中發(fā)生了錯誤,那么此語句對數(shù)據(jù)庫產生的影響將被回滾?;貪L后就如同此語句從未被執(zhí)行過,這種操作被稱為語句級回滾。語句級回滾只會使此語句所做的數(shù)據(jù)修改無效,不會影響此語句之前所做的數(shù)據(jù)修改?;貪L段自動清理由于需要根據(jù)回滾記錄回溯、還原物理記錄的歷史版本信息,因此不能在事務提交時立即清除當前事務產生的回滾記錄。如果不及時清理回滾段,可能會造成回滾段空間的不斷膨脹,占用大量的磁盤空間。DM數(shù)據(jù)庫提供自動清理、回收回滾段空間的機制掌握事務鎖定03事務鎖定DM數(shù)據(jù)庫支持多用戶并發(fā)訪問、修改數(shù)據(jù),有可能出現(xiàn)多個事務同時訪問、修改相同數(shù)據(jù)的情況。若對并發(fā)操作不加控制,就可能會訪問到不正確的數(shù)據(jù),破壞數(shù)據(jù)的一致性和正確性。DM數(shù)據(jù)庫采用封鎖機制來解決并發(fā)問題。鎖模式DM數(shù)據(jù)庫使用四種不同的鎖模式:共享鎖、排他鎖、意向共享鎖和意向排他鎖。共享鎖共享鎖(ShareLock,S鎖)用于讀操作,防止其他事務修改正在訪問的對象。這種封鎖模式允許多個事務同時并發(fā)讀取相同的資源,但是不允許任何事務修改這個資源。排他鎖排他鎖(ExclusiveLock,X鎖)用于寫操作,以獨占的方式訪問對象,不允許任何其他事務訪問被封鎖對象;防止多個事務同時修改相同的數(shù)據(jù),避免引發(fā)數(shù)據(jù)錯誤;防止訪問一個正在被修改的對象,避免引發(fā)數(shù)據(jù)不一致。一般在修改對象定義時使用。鎖模式意向鎖(IntentLock)在讀取或修改被訪問對象數(shù)據(jù)時使用,多個事務可以同時對相同對象上意向鎖,DM支持兩種意向鎖。意向共享鎖(IntentShareLock,IS鎖):一般在只讀訪問對象時使用。意向排他鎖(IntentExelusiveLock,X鎖):一般在修改對象數(shù)據(jù)時使

溫馨提示

  • 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

提交評論