數(shù)據(jù)庫(kù)原理及應(yīng)用教案數(shù)據(jù)庫(kù)的管理市公開(kāi)課獲獎(jiǎng)?wù)n件_第1頁(yè)
數(shù)據(jù)庫(kù)原理及應(yīng)用教案數(shù)據(jù)庫(kù)的管理市公開(kāi)課獲獎(jiǎng)?wù)n件_第2頁(yè)
數(shù)據(jù)庫(kù)原理及應(yīng)用教案數(shù)據(jù)庫(kù)的管理市公開(kāi)課獲獎(jiǎng)?wù)n件_第3頁(yè)
數(shù)據(jù)庫(kù)原理及應(yīng)用教案數(shù)據(jù)庫(kù)的管理市公開(kāi)課獲獎(jiǎng)?wù)n件_第4頁(yè)
數(shù)據(jù)庫(kù)原理及應(yīng)用教案數(shù)據(jù)庫(kù)的管理市公開(kāi)課獲獎(jiǎng)?wù)n件_第5頁(yè)
已閱讀5頁(yè),還剩64頁(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)介

1、數(shù)據(jù)庫(kù)原理及應(yīng)用教案第1頁(yè)第1頁(yè)第5章 數(shù)據(jù)庫(kù)管理5.1 數(shù)據(jù)庫(kù)安全控制5.2 數(shù)據(jù)庫(kù)恢復(fù)技術(shù)5.3 數(shù)據(jù)庫(kù)并發(fā)控制第2頁(yè)第2頁(yè) 5.1 數(shù)據(jù)庫(kù)安全控制數(shù)據(jù)庫(kù)安全性是指保護(hù)數(shù)據(jù)庫(kù)預(yù)防用戶不合法地使用數(shù)據(jù)庫(kù)所造成數(shù)據(jù)泄密、更改或破壞。在數(shù)據(jù)庫(kù)系統(tǒng)中,大量數(shù)據(jù)集中存儲(chǔ),并且為許多用戶直接共享,是珍貴信息資源,從而使得安全問(wèn)題更為突出。系統(tǒng)安全保護(hù)辦法是否有效,是評(píng)價(jià)數(shù)據(jù)庫(kù)系統(tǒng)性能主要指標(biāo)。第3頁(yè)第3頁(yè)5.1.1概述數(shù)據(jù)庫(kù)安全性是確保數(shù)據(jù)庫(kù)能否反應(yīng)現(xiàn)實(shí)世界主要辦法,用以預(yù)防非法使用數(shù)據(jù)庫(kù)中數(shù)據(jù),預(yù)防錯(cuò)誤數(shù)據(jù)輸入和輸出。完整性辦法防備對(duì)象是不合語(yǔ)義數(shù)據(jù)??梢?jiàn),安全性是針對(duì)未授權(quán)用戶而對(duì)數(shù)據(jù)采用保護(hù)辦法

2、,而完整性是針對(duì)授權(quán)用戶而采用數(shù)據(jù)保護(hù)辦法。數(shù)據(jù)庫(kù)完整性是指盡量避免對(duì)數(shù)據(jù)庫(kù)無(wú)意濫用;數(shù)據(jù)庫(kù)安全性是指盡量避免對(duì)數(shù)據(jù)庫(kù)歹意濫用。無(wú)意濫用能夠通過(guò)約束來(lái)避免,完全避免歹意濫用是不也許,但能夠盡量增長(zhǎng)一些保護(hù)辦法,提升數(shù)據(jù)庫(kù)安全性。 第4頁(yè)第4頁(yè)5.1.1概述 普通計(jì)算機(jī)系統(tǒng)中,安全辦法往往是一級(jí)一級(jí)層層設(shè)置,其模型如圖5-1所表示。 圖5-1 計(jì)算機(jī)系統(tǒng)安全模型 第5頁(yè)第5頁(yè)5.1.1概述安全操作系統(tǒng)是數(shù)據(jù)庫(kù)安全前提。數(shù)據(jù)庫(kù)系統(tǒng)安全辦法有下列幾種方面:(1)權(quán)限機(jī)制通過(guò)權(quán)限機(jī)制,限定用戶對(duì)數(shù)據(jù)操作權(quán)限,把數(shù)據(jù)操作限定在指定權(quán)限用戶范圍內(nèi)。第6頁(yè)第6頁(yè)(2)視圖機(jī)制通過(guò)建立用戶視圖,用戶或應(yīng)用程序

3、只能通過(guò)視圖來(lái)操作數(shù)據(jù),確保了視圖之外數(shù)據(jù)安全性。(3)數(shù)據(jù)加密對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)進(jìn)行加密,能夠預(yù)防數(shù)據(jù)在存儲(chǔ)和傳播過(guò)程中失密。5.1.1概述第7頁(yè)第7頁(yè)5.1.2 用戶標(biāo)識(shí)和判別任何數(shù)據(jù)庫(kù)用戶要訪問(wèn)數(shù)據(jù)庫(kù)時(shí),都需申明自己用戶標(biāo)識(shí)符,只有通過(guò)核實(shí)人才干進(jìn)入系統(tǒng),這個(gè)核實(shí)工作就稱為用戶判別。判別辦法有下列3種:1口令(Password)口令是最廣泛使用用戶判別辦法。所謂口令就是注冊(cè)時(shí)DBMS 予以每個(gè)用戶一個(gè)字符串。 第8頁(yè)第8頁(yè)2利用用戶個(gè)人特性用戶個(gè)人特性包括指紋、署名、聲波紋等。這些判別辦法效果不錯(cuò),但需要特殊判別裝置。 3磁卡磁卡是使用較廣判別手段,磁卡上統(tǒng)計(jì)有用戶用戶標(biāo)識(shí)符。5.1.2 用

4、戶標(biāo)識(shí)和判別第9頁(yè)第9頁(yè)5.1.3 訪問(wèn)控制判別處理了用戶是否合法問(wèn)題,但合法用戶權(quán)利是不應(yīng)當(dāng)相同,任何合法用戶都只能執(zhí)行他有權(quán)執(zhí)行操作,只能訪問(wèn)他有權(quán)訪問(wèn)數(shù)據(jù)庫(kù)數(shù)據(jù)。訪問(wèn)控制目的就是處理此問(wèn)題,主要包括授權(quán)檢查權(quán)限 第10頁(yè)第10頁(yè)1數(shù)據(jù)庫(kù)用戶種類數(shù)據(jù)庫(kù)用戶按其訪問(wèn)權(quán)利分為3類:普通數(shù)據(jù)庫(kù)用戶含有創(chuàng)建表權(quán)力用戶含有DBA特權(quán)用戶。 第11頁(yè)第11頁(yè)1數(shù)據(jù)庫(kù)用戶種類1)普通數(shù)據(jù)庫(kù)用戶含有CONNECT特權(quán)用戶該類用戶可進(jìn)入該數(shù)據(jù)庫(kù)系統(tǒng),但只有下列權(quán)利:(1)依據(jù)授權(quán),查新或更改數(shù)據(jù)庫(kù)中部分?jǐn)?shù)據(jù);(2)能夠創(chuàng)建視圖或定義數(shù)據(jù)別名。第12頁(yè)第12頁(yè)2)含有創(chuàng)建表權(quán)力用戶含有RESOURCE特權(quán)用戶

5、該類用戶除含有普通數(shù)據(jù)庫(kù)用戶所含有權(quán)利外,尚有下列特權(quán): (1)能夠在此數(shù)據(jù)庫(kù)內(nèi)創(chuàng)建表、 索引和聚簇;(2)能夠授予其它數(shù)據(jù)庫(kù)用戶對(duì)其所創(chuàng)建表各種訪問(wèn),還可收回授出訪問(wèn)權(quán);(3)有權(quán)跟蹤審計(jì)( audit )自己所創(chuàng)建數(shù)據(jù)對(duì)象。1數(shù)據(jù)庫(kù)用戶種類第13頁(yè)第13頁(yè)1數(shù)據(jù)庫(kù)用戶種類3)含有DBA特權(quán)用戶含有DBA特權(quán)用戶可支配這個(gè)數(shù)據(jù)庫(kù)所有資源。DBA除擁有RESOURCE所擁有權(quán)利外,主要尚有下列特權(quán):(1)可訪問(wèn)數(shù)據(jù)庫(kù)中任何數(shù)據(jù);(2)為數(shù)據(jù)庫(kù)用戶注冊(cè)及撤消注冊(cè)權(quán)利;(3)授予及收回?cái)?shù)據(jù)庫(kù)用戶對(duì)數(shù)據(jù)庫(kù)訪問(wèn)權(quán);(4)有權(quán)控制這個(gè)數(shù)據(jù)庫(kù)跟蹤審計(jì) 。第14頁(yè)第14頁(yè)2DBA對(duì)用戶注冊(cè)工作(1)DBA為

6、用戶進(jìn)行注冊(cè)GRANT在SQL中語(yǔ)言,DBA可用GRANT命令為用戶注冊(cè),命令格式下列: GRANT TO IDENTIFIED BY 其中, 有3種: CONNECT,RESOURCE和DBA。對(duì)于新用戶,命令中必須有口令選項(xiàng);已是數(shù)據(jù)庫(kù)用戶,只是增長(zhǎng)特權(quán)類型,則不必再有口令 。 第15頁(yè)第15頁(yè)舉例【例5.1】把新用戶WANG注冊(cè)為RESOURCE用戶,口令為W02XYZ: GRANT RESOURCE TO WANG IDENTIFIED BY W02XYZ【例5.2】再把【例5.1】中用戶WANG注冊(cè)為DBA用戶(此時(shí)不必有口令項(xiàng)): GRANT DBA TO WANG第16頁(yè)第16頁(yè)

7、2DBA對(duì)用戶注冊(cè)工作(2)DBA撤消對(duì)用戶注冊(cè)REVOKE命令格式下列:REVOKE FROM 其中 同前。執(zhí)行此命令后, 所含有即被撤消。若此用戶所有都被撤消,則他就成為非法用戶了。第17頁(yè)第17頁(yè)2DBA對(duì)用戶注冊(cè)工作(3)普通授權(quán)GRANT普通授權(quán)是指授予某用戶對(duì)某數(shù)據(jù)對(duì)象進(jìn)行某種操作權(quán)利。 在SQL語(yǔ)言中,DBA及擁有權(quán)限用戶可用GRANT語(yǔ)句向用戶授權(quán)。格式下列: GRANT ,權(quán)限 ON TO , WITH GRANT OPTION;第18頁(yè)第18頁(yè) 不同類型操作對(duì)象有不同操作權(quán)限,常見(jiàn)操作權(quán)限如表5-1所表示:第19頁(yè)第19頁(yè)2DBA對(duì)用戶注冊(cè)工作闡明:(1)PUBLIC 。接

8、受權(quán)限用戶能夠是單個(gè)或多個(gè)詳細(xì)用戶,PUBLIC參數(shù)可將權(quán)限賦給全體用戶。(2)WITH GRANT OPTION。若指定了該子句,那麼,取得了權(quán)限用戶還能夠?qū)?quán)限賦給其它用戶。第20頁(yè)第20頁(yè)舉例【例5.3】將對(duì)供應(yīng)商S、零件P、項(xiàng)目J所有操作權(quán)限賦給用戶User1及User2。GRANT ALL PRIVILEGES ON TABLE S,P,J TO User1,User2;【例5.4】將對(duì)供應(yīng)商S插入權(quán)限賦給用戶User1,并允許將此權(quán)限賦給其它用戶。GRANT INSERT ON TABLE S TO User1 WITH GRANT OPTION;第21頁(yè)第21頁(yè)2DBA對(duì)用戶注冊(cè)

9、工作【例5.5】DBA把數(shù)據(jù)庫(kù)SPJ中建立表權(quán)限賦給用戶User1。GRANT CREATETAB ON DATABASE SPJ TO User1; 第22頁(yè)第22頁(yè)2DBA對(duì)用戶注冊(cè)工作(4)收回權(quán)限REVOKE語(yǔ)句格式: REVOKE, ON FROM ,; 第23頁(yè)第23頁(yè)舉例【例5.6】將用戶User1及User2對(duì)供應(yīng)商S、零件P、項(xiàng)目J所有操作權(quán)限收回。REVOKE ALL PRIVILEGES ON TABLE S,P,J FROM User1, User2;【例5.7】將所有用戶對(duì)供應(yīng)商S所有查詢權(quán)限收回。REVOKE SELECT ON TABLE S FROM PUBLI

10、C;【例5.8】將User1用戶對(duì)供應(yīng)商S供應(yīng)商編號(hào)Sno修改權(quán)限收回。REVOKE UPDATE(Sno) ON TABLE S FROM User1;第24頁(yè)第24頁(yè) 5.2數(shù)據(jù)庫(kù)恢復(fù)技術(shù)數(shù)據(jù)庫(kù)恢復(fù)技術(shù)和并發(fā)控制是數(shù)據(jù)庫(kù)管理系統(tǒng)兩個(gè)主要構(gòu)成部分。數(shù)據(jù)庫(kù)恢復(fù)主要是指恢復(fù)數(shù)據(jù)庫(kù)本身,即在故障引起數(shù)據(jù)庫(kù)當(dāng)前狀態(tài)不一致后,將數(shù)據(jù)庫(kù)恢復(fù)到某個(gè)正確狀態(tài)或一致?tīng)顟B(tài)。恢復(fù)原理非常簡(jiǎn)樸,就是要建立冗余數(shù)據(jù)(redundancy)。第25頁(yè)第25頁(yè)5.2.1 事務(wù)數(shù)據(jù)庫(kù)恢復(fù)需要掌握重點(diǎn)內(nèi)容有:事務(wù)基本概念事務(wù)特性故障類型恢復(fù)辦法與策略。第26頁(yè)第26頁(yè)1事務(wù)事務(wù)是一個(gè)操作序列,這些操作“要么都做,要么都不做”

11、,是數(shù)據(jù)庫(kù)環(huán)境中不可分割邏輯工作單位。在 SQL語(yǔ)言中事務(wù)定義語(yǔ)句有三條:(1)BEGIN TRANSACTION 事務(wù)開(kāi)始(2)COMMIT事務(wù)提交。(3)ROLLBACK 事務(wù)回滾。5.2.1 事務(wù)第27頁(yè)第27頁(yè)(1)原子性(atomicity):事務(wù)是原子,要么都做,要么都不做。(2)一致性( consistency):事務(wù)執(zhí)行結(jié)果必須確保數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。因此,當(dāng)數(shù)據(jù)庫(kù)只包括成功事務(wù)提交結(jié)果時(shí),稱數(shù)據(jù)庫(kù)處于一致性狀態(tài)。(3)隔離性( isolation ):事務(wù)互相隔離。當(dāng)多個(gè)事務(wù)并發(fā)執(zhí)行時(shí),任一事務(wù)更新操作直到其成功提交整個(gè)過(guò)程,對(duì)其它事務(wù)都是不可見(jiàn)。(4

12、)持久性(durability):一旦事務(wù)成功提交,即使數(shù)據(jù)庫(kù)崩潰,其對(duì)數(shù)據(jù)庫(kù)更新操作也將永久有效。2事務(wù)四個(gè)特性第28頁(yè)第28頁(yè)普通將事物執(zhí)行狀態(tài)分為5種,事務(wù)必須處于這5種狀態(tài)之一。(1) 活動(dòng)狀態(tài):事務(wù)初始狀態(tài),事務(wù)執(zhí)行時(shí)處于這個(gè)狀態(tài)。 3. 事務(wù)狀態(tài)第29頁(yè)第29頁(yè)(2)部分提交狀態(tài):當(dāng)操作序列最后一條語(yǔ)句自動(dòng)執(zhí)行后,事務(wù)處于部分提交狀態(tài)。這時(shí),事務(wù)即使已經(jīng)完全執(zhí)行,但由于實(shí)際輸出也許還暫時(shí)駐留在內(nèi)存中,在事務(wù)成功完畢前仍有也許出現(xiàn)硬件故障,事務(wù)仍也許不得不中斷。因此,部分提交狀態(tài)并不等于事務(wù)成功執(zhí)行。3. 事務(wù)狀態(tài)第30頁(yè)第30頁(yè)(3) 失敗狀態(tài):由于硬件或邏輯等錯(cuò)誤,使得事務(wù)不能繼

13、續(xù)正常執(zhí)行,事務(wù)就進(jìn)入了失敗狀態(tài),處于失敗狀態(tài)事務(wù)必須回滾(ROLLBACK)。這樣,事務(wù)就進(jìn)入了中斷狀態(tài)。 3. 事務(wù)狀態(tài)第31頁(yè)第31頁(yè)(4) 中斷狀態(tài):事務(wù)回滾并且數(shù)據(jù)庫(kù)恢復(fù)到事務(wù)開(kāi)始執(zhí)行前狀態(tài)。 (5) 提交狀態(tài):當(dāng)事務(wù)成功完畢后,稱事務(wù)處于提交狀態(tài)。只有事務(wù)處于提交狀態(tài)后,才干說(shuō)事務(wù)已經(jīng)提交。 3. 事務(wù)狀態(tài)第32頁(yè)第32頁(yè)能夠在事務(wù)中執(zhí)行下列操作,實(shí)現(xiàn)事務(wù)狀態(tài)轉(zhuǎn)換: (1) BEGIN -TRANSATION:開(kāi)始運(yùn)營(yíng)事務(wù),使事務(wù)進(jìn)入活動(dòng)狀態(tài)。(2) END -TRANSATION:闡明事務(wù)中所有讀寫(xiě)操作都已完畢,使事務(wù)進(jìn)入部分提交狀態(tài),把事務(wù)所有操作對(duì)數(shù)據(jù)庫(kù)影響存入數(shù)據(jù)庫(kù)。 3.

14、 事務(wù)狀態(tài)第33頁(yè)第33頁(yè)(3) COMMIT TRANSACTION :標(biāo)志事務(wù)已經(jīng)成功地完畢,事務(wù)中所有操作對(duì)數(shù)據(jù)庫(kù)影響已經(jīng)安全地存入數(shù)據(jù)庫(kù),事務(wù)進(jìn)入提交狀態(tài),結(jié)束事務(wù)運(yùn)營(yíng)。 (4) ABORT - TRANSACTION :標(biāo)志事務(wù)進(jìn)入失敗狀態(tài),系統(tǒng)撤消事務(wù)中所有操作對(duì)數(shù)據(jù)庫(kù)和其它事務(wù)影響,結(jié)束事務(wù)運(yùn)營(yíng)。圖 5-2給出了事務(wù)狀態(tài)轉(zhuǎn)換。3. 事務(wù)狀態(tài)第34頁(yè)第34頁(yè)圖5-2 事務(wù)狀態(tài)轉(zhuǎn)換圖第35頁(yè)第35頁(yè) 5.2.2 備份1數(shù)據(jù)庫(kù)備份必要性人為錯(cuò)誤、硬盤損壞、電腦病毒、斷電或是天災(zāi)人禍等等都有也許造成數(shù)據(jù)丟失。正確分析威脅數(shù)據(jù)安全原因,及時(shí)地備份數(shù)據(jù),能使系統(tǒng)安全防護(hù)更有針對(duì)性。第36頁(yè)第

15、36頁(yè)2.故障種類(1)事務(wù)內(nèi)部故障:事務(wù)故障是由于事務(wù)程序內(nèi)部錯(cuò)誤而引起。事務(wù)內(nèi)部故障有是能夠通過(guò)事務(wù)程序本身發(fā)覺(jué)。但也有些是非預(yù)期,不能由事務(wù)程序處理。對(duì)于可預(yù)期錯(cuò)誤,應(yīng)當(dāng)由應(yīng)用程序以回滾方式來(lái)恢復(fù),非預(yù)期故障應(yīng)用程序無(wú)法處理,是由DBMS系統(tǒng)來(lái)實(shí)現(xiàn)故障恢復(fù)。事務(wù)故障通常指非預(yù)期故障。第37頁(yè)第37頁(yè)2.故障種類(2)系統(tǒng)故障:通常稱為軟故障,是指造成系統(tǒng)停止運(yùn)營(yíng)任何事件,使得系統(tǒng)要重新啟動(dòng),如CPU故障 ,操作 系統(tǒng)故障,忽然停電等。系統(tǒng)故障只是丟失了數(shù)據(jù)緩沖區(qū)中內(nèi)容,影響正在執(zhí)行所有事務(wù),但不會(huì)破壞數(shù)據(jù)庫(kù)。系統(tǒng)故障中斷了事務(wù)執(zhí)行過(guò)程,破壞了事務(wù)原子性,由于緩沖區(qū)中內(nèi)容也許部分已寫(xiě)入數(shù)據(jù)

16、庫(kù),系統(tǒng)重啟后數(shù)據(jù)庫(kù)也許處于不一致?tīng)顟B(tài)。 第38頁(yè)第38頁(yè)2.故障種類(3)介質(zhì)故障:通常稱為硬故障。如磁盤損壞、磁頭碰撞、瞬時(shí)強(qiáng)磁干擾。這類故障發(fā)生幾率小,但破壞性最大。(4)計(jì)算機(jī)病毒:是一個(gè)人為故障和破壞,是一些惡作劇研制一個(gè)計(jì)算機(jī)程序,能夠繁殖和傳播。第39頁(yè)第39頁(yè) 5.2.3 恢復(fù)1故障恢復(fù)技術(shù)要使數(shù)據(jù)庫(kù)在發(fā)生故障后能夠恢復(fù),必須建立冗余數(shù)據(jù),在故障發(fā)生后利用這些冗余數(shù)據(jù)實(shí)行數(shù)據(jù)恢復(fù)。建立冗余數(shù)據(jù)慣用技術(shù)是數(shù)據(jù)轉(zhuǎn)儲(chǔ)和建立日記文獻(xiàn)。 第40頁(yè)第40頁(yè)1故障恢復(fù)技術(shù)數(shù)據(jù)轉(zhuǎn)儲(chǔ)是將數(shù)據(jù)庫(kù)復(fù)制到另一個(gè)磁盤或磁帶上保留起來(lái)過(guò)程,又稱數(shù)據(jù)備份。數(shù)據(jù)轉(zhuǎn)儲(chǔ)分為靜態(tài)轉(zhuǎn)儲(chǔ)和動(dòng)態(tài)轉(zhuǎn)儲(chǔ)。靜態(tài)轉(zhuǎn)儲(chǔ)是指在轉(zhuǎn)儲(chǔ)期

17、間不允許對(duì)數(shù)據(jù)庫(kù)進(jìn)行任何存取、修改活動(dòng),得到與數(shù)據(jù)庫(kù)完全一致副本。靜態(tài)轉(zhuǎn)儲(chǔ)又可分為完全轉(zhuǎn)儲(chǔ)和增量轉(zhuǎn)儲(chǔ)。完全轉(zhuǎn)儲(chǔ)是轉(zhuǎn)儲(chǔ)當(dāng)前數(shù)據(jù)庫(kù)所有數(shù)據(jù)增量轉(zhuǎn)儲(chǔ)只轉(zhuǎn)儲(chǔ)上次備份后發(fā)生改變數(shù)據(jù)動(dòng)態(tài)轉(zhuǎn)儲(chǔ)是指在轉(zhuǎn)儲(chǔ)期間允許對(duì)數(shù)據(jù)庫(kù)存取和修改, 即轉(zhuǎn)儲(chǔ)能夠與事務(wù)并行執(zhí)行。第41頁(yè)第41頁(yè)1故障恢復(fù)技術(shù)為確保數(shù)據(jù)庫(kù)是可恢復(fù),日記文獻(xiàn)登記必須遵循兩條原則:(1)登記順序嚴(yán)格按并發(fā)事務(wù)執(zhí)行時(shí)間順序。(2)必須先寫(xiě)日記文獻(xiàn),后寫(xiě)數(shù)據(jù)庫(kù)。為了避免磁盤介質(zhì)出現(xiàn)故障影響數(shù)據(jù)庫(kù)可用性,許多DBMS提供數(shù)據(jù)庫(kù)鏡像功效用于數(shù)據(jù)庫(kù)恢復(fù)。數(shù)據(jù)庫(kù)關(guān)鍵技術(shù)在于建立冗余數(shù)據(jù),即備份數(shù)據(jù)。如何在系統(tǒng)出現(xiàn)故障后能夠及時(shí)使數(shù)據(jù)庫(kù)恢復(fù)到故障前正確狀態(tài),就是數(shù)

18、據(jù)庫(kù)恢復(fù)技術(shù)。第42頁(yè)第42頁(yè)2恢復(fù)策略有了數(shù)據(jù)轉(zhuǎn)儲(chǔ)和日記文獻(xiàn),就能夠在系統(tǒng)發(fā)生故障時(shí)進(jìn)行恢復(fù),故障恢復(fù)有兩個(gè)操作:(1)撤消事務(wù)(UNDO):將未完畢事務(wù)撤消,使數(shù)據(jù)庫(kù)回復(fù)到事務(wù)執(zhí)行前正確狀態(tài)。撤消事務(wù)過(guò)程下列:反向查看未完畢事務(wù)日記(由后向前掃描),查找事務(wù)更新操作;對(duì)該事務(wù)更新操作執(zhí)行逆操作,用日記文獻(xiàn)統(tǒng)計(jì)中更新前值寫(xiě)入數(shù)據(jù)庫(kù),插入統(tǒng)計(jì)從數(shù)據(jù)庫(kù)中刪除,刪除統(tǒng)計(jì)重新插入數(shù)據(jù)庫(kù)中;繼續(xù)反向掃描日記文獻(xiàn),查找該事務(wù)其它更新操作并執(zhí)行操作直至事務(wù)開(kāi)始標(biāo)志。第43頁(yè)第43頁(yè)2恢復(fù)策略(2)重做事務(wù)(REDO):將已經(jīng)提交事務(wù)重新執(zhí)行。重做事務(wù)過(guò)程下列:從事務(wù)開(kāi)始標(biāo)識(shí)起,正向掃描日記文獻(xiàn),重新執(zhí)行日

19、記文獻(xiàn)登記該事務(wù)對(duì)數(shù)據(jù)庫(kù)因此操作,直至事務(wù)結(jié)束標(biāo)識(shí)。第44頁(yè)第44頁(yè)2恢復(fù)策略對(duì)于不同故障,采取不同恢復(fù)策略。(1)事務(wù)故障恢復(fù)事務(wù)故障是事務(wù)在運(yùn)行至正常終止點(diǎn) (COMMIT或ROLLBACK)前終止,日記文件只有該事務(wù)標(biāo)識(shí)而沒(méi)有結(jié)束標(biāo)識(shí)。對(duì)這類故障恢復(fù)經(jīng)過(guò)撤消(UNDO)產(chǎn)生故障事務(wù),使數(shù)據(jù)庫(kù)恢復(fù)到該事務(wù)執(zhí)行前正確狀態(tài)來(lái)完成。第45頁(yè)第45頁(yè)2恢復(fù)策略(2)系統(tǒng)故障恢復(fù)系統(tǒng)故障會(huì)使數(shù)據(jù)庫(kù)數(shù)據(jù)不一致,原因有兩個(gè):一是未完畢事務(wù)對(duì)數(shù)據(jù)庫(kù)更新也許已寫(xiě)入數(shù)據(jù)庫(kù);二是已提交事務(wù)對(duì)數(shù)據(jù)庫(kù)更新也許還在緩沖區(qū)中沒(méi)來(lái)得及寫(xiě)入數(shù)據(jù)庫(kù)。因此恢復(fù)操作就是要撤消故障發(fā)生時(shí)未完畢事務(wù),重做(REDO)已提交事務(wù)。 第

20、46頁(yè)第46頁(yè)2恢復(fù)策略(3)介質(zhì)故障恢復(fù)介質(zhì)故障由于數(shù)據(jù)庫(kù)遭到破壞,需要重裝數(shù)據(jù)庫(kù),裝載故障前最近一次備份和故障前日記文獻(xiàn)副本,再按照系統(tǒng)故障恢復(fù)過(guò)程執(zhí)行撤消和重做來(lái)恢復(fù)。第47頁(yè)第47頁(yè)5.3數(shù)據(jù)庫(kù)并發(fā)控制5.3.1事務(wù)調(diào)度我們考慮一個(gè)簡(jiǎn)樸銀行數(shù)據(jù)庫(kù)系統(tǒng)。設(shè)每個(gè)帳號(hào)在數(shù)據(jù)庫(kù)中含有一條數(shù)據(jù)庫(kù)統(tǒng)計(jì),用以統(tǒng)計(jì)這個(gè)帳號(hào)存款數(shù)量和其它信息。設(shè)有兩個(gè)事務(wù)T0和T1, 事務(wù)T0從帳號(hào)A轉(zhuǎn)元到帳號(hào)B;事務(wù)T1從帳號(hào)A轉(zhuǎn)20%款到帳號(hào)B。T 0和T 1定義下列: 第48頁(yè)第48頁(yè)5.3.1事務(wù)調(diào)度T0: read(A);T1: read(A);A:=A-;write(A);read(B);B:=B+;wri

21、te(B).temp:=A*0.2; A:=A-temp;write(A);read(B); B:=B+temp;write(B)第49頁(yè)第49頁(yè)5.3.1事務(wù)調(diào)度闡明:假設(shè)用 A和B表示帳號(hào)A和帳號(hào)B存款數(shù)量;A和B初值分別為10000和0 。假如這兩個(gè)事務(wù)順序執(zhí)行,能夠有兩種方案。一是先執(zhí)行T0后執(zhí)行T1,如圖5-3(a)所表示。運(yùn)營(yíng)結(jié)束時(shí),A和B最后值分別是6400和23600。另一個(gè)是先執(zhí)行T1后執(zhí)行T0,如圖5-3(b)所表示。A和B最后值分別是6000和24000。無(wú)論采用兩種方案中哪一個(gè),A+B在兩個(gè)事務(wù)結(jié)束時(shí)仍然是10000+0。第50頁(yè)第50頁(yè)第51頁(yè)第51頁(yè)5.3.1事務(wù)調(diào)

22、度事務(wù)調(diào)度普通概念。(1)調(diào)度(schedule):事務(wù)執(zhí)行順序。(2)串行調(diào)度 (serial schedule):多個(gè)事務(wù)依次串行執(zhí)行,且只有當(dāng)一個(gè)事務(wù)所有操作都執(zhí)行完后才執(zhí)行另一個(gè)事務(wù)所有操作。(3)并行調(diào)度 (concurrent schedule):利用分時(shí)辦法同時(shí)處理多個(gè)事務(wù)。第52頁(yè)第52頁(yè)5.3.1事務(wù)調(diào)度從前面例子能夠看出,無(wú)論先執(zhí)行哪個(gè)事務(wù),只要是串行調(diào)度,執(zhí)行結(jié)果都是穩(wěn)定和正確。對(duì)于N個(gè)事務(wù),最多有N!種正確串行調(diào)度。但對(duì)于N個(gè)事務(wù)進(jìn)行并發(fā)調(diào)度,情況會(huì)變得復(fù)雜多,調(diào)度方案遠(yuǎn)不小于N!個(gè),并且并發(fā)調(diào)度結(jié)果有也許是錯(cuò)誤。圖5-4(a)并發(fā)調(diào)度是正確,圖5-4(b)也是一個(gè)并發(fā)

23、調(diào)度,但其造成A和B最后止果為8000和24000, A+B=8000+24000 30000,結(jié)果是錯(cuò)誤。稱此并行調(diào)度將產(chǎn)生不一致?tīng)顟B(tài)。第53頁(yè)第53頁(yè)第54頁(yè)第54頁(yè)5.3.2并發(fā)操作問(wèn)題并發(fā)控制就是一個(gè)在多用戶環(huán)境下,對(duì)數(shù)據(jù)庫(kù)進(jìn)行并發(fā)操作進(jìn)行規(guī)范機(jī)制。其目的是為了避免對(duì)數(shù)據(jù)丟失、更新、讀“臟”數(shù)據(jù)和不可重復(fù)讀等,從而確保數(shù)據(jù)正確性與一致性。第55頁(yè)第55頁(yè)5.3.2并發(fā)操作問(wèn)題并發(fā)操作帶來(lái)數(shù)據(jù)不一致性有三類:丟失修改不可重復(fù)讀讀“臟”數(shù)據(jù)如圖5-5所表示。第56頁(yè)第56頁(yè)第57頁(yè)第57頁(yè)5.3.2并發(fā)操作問(wèn)題(1)丟失修改 如圖5-5(a)所表示。(2)不可重復(fù)讀 如圖5-5(b)所表示

24、。(3)讀“臟”數(shù)據(jù) 如圖5-5(c)所表示。第58頁(yè)第58頁(yè)5.3.3加鎖并發(fā)事務(wù)假如對(duì)數(shù)據(jù)讀寫(xiě)時(shí)不加以控制,會(huì)破壞事務(wù)隔離性和一致性??刂剖侄尉褪羌渔i,在事務(wù)執(zhí)行時(shí)限制其它事務(wù)對(duì)數(shù)據(jù)讀取。第59頁(yè)第59頁(yè)5.3.3加鎖在并發(fā)控制中引入兩種鎖:排它鎖(Exclusive Locks,簡(jiǎn)稱X鎖)和共享鎖(Share Locks,簡(jiǎn)稱S鎖)。排它鎖又稱為寫(xiě)鎖,用于對(duì)數(shù)據(jù)進(jìn)行寫(xiě)操作時(shí)進(jìn)行鎖定。共享鎖又稱為讀鎖,用于對(duì)數(shù)據(jù)進(jìn)行讀操作時(shí)進(jìn)行鎖定。第60頁(yè)第60頁(yè)5.3.3加鎖通過(guò)對(duì)數(shù)據(jù)加鎖,能夠限制其它事務(wù)對(duì)數(shù)據(jù)訪問(wèn),但也降低了事務(wù)并發(fā)性。怎樣在確保事務(wù)一致性前提下盡也許提升并發(fā)性,這需要封鎖協(xié)議來(lái)處理。第61頁(yè)第61頁(yè)5.3.3加鎖封鎖協(xié)議是對(duì)數(shù)據(jù)加鎖類型、加鎖時(shí)間和釋放鎖時(shí)間一些規(guī)則描述。(1)一級(jí)封鎖協(xié)議是:事務(wù) T在修改數(shù)據(jù) A之前必須先對(duì)其加X(jué)鎖,直到事務(wù)結(jié)束才釋放X鎖。(2)二級(jí)封鎖協(xié)議是:一級(jí)封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù) A 之前必須對(duì)其加上 S鎖,讀完后即可釋放S鎖。(3)三級(jí)封鎖協(xié)議是:一級(jí)封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)A 之前必須對(duì)其加上 S鎖,直到事務(wù)結(jié)束才釋放S鎖。第62頁(yè)第62頁(yè)5

溫馨提示

  • 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)論