事務(wù)及事務(wù)管理概念_第1頁(yè)
事務(wù)及事務(wù)管理概念_第2頁(yè)
事務(wù)及事務(wù)管理概念_第3頁(yè)
事務(wù)及事務(wù)管理概念_第4頁(yè)
事務(wù)及事務(wù)管理概念_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

事務(wù)及事務(wù)管理概念1事務(wù)的基本概念事務(wù)(Transaction)用戶定義的一個(gè)對(duì)數(shù)據(jù)庫(kù)讀寫(xiě)操作序列一個(gè)不可分割的工作單位數(shù)據(jù)庫(kù)恢復(fù)和并發(fā)控制的基本單位數(shù)據(jù)庫(kù)系統(tǒng)中通常有多個(gè)事務(wù)并行運(yùn)行2SQL語(yǔ)言中定義事務(wù)的語(yǔ)句事務(wù)的開(kāi)始和結(jié)束可以由用戶顯式控制。如果用戶沒(méi)有定義,則由DBMS按缺省規(guī)定自動(dòng)劃分事務(wù)。SQL定義事務(wù)的語(yǔ)句Begintransaction(事務(wù)開(kāi)始)Commit(事務(wù)提交,正常結(jié)束,將更新結(jié)果寫(xiě)入磁盤(pán))Rollback(事務(wù)回滾,撤銷事務(wù)中所有已完成的更新)3BEGINTRANSACTION讀賬戶甲的余額balance;balance=balance–amount;//amount為轉(zhuǎn)賬金額if(balance<0)then{打印‘金額不足,不能轉(zhuǎn)賬’;

ROLLBACK;//撤銷剛才的修改,恢復(fù)事務(wù)}else{讀賬戶乙的金額balance1;balance1=balance1+amount;寫(xiě)回balance1;

COMMIT;}事務(wù)示例為什么要定義事務(wù)?4事務(wù)的性質(zhì)(ACID特性)原子性(Atomicity)事務(wù)中的操作要么都做,要么都不做(AllorNone)一致性(Consistency)事務(wù)執(zhí)行的結(jié)果必須使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)與原子性密切相關(guān)隔離性(Isolation)并發(fā)執(zhí)行的各事務(wù)不能相互干擾持續(xù)性/永久性(Durability)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫(kù)的更新不再受后繼操作或故障的影響★

DBMS中事務(wù)處理必須保證其ACID特性,這樣才能保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的安全和正確5事務(wù)型DBMS中必備的機(jī)制事務(wù)是恢復(fù)和并發(fā)控制的基本單位恢復(fù)機(jī)制與并發(fā)控制機(jī)制的提出事務(wù)在運(yùn)行過(guò)程中因某種故障被強(qiáng)行終止,數(shù)據(jù)庫(kù)一致性被破壞,需進(jìn)行恢復(fù)多個(gè)事務(wù)并行運(yùn)行時(shí),不同事務(wù)的各種操作交叉進(jìn)行,為保證各事務(wù)的執(zhí)行互不干擾,需進(jìn)行并發(fā)控制6事務(wù)管理之?dāng)?shù)據(jù)庫(kù)恢復(fù)技術(shù)7要點(diǎn)故障及其類型數(shù)據(jù)庫(kù)恢復(fù)實(shí)現(xiàn)技術(shù)數(shù)據(jù)庫(kù)恢復(fù)策略8數(shù)據(jù)庫(kù)恢復(fù)概述數(shù)據(jù)庫(kù)由于某些故障發(fā)生可能會(huì)導(dǎo)致數(shù)據(jù)庫(kù)被破壞或影響數(shù)據(jù)庫(kù)中數(shù)據(jù)的一致性(或完整性、正確性)當(dāng)系統(tǒng)運(yùn)行過(guò)程中發(fā)生故障時(shí),數(shù)據(jù)庫(kù)恢復(fù)技術(shù)將數(shù)據(jù)庫(kù)從錯(cuò)誤狀態(tài)恢復(fù)到某個(gè)一致?tīng)顟B(tài),它是數(shù)據(jù)庫(kù)可靠性的保證。數(shù)據(jù)庫(kù)恢復(fù)機(jī)制是衡量某DBMS系統(tǒng)性能的指標(biāo)之一,對(duì)系統(tǒng)可靠性起決定作用,對(duì)運(yùn)行效率有很大影響9故障的種類事務(wù)內(nèi)部故障事務(wù)在運(yùn)行至正常終止點(diǎn)(commit或rollback)前被終止包括能由事務(wù)所在程序處理的,如條件不滿足等不能由事務(wù)所在程序處理的,如運(yùn)算溢出等系統(tǒng)故障(system)系統(tǒng)重啟、OS故障、DBMS代碼錯(cuò)誤、掉電等介質(zhì)故障(medium)磁盤(pán)損壞等計(jì)算機(jī)病毒(virus)非預(yù)期故障10各類故障對(duì)數(shù)據(jù)庫(kù)的可能影響數(shù)據(jù)庫(kù)本身被破壞,使數(shù)據(jù)庫(kù)中全部或部分?jǐn)?shù)據(jù)丟失如系統(tǒng)故障、介質(zhì)故障、計(jì)算機(jī)病毒等數(shù)據(jù)庫(kù)沒(méi)有被破壞,但因事務(wù)的運(yùn)行被非正常終止而使數(shù)據(jù)庫(kù)數(shù)據(jù)失去一致性(正確性)如事務(wù)內(nèi)部故障、系統(tǒng)故障、計(jì)算機(jī)病毒等11恢復(fù)的實(shí)現(xiàn)技術(shù)數(shù)據(jù)庫(kù)恢復(fù)的基本原理利用存儲(chǔ)在系統(tǒng)別處的冗余數(shù)據(jù)來(lái)重建恢復(fù)技術(shù)的兩個(gè)關(guān)鍵如何建立冗余數(shù)據(jù)數(shù)據(jù)轉(zhuǎn)儲(chǔ)登錄日志文件如何利用冗余數(shù)據(jù)恢復(fù)數(shù)據(jù)庫(kù)12建立冗余數(shù)據(jù)的方法一數(shù)據(jù)轉(zhuǎn)儲(chǔ):定期進(jìn)行磁盤(pán)備份形成后備副本具體方法如下示意由DBA定義適當(dāng)?shù)霓D(zhuǎn)儲(chǔ)周期每次轉(zhuǎn)儲(chǔ)全部數(shù)據(jù)庫(kù)每次轉(zhuǎn)儲(chǔ)更新過(guò)的數(shù)據(jù)轉(zhuǎn)儲(chǔ)和用戶事務(wù)可以并發(fā)執(zhí)行轉(zhuǎn)儲(chǔ)期間不執(zhí)行任何用戶事務(wù)13建立冗余數(shù)據(jù)的方法二登記日志文件(Logging)日志文件:記錄事務(wù)對(duì)數(shù)據(jù)庫(kù)的更新操作以記錄為單位的日志文件事務(wù)的開(kāi)始標(biāo)記,事務(wù)的結(jié)束標(biāo)記各個(gè)事務(wù)的所有更新操作事務(wù)標(biāo)識(shí)TransID,操作類型UpdateType,操作對(duì)象RecordID,更新前的舊值OldValue,更新后的新值NewValue以數(shù)據(jù)塊為單位的日志文件事務(wù)標(biāo)識(shí),被更新的數(shù)據(jù)塊14登記日志文件必須遵循的原則登記的次序嚴(yán)格按并發(fā)事務(wù)執(zhí)行的時(shí)間次序必須先寫(xiě)日志文件,后寫(xiě)數(shù)據(jù)庫(kù)(WriteAfterLogging,WAL)15恢復(fù)的實(shí)現(xiàn)★通常在一個(gè)數(shù)據(jù)庫(kù)中綜合使用數(shù)據(jù)轉(zhuǎn)儲(chǔ)和登錄日志文件這兩種方法,配合使用后備副本和日志文件進(jìn)行數(shù)據(jù)庫(kù)恢復(fù)16利用日志文件進(jìn)行數(shù)據(jù)庫(kù)恢復(fù)事務(wù)故障恢復(fù)和系統(tǒng)故障恢復(fù)須用日志文件通常綜合數(shù)據(jù)庫(kù)后備副本和日志文件將數(shù)據(jù)庫(kù)恢復(fù)至某個(gè)一致?tīng)顟B(tài)(視轉(zhuǎn)儲(chǔ)方法而定)恢復(fù)時(shí),對(duì)故障發(fā)生時(shí)已提交的事務(wù)進(jìn)行重做(Redo,再執(zhí)行),而對(duì)未提交的事務(wù)進(jìn)行撤銷(Undo,逆操作)正常運(yùn)行:靜態(tài)轉(zhuǎn)儲(chǔ)運(yùn)行事務(wù)故障發(fā)生點(diǎn)登記日志文件TaTbTf介質(zhì)故障恢復(fù):重裝后備副本利用日志文件恢復(fù)事務(wù)繼續(xù)運(yùn)行登記日志文件17恢復(fù)策略事務(wù)故障的恢復(fù)反向掃描日志文件,Undo事務(wù)中的更新操作由系統(tǒng)自動(dòng)完成系統(tǒng)故障的恢復(fù)首先正向掃描日志文件,生成Redo和Undo隊(duì)列然后對(duì)Undo隊(duì)列中的各事務(wù)進(jìn)行Undo最后對(duì)Redo隊(duì)列中的各事務(wù)進(jìn)行Redo由系統(tǒng)在重啟時(shí)自動(dòng)完成介質(zhì)故障的恢復(fù)首先裝入最新后備副本和有關(guān)日志文件副本,Redo已提交的事務(wù),使數(shù)據(jù)庫(kù)恢復(fù)至故障前某一時(shí)刻的一致?tīng)顟B(tài)裝入副本由DBA介入完成,并執(zhí)行DBMS提供的恢復(fù)命令18事務(wù)管理之并發(fā)控制技術(shù)19要點(diǎn)并發(fā)操作及影響并發(fā)操作的可串行性并發(fā)控制及實(shí)現(xiàn)技術(shù)20序言事務(wù)并行地運(yùn)行可充分利用系統(tǒng)資源,事務(wù)是并發(fā)控制的基本單位多用戶數(shù)據(jù)庫(kù)系統(tǒng)中允許多個(gè)用戶同時(shí)使用數(shù)據(jù)庫(kù),即在同一時(shí)刻可能有多個(gè)事務(wù)并行運(yùn)行

同時(shí)并行方式單處理機(jī)系統(tǒng)中,事務(wù)并行實(shí)際上是這些事務(wù)的并行操作輪流交叉運(yùn)行

交叉并行方式21并發(fā)控制機(jī)制的提出當(dāng)多個(gè)用戶并發(fā)地存取數(shù)據(jù)庫(kù)時(shí)可能出現(xiàn)多個(gè)事務(wù)同時(shí)存取同一數(shù)據(jù)的情況,并發(fā)控制機(jī)制將對(duì)這些并發(fā)操作加以控制以保證每個(gè)事務(wù)的ACID特性,確保數(shù)據(jù)庫(kù)的一致性并發(fā)控制機(jī)制是衡量某DBMS系統(tǒng)性能的指標(biāo)之一228.1并發(fā)控制概述這種數(shù)據(jù)庫(kù)的不一致是由并發(fā)操作引起的機(jī)票數(shù)量AA=16讀讀A=A-1A=A-1A=15A=15售票點(diǎn)售票點(diǎn)A=16A=16出售1出售1事務(wù)T1事務(wù)T223并發(fā)操作引起的丟失修改并發(fā)操作引起的數(shù)據(jù)不一致性包括三類丟失修改不可重復(fù)讀讀臟數(shù)據(jù)丟失修改事務(wù)T1對(duì)數(shù)據(jù)的修改被事務(wù)T2的修改覆蓋T1讀A=16A=A-1寫(xiě)回A=15T2讀A=16A=A-1寫(xiě)回A=1524并發(fā)操作引起的不可重復(fù)讀不可重復(fù)讀事務(wù)T1讀取某一數(shù)據(jù)后,事務(wù)T2對(duì)其做了修改,當(dāng)T1按同樣條件再讀時(shí)得到不同的值事務(wù)T1讀取某些數(shù)據(jù)后,事務(wù)T2刪除(或插入)了一些記錄,當(dāng)T1按同樣條件再讀時(shí)發(fā)現(xiàn)少(或多)了一些記錄T1讀A=1,B=2求A+B=3讀A=1,B=4求A+B=5T2讀B=2B=B*2寫(xiě)回B=425并發(fā)操作引起的讀臟數(shù)據(jù)讀臟數(shù)據(jù)事務(wù)T1修改了某數(shù)據(jù)并寫(xiě)回磁盤(pán),事務(wù)T2讀取了同一數(shù)據(jù)后,T1由于某種原因被撤銷,被修改的值復(fù)原,此時(shí)T2讀到的數(shù)據(jù)與數(shù)據(jù)庫(kù)中的數(shù)據(jù)不一致T1讀C=1C=C*2寫(xiě)回C=2ROLLBACKC恢復(fù)為1T2讀C=226小結(jié)產(chǎn)生上述三類不一致性的主要原因并發(fā)操作破壞了事務(wù)的隔離性,事務(wù)間相互干擾并發(fā)控制的主要技術(shù)封鎖技術(shù)(Locking)★時(shí)間戳技術(shù)(Timestamp)其他278.2封鎖概念事務(wù)T在對(duì)某個(gè)數(shù)據(jù)對(duì)象(如數(shù)據(jù)庫(kù)、表、記錄等)操作之前,首先向系統(tǒng)發(fā)出加鎖請(qǐng)求以便獲得對(duì)數(shù)據(jù)對(duì)象相應(yīng)的控制在事務(wù)T釋放它所獲得的鎖之前,其他事務(wù)不能更新此數(shù)據(jù)對(duì)象28鎖的類型排它鎖(eXclusivelock):寫(xiě)鎖若事務(wù)T對(duì)數(shù)據(jù)對(duì)象A加上X鎖,則只允許T讀取和修改A,其它任何事務(wù)都不能再對(duì)A加任何類型的鎖,直到T釋放A上的鎖共享鎖(Sharelock):讀鎖若事務(wù)T對(duì)數(shù)據(jù)對(duì)象A加上S鎖,則事務(wù)T可以讀A但不能修改A,其它事務(wù)只能再對(duì)A加S鎖,而不能加X(jué)鎖,直到T釋放A上的S鎖29鎖的相容矩陣Y:相容的請(qǐng)求N:不相容的請(qǐng)求T2T1XS-XNNYSNYY-YYY308.3封鎖協(xié)議有了兩種基本封鎖,還需要什么約定?封鎖協(xié)議的概念何時(shí)申請(qǐng)加鎖、持鎖時(shí)間、何時(shí)釋放等規(guī)則不同的封鎖協(xié)議所達(dá)到的系統(tǒng)一致性不同31三個(gè)級(jí)別的封鎖協(xié)議一級(jí)封鎖協(xié)議內(nèi)容:事務(wù)T在修改數(shù)據(jù)R之前必須先對(duì)其加X(jué)鎖,直至事務(wù)結(jié)束事務(wù)結(jié)束包括正常結(jié)束(COMMIT)和非正常結(jié)束(ROLLBACK)評(píng)價(jià):是否可解決丟失修改?可重復(fù)讀?讀臟數(shù)據(jù)?可防止×不能保證×不能防止32三個(gè)級(jí)別的封鎖協(xié)議二級(jí)封鎖協(xié)議內(nèi)容:讀數(shù)據(jù)前加S鎖,讀完即釋放寫(xiě)數(shù)據(jù)前加X(jué)鎖直至事務(wù)結(jié)束評(píng)價(jià):是否可解決丟失修改?可重復(fù)讀?讀臟數(shù)據(jù)?可防止×不能保證可防止33三個(gè)級(jí)別的封鎖協(xié)議三級(jí)封鎖協(xié)議內(nèi)容:讀數(shù)據(jù)前加S鎖直至事務(wù)結(jié)束寫(xiě)數(shù)據(jù)前加X(jué)鎖直至事務(wù)結(jié)束評(píng)價(jià):是否可解決丟失修改?可重復(fù)讀?讀臟數(shù)據(jù)?可防止能保證可保證34數(shù)據(jù)庫(kù)安全性35數(shù)據(jù)庫(kù)安全性和完整性數(shù)據(jù)庫(kù)安全性保護(hù)數(shù)據(jù)庫(kù)防止惡意破壞和非法的存取防范對(duì)象是非法用戶和非法操作369.1計(jì)算機(jī)安全性概論

問(wèn)題的提出數(shù)據(jù)庫(kù)的一大特點(diǎn)是數(shù)據(jù)可以共享,但數(shù)據(jù)共享必然帶來(lái)數(shù)據(jù)庫(kù)的安全性問(wèn)題數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)共享是在DBMS統(tǒng)一的嚴(yán)格的控制之下的共享,即只允許有合法使用權(quán)限的用戶訪問(wèn)允許他存取的數(shù)據(jù)數(shù)據(jù)庫(kù)的安全性是指保護(hù)數(shù)據(jù)庫(kù),防止因用戶非法使用數(shù)據(jù)庫(kù)造成數(shù)據(jù)泄露、更改或破壞。數(shù)據(jù)庫(kù)系統(tǒng)的安全保護(hù)措施是否有效是數(shù)據(jù)庫(kù)系統(tǒng)主要的性能指標(biāo)之一數(shù)據(jù)庫(kù)的安全性和計(jì)算機(jī)系統(tǒng)的安全是緊密聯(lián)系、互相支持的37數(shù)據(jù)庫(kù)安全性控制計(jì)算機(jī)系統(tǒng)的安全模型

應(yīng)用DBMSOS

DB低高安全性控制層次方法:

用戶標(biāo)識(shí)和鑒定

存取控制審計(jì)視圖

操作系統(tǒng)安全保護(hù)

密碼存儲(chǔ)38非法使用數(shù)據(jù)庫(kù)的情況用戶編寫(xiě)一段合法的程序繞過(guò)DBMS及其授權(quán)機(jī)制,通過(guò)操作系統(tǒng)直接存取、修改或備份數(shù)據(jù)庫(kù)中的數(shù)據(jù);直接或編寫(xiě)應(yīng)用程序執(zhí)行非授權(quán)操作;通過(guò)多次合法查詢數(shù)據(jù)庫(kù)從中推導(dǎo)出一些保密數(shù)據(jù)例:某數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)禁止查詢單個(gè)人的工資,但允許查任意一組人的

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論