數(shù)據(jù)庫(kù)的安全保護(hù)_第1頁(yè)
數(shù)據(jù)庫(kù)的安全保護(hù)_第2頁(yè)
數(shù)據(jù)庫(kù)的安全保護(hù)_第3頁(yè)
數(shù)據(jù)庫(kù)的安全保護(hù)_第4頁(yè)
數(shù)據(jù)庫(kù)的安全保護(hù)_第5頁(yè)
已閱讀5頁(yè),還剩3頁(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ù)的安全保護(hù)數(shù)據(jù)庫(kù)并發(fā)控制的含義數(shù)據(jù)庫(kù)并發(fā)控制的含義事務(wù)事務(wù)并發(fā)控制的必要性并發(fā)控制的必要性基于封鎖的并發(fā)控制技術(shù)基于封鎖的并發(fā)控制技術(shù)基于時(shí)間戳的并發(fā)控制技術(shù)基于時(shí)間戳的并發(fā)控制技術(shù)數(shù)據(jù)庫(kù)的并發(fā)控制數(shù)據(jù)庫(kù)的并發(fā)控制 數(shù)據(jù)庫(kù)系統(tǒng)一般可分為單用戶系統(tǒng)和多用戶系統(tǒng)兩種。數(shù)據(jù)庫(kù)系統(tǒng)一般可分為單用戶系統(tǒng)和多用戶系統(tǒng)兩種。在任何一個(gè)時(shí)刻只允許一個(gè)用戶使用的數(shù)據(jù)庫(kù)系統(tǒng)稱為在任何一個(gè)時(shí)刻只允許一個(gè)用戶使用的數(shù)據(jù)庫(kù)系統(tǒng)稱為單用戶數(shù)據(jù)庫(kù)系統(tǒng),允許多個(gè)用戶同時(shí)使用的數(shù)據(jù)庫(kù)系單用戶數(shù)據(jù)庫(kù)系統(tǒng),允許多個(gè)用戶同時(shí)使用的數(shù)據(jù)庫(kù)系統(tǒng)稱為多用戶數(shù)據(jù)庫(kù)系統(tǒng)。數(shù)據(jù)庫(kù)的最大特點(diǎn)之一就是統(tǒng)稱為多用戶數(shù)據(jù)庫(kù)系統(tǒng)。數(shù)據(jù)庫(kù)的最大特點(diǎn)之

2、一就是數(shù)據(jù)資源共享,因而多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)都是多用戶系統(tǒng),數(shù)據(jù)資源共享,因而多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)都是多用戶系統(tǒng),這樣就會(huì)發(fā)生多個(gè)用戶并發(fā)存取同一數(shù)據(jù)塊的情況,如這樣就會(huì)發(fā)生多個(gè)用戶并發(fā)存取同一數(shù)據(jù)塊的情況,如果對(duì)并發(fā)操作不加控制就可能產(chǎn)生不正確的數(shù)據(jù),破壞果對(duì)并發(fā)操作不加控制就可能產(chǎn)生不正確的數(shù)據(jù),破壞數(shù)據(jù)庫(kù)的完整性,并發(fā)控制就是解決這類問(wèn)題,以保持?jǐn)?shù)據(jù)庫(kù)的完整性,并發(fā)控制就是解決這類問(wèn)題,以保持?jǐn)?shù)據(jù)庫(kù)中數(shù)據(jù)的一致性。數(shù)據(jù)庫(kù)中數(shù)據(jù)的一致性。7.3.1 數(shù)據(jù)庫(kù)并發(fā)控制的含義數(shù)據(jù)庫(kù)并發(fā)控制的含義事務(wù)(事務(wù)(TransactionTransaction)是一個(gè)邏輯工作單元,是指數(shù)據(jù)庫(kù)系統(tǒng)中一組對(duì)數(shù)據(jù)的操)是一

3、個(gè)邏輯工作單元,是指數(shù)據(jù)庫(kù)系統(tǒng)中一組對(duì)數(shù)據(jù)的操作序列。一個(gè)事務(wù)可以是一條或一組作序列。一個(gè)事務(wù)可以是一條或一組SQLSQL語(yǔ)句、或整個(gè)應(yīng)用程序。在語(yǔ)句、或整個(gè)應(yīng)用程序。在SQLSQL語(yǔ)言中,語(yǔ)言中,定義事務(wù)的語(yǔ)句有以下三條:定義事務(wù)的語(yǔ)句有以下三條:BEGIN TRANSACTIONBEGIN TRANSACTIONCOMMITCOMMITROLLBACKROLLBACK事務(wù)具備的以下幾個(gè)基本特征又稱為其應(yīng)遵循的事務(wù)具備的以下幾個(gè)基本特征又稱為其應(yīng)遵循的ACIDACID準(zhǔn)則:(準(zhǔn)則:(1 1)原子性)原子性(AtomicityAtomicity)。一個(gè)事務(wù)要么全部執(zhí)行,要么全不執(zhí)行,不允許僅完

4、成部)。一個(gè)事務(wù)要么全部執(zhí)行,要么全不執(zhí)行,不允許僅完成部分事務(wù)。(分事務(wù)。(2 2)一致性()一致性(ConsistencyConsistency)。事務(wù)的正確執(zhí)行應(yīng)使數(shù)據(jù)庫(kù)從一個(gè))。事務(wù)的正確執(zhí)行應(yīng)使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變?yōu)榱硪粋€(gè)一致性狀態(tài)。數(shù)據(jù)一致性指數(shù)據(jù)應(yīng)滿足的約束條件。一致性狀態(tài)變?yōu)榱硪粋€(gè)一致性狀態(tài)。數(shù)據(jù)一致性指數(shù)據(jù)應(yīng)滿足的約束條件。(3 3)隔離性()隔離性(IsolationIsolation)。多個(gè)事務(wù)的并發(fā)執(zhí)行是獨(dú)立的,在事務(wù)未結(jié)束)。多個(gè)事務(wù)的并發(fā)執(zhí)行是獨(dú)立的,在事務(wù)未結(jié)束前 , 其 他 事 務(wù) 不 能 存 取 該 事 務(wù) 的 中 間 結(jié) 果 數(shù) 據(jù) 。 (前 , 其 他

5、 事 務(wù) 不 能 存 取 該 事 務(wù) 的 中 間 結(jié) 果 數(shù) 據(jù) 。 ( 4 4 ) 持 久 性) 持 久 性(DurabilityDurability)。事務(wù)提交后,系統(tǒng)應(yīng)保證事務(wù)執(zhí)行的結(jié)果可靠地存放在數(shù))。事務(wù)提交后,系統(tǒng)應(yīng)保證事務(wù)執(zhí)行的結(jié)果可靠地存放在數(shù)據(jù)庫(kù)中,不會(huì)因?yàn)楣收隙鴣G失。據(jù)庫(kù)中,不會(huì)因?yàn)楣收隙鴣G失。7.3.2 7.3.2 事務(wù)事務(wù)同一數(shù)據(jù)庫(kù)系統(tǒng)中往往有多個(gè)事務(wù)并發(fā)執(zhí)行,如果同一數(shù)據(jù)庫(kù)系統(tǒng)中往往有多個(gè)事務(wù)并發(fā)執(zhí)行,如果不進(jìn)行控制,就會(huì)產(chǎn)生數(shù)據(jù)的不一致性。不進(jìn)行控制,就會(huì)產(chǎn)生數(shù)據(jù)的不一致性。1 1丟失更新丟失更新2 2臟讀臟讀3 3不可重讀不可重讀7.3.3 7.3.3 并發(fā)控制的

6、必要性并發(fā)控制的必要性基于封鎖的并發(fā)控制思想是:事務(wù)對(duì)數(shù)據(jù)操作前必須獲得對(duì)該數(shù)據(jù)的鎖,完成操作后在基于封鎖的并發(fā)控制思想是:事務(wù)對(duì)數(shù)據(jù)操作前必須獲得對(duì)該數(shù)據(jù)的鎖,完成操作后在適當(dāng)時(shí)候釋放鎖,當(dāng)?shù)貌坏芥i時(shí)事務(wù)將處于等待狀態(tài)。適當(dāng)時(shí)候釋放鎖,當(dāng)?shù)貌坏芥i時(shí)事務(wù)將處于等待狀態(tài)。鎖是數(shù)據(jù)項(xiàng)上的并發(fā)控制標(biāo)志,它有兩種類型:共享鎖(鎖是數(shù)據(jù)項(xiàng)上的并發(fā)控制標(biāo)志,它有兩種類型:共享鎖(Shared LockShared Lock,簡(jiǎn)稱,簡(jiǎn)稱S S鎖)和排鎖)和排它鎖(它鎖(Exclusive LockExclusive Lock,簡(jiǎn)稱,簡(jiǎn)稱X X鎖)。鎖)。1 1封鎖協(xié)議封鎖協(xié)議系統(tǒng)中的事務(wù)在加鎖和釋放鎖時(shí),都

7、必須遵守一組規(guī)則,這組規(guī)則稱為封鎖系統(tǒng)中的事務(wù)在加鎖和釋放鎖時(shí),都必須遵守一組規(guī)則,這組規(guī)則稱為封鎖協(xié)議。對(duì)封鎖方式規(guī)定不同的規(guī)則,就形成了各種不同的封鎖協(xié)議。前面論協(xié)議。對(duì)封鎖方式規(guī)定不同的規(guī)則,就形成了各種不同的封鎖協(xié)議。前面論及的丟失更新、臟讀和不可重讀等數(shù)據(jù)不一致問(wèn)題,可以通過(guò)三級(jí)封鎖協(xié)議及的丟失更新、臟讀和不可重讀等數(shù)據(jù)不一致問(wèn)題,可以通過(guò)三級(jí)封鎖協(xié)議在不同程度上得到解決。在不同程度上得到解決。2 2封鎖粒度封鎖粒度封鎖粒度是指封鎖的數(shù)據(jù)對(duì)象的大小。封鎖粒度是指封鎖的數(shù)據(jù)對(duì)象的大小。7.3.4 7.3.4 基于封鎖的并發(fā)控制技術(shù)基于封鎖的并發(fā)控制技術(shù)3 3死鎖。一個(gè)事務(wù)如果申請(qǐng)鎖未獲

8、準(zhǔn),則須等待其他事務(wù)釋放鎖,這就形成了事務(wù)之間的等待關(guān)系。當(dāng)事死鎖。一個(gè)事務(wù)如果申請(qǐng)鎖未獲準(zhǔn),則須等待其他事務(wù)釋放鎖,這就形成了事務(wù)之間的等待關(guān)系。當(dāng)事務(wù)中出現(xiàn)循環(huán)等待時(shí),如果不加干預(yù),就會(huì)一直等待下去,這種狀態(tài)稱為死鎖?;诜怄i的并發(fā)控制技術(shù)務(wù)中出現(xiàn)循環(huán)等待時(shí),如果不加干預(yù),就會(huì)一直等待下去,這種狀態(tài)稱為死鎖?;诜怄i的并發(fā)控制技術(shù)需要解決死鎖問(wèn)題,即如何檢測(cè)、處理和預(yù)防死鎖。(需要解決死鎖問(wèn)題,即如何檢測(cè)、處理和預(yù)防死鎖。(1 1)死鎖的檢測(cè)和處理)死鎖的檢測(cè)和處理 死鎖檢測(cè)的方法一般有以下死鎖檢測(cè)的方法一般有以下兩種:兩種: 超時(shí)法。如果一個(gè)事務(wù)的等待時(shí)間超過(guò)某時(shí)限,則認(rèn)為發(fā)生死鎖。超時(shí)

9、法。如果一個(gè)事務(wù)的等待時(shí)間超過(guò)某時(shí)限,則認(rèn)為發(fā)生死鎖。 等待圖法。等待圖是一個(gè)等待圖法。等待圖是一個(gè)有向圖,其成圖規(guī)則是:如果事務(wù)有向圖,其成圖規(guī)則是:如果事務(wù)T1T1需要的數(shù)據(jù)已經(jīng)被事務(wù)需要的數(shù)據(jù)已經(jīng)被事務(wù)T2T2封鎖,就從封鎖,就從T1T1到到T2T2畫(huà)一條有向線。有向圖中畫(huà)一條有向線。有向圖中出現(xiàn)回路即表明出現(xiàn)了死鎖。發(fā)現(xiàn)死鎖后,靠事務(wù)本身無(wú)法打破死鎖,必須由數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行干預(yù)。出現(xiàn)回路即表明出現(xiàn)了死鎖。發(fā)現(xiàn)死鎖后,靠事務(wù)本身無(wú)法打破死鎖,必須由數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行干預(yù)。數(shù)據(jù)庫(kù)管理系統(tǒng)對(duì)死鎖一般采用如下策略:數(shù)據(jù)庫(kù)管理系統(tǒng)對(duì)死鎖一般采用如下策略: 在循環(huán)等待的事務(wù)中,選擇一個(gè)事務(wù)作為犧

10、牲者,給其他事在循環(huán)等待的事務(wù)中,選擇一個(gè)事務(wù)作為犧牲者,給其他事務(wù)務(wù)“讓路讓路”。 回滾犧牲的事務(wù),釋放其獲得的鎖及其他資源?;貪L犧牲的事務(wù),釋放其獲得的鎖及其他資源。 將釋放的鎖讓給等待它的事務(wù)。選取將釋放的鎖讓給等待它的事務(wù)。選取犧牲事務(wù)的方法有以下幾種:犧牲事務(wù)的方法有以下幾種: 選擇最遲交付的事務(wù)作為犧牲者。選擇最遲交付的事務(wù)作為犧牲者。 選擇獲得鎖最少的事務(wù)作為犧牲者。選擇獲得鎖最少的事務(wù)作為犧牲者。 選擇回滾代價(jià)最小的事務(wù)作為犧牲者。(選擇回滾代價(jià)最小的事務(wù)作為犧牲者。(2 2)死鎖的預(yù)防)死鎖的預(yù)防 檢測(cè)死鎖需要一定的開(kāi)銷,因此要盡量避免死檢測(cè)死鎖需要一定的開(kāi)銷,因此要盡量避免

11、死鎖的發(fā)生。數(shù)據(jù)庫(kù)系統(tǒng)中預(yù)防死鎖常用的方法有以下兩種:鎖的發(fā)生。數(shù)據(jù)庫(kù)系統(tǒng)中預(yù)防死鎖常用的方法有以下兩種: 一次加鎖法。一次加鎖法是在事務(wù)執(zhí)行前,一次加鎖法。一次加鎖法是在事務(wù)執(zhí)行前,對(duì)要使用的所有數(shù)據(jù)對(duì)象依次加鎖并要求加鎖成功,只要一個(gè)加鎖不成功,即表示本次加鎖失敗,立即釋對(duì)要使用的所有數(shù)據(jù)對(duì)象依次加鎖并要求加鎖成功,只要一個(gè)加鎖不成功,即表示本次加鎖失敗,立即釋放所有加鎖成功的數(shù)據(jù)對(duì)象,然后重新開(kāi)始加鎖。放所有加鎖成功的數(shù)據(jù)對(duì)象,然后重新開(kāi)始加鎖。 順序加鎖法。順序加鎖法是對(duì)所有可能封鎖的數(shù)據(jù)對(duì)順序加鎖法。順序加鎖法是對(duì)所有可能封鎖的數(shù)據(jù)對(duì)象按序編號(hào),規(guī)定一個(gè)加鎖順序,每個(gè)事務(wù)都按此順序加

12、鎖,釋放時(shí)則按逆序進(jìn)行。象按序編號(hào),規(guī)定一個(gè)加鎖順序,每個(gè)事務(wù)都按此順序加鎖,釋放時(shí)則按逆序進(jìn)行。7.3.4 7.3.4 基于封鎖的并發(fā)控制技術(shù)基于封鎖的并發(fā)控制技術(shù)為了區(qū)別事務(wù)開(kāi)始執(zhí)行的先后,每個(gè)事務(wù)在開(kāi)始執(zhí)行時(shí),都由系統(tǒng)賦予一個(gè)唯為了區(qū)別事務(wù)開(kāi)始執(zhí)行的先后,每個(gè)事務(wù)在開(kāi)始執(zhí)行時(shí),都由系統(tǒng)賦予一個(gè)唯一的、隨時(shí)間增長(zhǎng)的整數(shù),稱為時(shí)間戳(一的、隨時(shí)間增長(zhǎng)的整數(shù),稱為時(shí)間戳(Time StTime St,簡(jiǎn)稱,簡(jiǎn)稱TSTS)。設(shè)有兩個(gè)事務(wù))。設(shè)有兩個(gè)事務(wù)T1T1和和T2T2,如果,如果TSTS(T1T1) TS TS(T2T2),則稱),則稱T1T1比比T2“T2“年老年老”或或T2T2比比T1“

13、T1“年輕年輕”?;跁r(shí)間戳的并發(fā)控制思想是:以時(shí)間戳的順序處理沖突,使一組事務(wù)的交叉基于時(shí)間戳的并發(fā)控制思想是:以時(shí)間戳的順序處理沖突,使一組事務(wù)的交叉執(zhí)行等價(jià)于一個(gè)由時(shí)間戳確定的串行序列,其目的是保證沖突的讀操作和寫(xiě)操執(zhí)行等價(jià)于一個(gè)由時(shí)間戳確定的串行序列,其目的是保證沖突的讀操作和寫(xiě)操作按照時(shí)間戳的順序執(zhí)行?;镜臅r(shí)間戳法遵循以下準(zhǔn)則:(作按照時(shí)間戳的順序執(zhí)行?;镜臅r(shí)間戳法遵循以下準(zhǔn)則:(1 1)事務(wù)開(kāi)始時(shí),)事務(wù)開(kāi)始時(shí),賦予事務(wù)一個(gè)時(shí)間戳。(賦予事務(wù)一個(gè)時(shí)間戳。(2 2)事務(wù)的每個(gè)讀操作或?qū)懖僮鞫紟в性撌聞?wù)的時(shí)間)事務(wù)的每個(gè)讀操作或?qū)懖僮鞫紟в性撌聞?wù)的時(shí)間戳。(戳。(3 3)對(duì)每個(gè)數(shù)據(jù)項(xiàng))對(duì)每個(gè)數(shù)據(jù)項(xiàng)R R,記錄讀過(guò)和寫(xiě)過(guò),記錄讀過(guò)和寫(xiě)過(guò)R R的所有事務(wù)的最大時(shí)間戳值分別的所有事務(wù)的最大時(shí)間戳值分別為為RTMRTM(R R)和)和WTMWTM(R R)。()。(4 4)當(dāng)事務(wù)對(duì)數(shù)據(jù)項(xiàng))當(dāng)事務(wù)對(duì)數(shù)據(jù)項(xiàng)R R請(qǐng)求讀操作時(shí),若對(duì)請(qǐng)求讀操作時(shí),若對(duì)R R讀操作讀操作的時(shí)間戳為的時(shí)間戳為TSTS,如果,如果TSWTMTSWTM(R R)則拒絕該讀操作,并用新的時(shí)間戳重新啟動(dòng))則拒絕該讀操作,并用新的時(shí)間戳重新啟動(dòng)該事務(wù),否則執(zhí)行讀操作并把該事務(wù),否則執(zhí)行讀操作并把RTMRTM(R R)

溫馨提示

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