




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
6月-23四川理工學(xué)院計(jì)科系1第7章系統(tǒng)實(shí)現(xiàn)技術(shù)系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第1頁。6月-23四川理工學(xué)院計(jì)科系2本章重要概念系統(tǒng)目錄及其與DBMS各子系統(tǒng)的聯(lián)系。事務(wù)的定義,COMMIT和ROLLBACK的語義,事務(wù)的ACID性質(zhì),事務(wù)的狀態(tài)變遷圖。存儲(chǔ)器類型,穩(wěn)定存儲(chǔ)器的實(shí)現(xiàn),數(shù)據(jù)傳送過程。恢復(fù)的定義、基本原則和實(shí)現(xiàn)方法,故障類型,檢查點(diǎn)技術(shù),REDO和UNDO操作,運(yùn)行記錄優(yōu)先原則。
系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第2頁。6月-23四川理工學(xué)院計(jì)科系3本章重要概念(續(xù)1)并發(fā)操作帶來的三個(gè)問題,X鎖、PX協(xié)議、PXC協(xié)議,S鎖、PS協(xié)議、PSC協(xié)議,活鎖、餓死和死鎖,并發(fā)調(diào)度,串行調(diào)度,并發(fā)調(diào)度的可串行化,兩段封鎖法,SQL中事務(wù)的存取模式和隔離級(jí)別。完整性的定義,完整性子系統(tǒng)的功能,完整性規(guī)則的組成。SQL中的三大類完整性約束,SQL3中的觸發(fā)器技術(shù)。安全性的定義、級(jí)別,權(quán)限,SQL中安全性機(jī)制,幾種常用的安全性措施,自然環(huán)境的安全性。系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第3頁。6月-23四川理工學(xué)院計(jì)科系4主要內(nèi)容和學(xué)習(xí)要求7.1系統(tǒng)目錄(理解)7.2事務(wù)(綜合應(yīng)用)7.3數(shù)據(jù)庫的恢復(fù)(理解)7.4數(shù)據(jù)庫的并發(fā)控制(了解)7.5并發(fā)事務(wù)的可串行化和可恢復(fù)性(了解)7.6數(shù)據(jù)庫的完整性(理解)7.7數(shù)據(jù)庫的安全性(理解)系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第4頁。6月-23四川理工學(xué)院計(jì)科系57.1系統(tǒng)目錄什么是系統(tǒng)目錄系統(tǒng)目錄的重要性系統(tǒng)目錄的內(nèi)容元數(shù)據(jù)系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第5頁。6月-23四川理工學(xué)院計(jì)科系67.1系統(tǒng)目錄(續(xù)1)7.1.1RDBMS系統(tǒng)目錄的存儲(chǔ)內(nèi)容關(guān)系名,屬性名,屬性域(數(shù)據(jù)類型)各種約束,主鍵,輔助鍵,外鍵,空值/非空值視圖的外部級(jí)描述,存儲(chǔ)結(jié)構(gòu)和索引的內(nèi)部級(jí)描述安全性和授權(quán)規(guī)則數(shù)據(jù)完整性規(guī)則注意:這些數(shù)據(jù)都以表格的形式存在系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第6頁。6月-23四川理工學(xué)院計(jì)科系77.1系統(tǒng)目錄(續(xù)2)REL_AND_ATTR_CATALOGREL_NAMEATTR_NAMEATTR_TYPEMEMBER_OF_PKMEMBER_OF_FKFK_RELATION關(guān)系名屬性名屬性類型主鍵外鍵外鍵關(guān)系RELATION_KEYSREL_NAMEKEY_NUMBERMEMBER_ATTR(a)存儲(chǔ)鍵信息的目錄關(guān)系RELATION_INDEXESREL_NAMEINDEX_NAMEMEMBER_ATTRINDEX_TYPEATTR_NOASC_DESC(b)存儲(chǔ)索引信息的目錄關(guān)系VIEW_QUERIER
VIEW_ATTRIBUTESVIEW_NAMEQUERY
VIEW_NAMEATTR_NAMEATTR_NUM(c)存儲(chǔ)視圖信息的目錄關(guān)系某RDBMS的系統(tǒng)目錄內(nèi)容系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第7頁。6月-23四川理工學(xué)院計(jì)科系87.1系統(tǒng)目錄(續(xù)3)屬性鍵視圖屬性視圖關(guān)系關(guān)系基本關(guān)系索引屬性名鍵類型d數(shù)據(jù)類型鍵編號(hào)關(guān)系名查詢索引類型屬性序號(hào)索引名屬性名K_AR_IR_FI_AK_IR_AR_KV_A外鍵7.1.2系統(tǒng)目錄的擴(kuò)充ER圖系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第8頁。6月-23四川理工學(xué)院計(jì)科系97.1系統(tǒng)目錄(續(xù)4)DML命令的外部級(jí)到概念級(jí)映象DDL編譯程序DML優(yōu)化程序DML編譯程序DML分析校驗(yàn)程序DBMS處理和檢查三級(jí)模式兩級(jí)映象檢查查詢涉及的關(guān)系名屬性名等將查詢涉及的概念模式轉(zhuǎn)換成內(nèi)模式,產(chǎn)生訪問計(jì)劃根據(jù)物理結(jié)構(gòu)優(yōu)化查詢執(zhí)行方案將查詢中的視圖由外部級(jí)導(dǎo)到概念級(jí)映象處理和檢查權(quán)限授權(quán)和安全程序7.1.3系統(tǒng)目錄和DBMS各子系統(tǒng)的聯(lián)系系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第9頁。6月-23四川理工學(xué)院計(jì)科系107.2事務(wù)(transaction)事務(wù):構(gòu)成單一邏輯工作單元的操作集合。事務(wù)以“BEGINTRANSACTION”
始,以“COMMIT”或“ROLLBACK”終。事務(wù)的性質(zhì)(ACID)原子性(Atomicity):事務(wù)是一個(gè)不可分割的工作單元
一致性(Consistency):即數(shù)據(jù)不因事務(wù)的執(zhí)行而被破壞
隔離性(Isolation):多個(gè)事務(wù)并發(fā)執(zhí)行時(shí),系統(tǒng)應(yīng)保證與這些事務(wù)先后單獨(dú)執(zhí)行時(shí)的結(jié)果一樣
持久性(Durability):一事務(wù)一旦完成全部操作后,它對(duì)數(shù)據(jù)庫的所有更新應(yīng)永久地反映在數(shù)據(jù)庫中
系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第10頁。6月-23四川理工學(xué)院計(jì)科系11例子:事務(wù)及其性質(zhì)問題:設(shè)銀行數(shù)據(jù)庫中有一轉(zhuǎn)賬事務(wù)T,從賬號(hào)A轉(zhuǎn)一筆款子($50)到賬號(hào)B。相應(yīng)的事務(wù):
T:read(A); A:=A–50;
write(A); read(B); B:=B+50;
write(B).T:BEGINTRANSACTION;read(A); A:=A–50;write(A);if(A<0)ROLLBACK;else{read(B); B:=B+50; write(B);
COMMIT;}7.2事務(wù)(續(xù)1)系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第11頁。6月-23四川理工學(xué)院計(jì)科系12事務(wù)提交和事務(wù)撤銷事務(wù)的所有操作都完成了,則事務(wù)提交(COMMIT),否則事務(wù)撤銷(ROLLBACK)BEGINTRANSACTION標(biāo)志事務(wù)開始執(zhí)行BEGINTRANSACTION和COMMIT或ROLLBACK一起保證了事務(wù)的ACID性質(zhì)對(duì)數(shù)據(jù)庫訪問的兩個(gè)基本操作:讀和寫,但完成寫操作后,數(shù)據(jù)可能暫時(shí)放在內(nèi)存中,而非直接寫進(jìn)數(shù)據(jù)庫。7.2事務(wù)(續(xù)2)系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第12頁。6月-23四川理工學(xué)院計(jì)科系137.2.3事務(wù)的狀態(tài)變遷圖7.2事務(wù)(續(xù)3)活動(dòng)狀態(tài)局部提交狀態(tài)失敗狀態(tài)提交狀態(tài)異常中止?fàn)顟B(tài)read/write圖7.4事務(wù)的狀態(tài)變遷圖系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第13頁。6月-23四川理工學(xué)院計(jì)科系147.2.3事務(wù)的狀態(tài)變遷圖活動(dòng)狀態(tài):事務(wù)開始執(zhí)行后,立即進(jìn)入活動(dòng)狀態(tài)(Active)局部提交狀態(tài):事務(wù)的最后一個(gè)語句執(zhí)行后,進(jìn)入局部提交狀態(tài)(PartiallyCommitted)失敗狀態(tài):事務(wù)沒能到達(dá)最后一個(gè)語句就中止執(zhí)行,事務(wù)進(jìn)入失敗狀態(tài)(failed)異常中止?fàn)顟B(tài):對(duì)失敗狀態(tài)的處理進(jìn)入異常中止?fàn)顟B(tài)(Abort)提交狀態(tài):局部提交狀態(tài)的事務(wù)經(jīng)檢查的執(zhí)行提交(COMMIT)操作,把對(duì)數(shù)據(jù)庫的的修改全部寫到磁盤上,事務(wù)成功結(jié)束,進(jìn)入“提交”狀態(tài)7.2事務(wù)(續(xù)3)系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第14頁。6月-23四川理工學(xué)院計(jì)科系157.3數(shù)據(jù)庫的恢復(fù)可恢復(fù)性(Recovery):DBMS能把數(shù)據(jù)庫從被破壞、不正確的狀態(tài)恢復(fù)到最近一個(gè)正確的狀態(tài)的能力。7.3.1存儲(chǔ)器結(jié)構(gòu)存儲(chǔ)器類型易失性存儲(chǔ)器(volatilestorage):如內(nèi)存、cache非易失性存儲(chǔ)器(nonvolatilestorage):如磁盤、磁帶穩(wěn)定存儲(chǔ)器(stablestorage):“決不丟失”的理論概念。穩(wěn)定存儲(chǔ)器的實(shí)現(xiàn)數(shù)據(jù)備份:如軟件拷貝、磁盤鏡像、RAID、雙機(jī)容錯(cuò)等
數(shù)據(jù)銀行:將數(shù)據(jù)寫到遠(yuǎn)程計(jì)算機(jī)中系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第15頁。6月-23四川理工學(xué)院計(jì)科系16數(shù)據(jù)訪問塊:存儲(chǔ)單位物理塊:磁盤中的塊緩沖塊:內(nèi)存中的塊;所有的緩沖塊組成“磁盤緩沖區(qū)”塊操作:Input(A):數(shù)據(jù)從物理塊A傳送到內(nèi)存的緩沖塊中。Output(B):數(shù)據(jù)從緩沖塊B傳送到磁盤中恰當(dāng)?shù)奈锢韷K中B緩沖塊AB物理塊input(A)output(B)圖7.5塊操作7.3數(shù)據(jù)庫的恢復(fù)(續(xù)1)系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第16頁。6月-23四川理工學(xué)院計(jì)科系17數(shù)據(jù)訪問write(X)xi包含x的塊Bx存在,read(X)事務(wù)系統(tǒng)開始請(qǐng)求read(X)事務(wù)工作區(qū)分配X磁盤緩沖區(qū)掃描內(nèi)存磁盤包含x的塊Bx不存在,Input(B)7.3數(shù)據(jù)庫的恢復(fù)(續(xù)2)系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第17頁。6月-23四川理工學(xué)院計(jì)科系18恢復(fù)和原子性的聯(lián)系銀行轉(zhuǎn)賬系統(tǒng)A=2000B=1000事務(wù)A=A-100B=B+100Output(A)Output(B)斷電或其他故障若沒有事務(wù)的原子性,則重新啟動(dòng)事務(wù)時(shí)要么A因?yàn)樵賵?zhí)行一遍而為1800,要么B因從未執(zhí)行而保持原值7.3數(shù)據(jù)庫的恢復(fù)(續(xù)3)系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第18頁。6月-23四川理工學(xué)院計(jì)科系197.3.2恢復(fù)的基本原則和實(shí)現(xiàn)方法
基本原則:“冗余”,即數(shù)據(jù)庫重復(fù)存儲(chǔ)具體實(shí)現(xiàn)方法:平時(shí)做好兩件事:轉(zhuǎn)儲(chǔ)和建立日志
周期性地對(duì)整個(gè)數(shù)據(jù)庫進(jìn)行拷貝。
建立日志數(shù)據(jù)庫。記錄事務(wù)的開始、結(jié)束及數(shù)據(jù)每一次更新的值。一旦發(fā)生數(shù)據(jù)庫故障,分兩種情況進(jìn)行處理
若數(shù)據(jù)庫已被破壞,則裝入last數(shù)據(jù)庫備份,利用日志庫執(zhí)行REDO。若數(shù)據(jù)庫未被破壞,但某些數(shù)據(jù)不可靠,則執(zhí)行UNDO。7.3數(shù)據(jù)庫的恢復(fù)(續(xù)4)系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第19頁。6月-23四川理工學(xué)院計(jì)科系207.3.3故障類型和恢復(fù)方法事務(wù)故障的分類:可預(yù)期的事務(wù)故障:如存款余額透支等(用ROLLBACK)非預(yù)期事務(wù)故障:如運(yùn)算溢出、數(shù)據(jù)錯(cuò)誤、并發(fā)事務(wù)發(fā)生死鎖等(用UNDO)系統(tǒng)故障(軟故障)硬件故障、軟件錯(cuò)誤或掉電等(對(duì)未完成事務(wù)執(zhí)行UNDO;對(duì)已提交但仍在緩沖區(qū)的事務(wù)執(zhí)行REDO)介質(zhì)故障(硬故障)磁盤物理故障或遭受病毒破壞7.3數(shù)據(jù)庫的恢復(fù)(續(xù)5)系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第20頁。6月-23四川理工學(xué)院計(jì)科系217.3.4檢查點(diǎn)方法檢查點(diǎn)方法的恢復(fù)算法按日志文件建立事務(wù)重做隊(duì)列和事務(wù)撤銷隊(duì)列對(duì)重做隊(duì)列中事務(wù)進(jìn)行REDO處理,對(duì)撤消隊(duì)列中事務(wù)進(jìn)行UNDO處理
運(yùn)行記錄優(yōu)先原則:為了安全,運(yùn)行記錄就先寫下來。時(shí)間-------------------------------------事務(wù)檢查點(diǎn)故障點(diǎn)檢查點(diǎn)T1T3T2T5T4事務(wù)T1不必恢復(fù);事務(wù)T2和事務(wù)T4必須重做(REDO);T3和事務(wù)T5必須撤消(UNDO)
7.3數(shù)據(jù)庫的恢復(fù)(續(xù)6)系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第21頁。6月-23四川理工學(xué)院計(jì)科系227.3.6SQL對(duì)事務(wù)的支持無begintransactionCommitRollback游標(biāo)7.3數(shù)據(jù)庫的恢復(fù)(續(xù)7)系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第22頁。6月-23四川理工學(xué)院計(jì)科系237.4數(shù)據(jù)庫的并發(fā)控制時(shí)間更新事務(wù)T1數(shù)據(jù)庫中A的值更新事務(wù)T2T0
100
t1FINDA
t2
FINDAt3A:=A-30
t4
A:=A*2t5UPDA
t6
70UPDAt7
200
圖7.10在時(shí)間t7丟失了事務(wù)T1的更新(FIND表示從DB中讀值,UPD表示把值寫回到DB)
7.4.1并發(fā)操作帶來的問題1---丟失更新返回系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第23頁。6月-23四川理工學(xué)院計(jì)科系247.4數(shù)據(jù)庫的并發(fā)控制(續(xù)1)時(shí)間更新事務(wù)T1數(shù)據(jù)庫中A的值讀事務(wù)T2t0
100
t1FINDA
t2A:=A-30
t3UPDA
t4
70FINDAt5*ROLLBACK*
t6
100
圖7.11
事務(wù)T2在時(shí)間t4讀了未提交的A值(70)
時(shí)間更新事務(wù)T1數(shù)據(jù)庫中A的值更新事務(wù)T2t0
100
t1FINDA
t2A:=A-30
t3UPDA
t4
70FINDAt5
A:=A*2t6
UPDAt7
140
t8*ROLLBACK*
t9
100
圖7.12事務(wù)T2在時(shí)間t4讀了未提交的A值,并在時(shí)間t8丟失了自己的更新
2.讀臟數(shù)據(jù)問題系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第24頁。6月-23四川理工學(xué)院計(jì)科系25并發(fā)操作帶來的問題3---錯(cuò)誤求和時(shí)間讀事務(wù)T1數(shù)據(jù)庫中A、B、C的值更新事務(wù)T2t0
40,50,30
t1FINDA
t2SUM:=A
t3FINDB
t4SUM:=SUM+B
t5
FINDCt6
C:=C-10t7
UPDCt8
40,50,20FINDAt9
A:=A+10t10
UPDAt11
50,50,20COMMITt12FINDC
t13SUM:=SUM+C
事務(wù)T1進(jìn)行了不一致的分析
系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第25頁。6月-23四川理工學(xué)院計(jì)科系267.4.2封鎖技術(shù)封鎖技術(shù):封鎖是控制并發(fā)執(zhí)行的主要技術(shù)。通常在數(shù)據(jù)庫中每個(gè)數(shù)據(jù)項(xiàng)都有一個(gè)鎖。對(duì)可能應(yīng)用于某數(shù)據(jù)項(xiàng)的操作而言,鎖描述了該數(shù)據(jù)項(xiàng)的狀態(tài)。其作用是使并發(fā)事務(wù)對(duì)數(shù)據(jù)庫中數(shù)據(jù)項(xiàng)的訪問能夠同步。封鎖技術(shù)中主要有兩種封鎖:排他型封鎖(eXclusiveLock)和共享鎖(SharedLock)7.4數(shù)據(jù)庫的并發(fā)控制(續(xù)3)系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第26頁。6月-23四川理工學(xué)院計(jì)科系271.排他型封鎖(X鎖)定義:若事務(wù)T對(duì)某數(shù)據(jù)R實(shí)現(xiàn)了X鎖,則在T對(duì)數(shù)據(jù)R解除封鎖之前,不允許其他事務(wù)對(duì)該數(shù)據(jù)加任何類型的鎖。操作:封鎖操作:XFINDR解鎖操作:XRELEASERPX協(xié)議:欲更新R的事務(wù)必先執(zhí)行“XFINDR”操作以獲得對(duì)R的X鎖,才能讀或?qū)慠;若未獲準(zhǔn)X鎖,則該事務(wù)進(jìn)入等待隊(duì)列,直到獲準(zhǔn)X鎖方能繼續(xù)下去。
PXC協(xié)議:X鎖的解除應(yīng)合并到事務(wù)結(jié)束(COMMIT或ROLLBACK)操作中7.4數(shù)據(jù)庫的并發(fā)控制(續(xù)4)系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第27頁。6月-23四川理工學(xué)院計(jì)科系282.共享型封鎖(S鎖)定義:事務(wù)T對(duì)某數(shù)據(jù)加S鎖后允許其他事務(wù)對(duì)該數(shù)據(jù)加S鎖,但在對(duì)其所有S鎖被解除前決不允許任何事務(wù)對(duì)該數(shù)據(jù)加X鎖。操作:封鎖操作:SFINDR升級(jí)和寫操作:UPDXR解鎖操作:SRELEASERPS協(xié)議:任何讀R的事務(wù)必先執(zhí)行“SFINDR”操作獲得對(duì)R的S鎖;當(dāng)事務(wù)獲準(zhǔn)對(duì)R的S鎖后,若需更新R必須用“UPDXR”操作把S鎖升級(jí)為X鎖,成功則可更新,否則這個(gè)事務(wù)進(jìn)入等待隊(duì)列。
PSC協(xié)議:S鎖的解除應(yīng)合并到事務(wù)的結(jié)束(COMMIT或ROLLBACK)操作中
7.4數(shù)據(jù)庫的并發(fā)控制(續(xù)5)系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第28頁。6月-23四川理工學(xué)院計(jì)科系29例:使用X鎖封鎖解決數(shù)據(jù)丟失時(shí)間更新事務(wù)T1數(shù)據(jù)庫中A的值更新事務(wù)T2t0
100
t1XFINDA
t2
XFINDA(失敗)
wait(等待)t3A:=A-30
waitt4
waitt5UPDA
waitt6
70waitt7COMMIT(包括解鎖)
waitt8
XFINDA(重做)t9
A:=A*2t10
UPDAt11
140COMMIT(包括解鎖)系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第29頁。6月-23四川理工學(xué)院計(jì)科系30例:使用S鎖封鎖解決數(shù)據(jù)丟失時(shí)間更新事務(wù)T1數(shù)據(jù)庫中A的值更新事務(wù)T2t0
100
t1SFINDA
t2
SFINDAt3A:=A-30
t4
A:=A*2t5UPDXA(失?。?/p>
t6wait
UPDXA(失?。﹖7wait
Waitt8wait
Wait系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第30頁。6月-23四川理工學(xué)院計(jì)科系313.封鎖的相容矩陣注:①N=NO,不相容的請(qǐng)求Y=YES,相容的請(qǐng)求②X、S、-:分別表示X鎖,S鎖,無鎖③如果兩個(gè)封鎖是不相容的,則后提出封鎖的事務(wù)要等待。XS—
X
S
—
NNY
NYY
YYY
T2T1
7.4數(shù)據(jù)庫的并發(fā)控制(續(xù)6)系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第31頁。6月-23四川理工學(xué)院計(jì)科系327.4數(shù)據(jù)庫的并發(fā)控制(續(xù)7)4.封鎖的粒度封鎖對(duì)象的大小稱為封鎖的粒度(Granularity)
封鎖的對(duì)象
邏輯單元:屬性值、屬性值集合、元組、關(guān)系、索引項(xiàng)、整個(gè)索引、整個(gè)數(shù)據(jù)庫
物理單元:頁(數(shù)據(jù)頁或索引頁)、塊
封鎖粒度與系統(tǒng)并發(fā)度和并發(fā)開銷密切相關(guān)。粒度大,能被封鎖的對(duì)象就少,并發(fā)度就小,但系統(tǒng)的開銷也越?。环粗?,粒度越小,并發(fā)度越高,系統(tǒng)開銷越大。系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第32頁。6月-23四川理工學(xué)院計(jì)科系337.4.3封鎖帶來的問題1---(活鎖)T1XFINDAT2XFINDAT3XFINDAAA已被封鎖,不成功,等待A剛被釋放,成功時(shí)間點(diǎn)A剛被T2釋放,成功……T1永遠(yuǎn)等待活鎖!解決方法:先來先服務(wù)/提升優(yōu)先級(jí)某個(gè)事務(wù)可能永遠(yuǎn)處于等待狀態(tài),得不到封鎖的機(jī)會(huì)系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第33頁。6月-23四川理工學(xué)院計(jì)科系34封鎖帶來的問題2---餓死事務(wù)序列A1A2A3A4A5…資源AT2T2永遠(yuǎn)不能封鎖解決方法,改變授權(quán)方式:當(dāng)事務(wù)T2中請(qǐng)對(duì)數(shù)據(jù)項(xiàng)A加S鎖時(shí),授權(quán)加鎖的條件是:①不存在在數(shù)據(jù)項(xiàng)A上持有X鎖的其他事務(wù);②不存在等待對(duì)數(shù)據(jù)項(xiàng)A加鎖且先于T2申請(qǐng)加鎖的事務(wù)
每一個(gè)事務(wù)均請(qǐng)求A的S鎖,成功后一段時(shí)間釋放請(qǐng)求A的X鎖
若事務(wù)序列中的每個(gè)事務(wù)都申請(qǐng)對(duì)某數(shù)據(jù)項(xiàng)加S鎖,且在授權(quán)加鎖后一小段時(shí)間內(nèi)釋放封鎖,此時(shí)另有事務(wù)T2欲對(duì)該數(shù)據(jù)項(xiàng)加X鎖,則將永遠(yuǎn)輪不上封鎖的機(jī)會(huì)。系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第34頁。6月-23四川理工學(xué)院計(jì)科系35封鎖帶來的問題3---死鎖時(shí)間事務(wù)T1事務(wù)T2t0XFINDA
t1
XFINDBt2XFINDB
t3waitXFINDAt4waitwait死鎖若事務(wù)依賴圖有環(huán)則可能死鎖T1T2T3T4圖7.20事務(wù)的無環(huán)依賴圖T1T2T3T4圖7.21事務(wù)的有環(huán)依賴圖
兩個(gè)或以上的事務(wù)都處于等待狀態(tài),且每個(gè)事務(wù)都在等待另一個(gè)事務(wù)解除封鎖才能繼續(xù)下去,結(jié)果造成任何一個(gè)事務(wù)都無法繼續(xù)執(zhí)行。系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第35頁。6月-23四川理工學(xué)院計(jì)科系367.4.4并發(fā)操作的調(diào)度事務(wù)的調(diào)度:事務(wù)的執(zhí)行次序稱為“調(diào)度”
串行調(diào)度:如果多個(gè)事務(wù)依次執(zhí)行,則稱為事務(wù)的串行調(diào)度(SerialSchedule)并發(fā)調(diào)度:如果利用分時(shí)的方法,同時(shí)處理多個(gè)事務(wù),則稱為事務(wù)的并發(fā)調(diào)度(ConcurrentSchedule)可串行化:如果一個(gè)并發(fā)調(diào)度的執(zhí)行結(jié)果與某一串行調(diào)度的執(zhí)行結(jié)果等價(jià),那么這個(gè)并發(fā)調(diào)度稱為“可串行化的調(diào)度”,否則是不可串行化的調(diào)度(不可串行化的例子參見例7.3)系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第36頁。6月-23四川理工學(xué)院計(jì)科系377.4.4并發(fā)操作的調(diào)度兩段封鎖協(xié)議:在對(duì)任何一個(gè)數(shù)據(jù)進(jìn)行讀寫操作之前,事務(wù)必須獲得對(duì)該數(shù)據(jù)的封鎖;在釋放一個(gè)封鎖之后,事務(wù)不再獲得任何其他封鎖遵守該協(xié)議的事務(wù)分為兩個(gè)階段:獲得封鎖階段,也稱為“擴(kuò)展”階段;釋放封鎖階段,也稱為“收縮”階段兩段封鎖協(xié)議與可串行化調(diào)度的關(guān)系:若所有的事務(wù)都遵守“兩段封鎖協(xié)議”,則所有可能的并發(fā)調(diào)度都是可串行化的兩段式封鎖是可串行化的充分不必要條件系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第37頁。6月-23四川理工學(xué)院計(jì)科系387.4.5SQL中事務(wù)的存取模式1.事務(wù)的存取模式READONLY(只讀型):事務(wù)對(duì)數(shù)據(jù)庫的操作只能是讀操作。定義這個(gè)模式后,表示隨后的事務(wù)均是只讀型。
READWRITE(讀寫型):事務(wù)對(duì)數(shù)據(jù)庫的操作可讀/寫。程序開始時(shí)默認(rèn)這種模式
這兩種模式可用下列SQL語句定義:
SETTRANSACTIONREADONLYSETTRANSACTIONREADWRITE
系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第38頁。6月-23四川理工學(xué)院計(jì)科系397.4.5SQL中事務(wù)的存取模式2.SQL中事務(wù)的隔離級(jí)別SERIALIZABLE(可串行化):允許事務(wù)并發(fā),但須保證并發(fā)可串行化,是默認(rèn)級(jí)別。REPEATABLEREAD(可重復(fù)讀):只許事務(wù)讀已提交的數(shù)據(jù),且兩次讀之間不許其他事務(wù)修改此數(shù)據(jù)。READCOMMITTED(讀提交數(shù)據(jù)):允許事務(wù)讀已提交的數(shù)據(jù),但不要求“可重復(fù)讀”。READUNCOMMITTED(可以讀未提交數(shù)據(jù)):允許事務(wù)讀已提交或未提交的數(shù)據(jù)。系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第39頁。6月-23四川理工學(xué)院計(jì)科系407.6數(shù)據(jù)庫的完整性7.6.1完整性子系統(tǒng)和完整性規(guī)則數(shù)據(jù)庫的完整性:正確性、有效性和相容性完整性子系統(tǒng)的主要功能:監(jiān)督事務(wù)的執(zhí)行,并測試是否違反完整性規(guī)則
若有違反現(xiàn)象,則采取恰當(dāng)?shù)牟僮?,譬如拒絕操作、報(bào)告違反情況、改正錯(cuò)誤等方法來處理
完整性規(guī)則:什么時(shí)候使用規(guī)則進(jìn)行檢查(稱為規(guī)則的“觸發(fā)條件”)
要檢查什么樣的錯(cuò)誤(稱為“約束條件”或“謂詞”)
如果查出錯(cuò)誤,應(yīng)該怎么辦(稱為“ELSE子句”,即違反時(shí)要做的動(dòng)作)系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第40頁。6月-23四川理工學(xué)院計(jì)科系417.6數(shù)據(jù)庫的完整性(續(xù)1)7.6.2SQL中的完整性約束域約束
用“CREATEDOMAIN”語句定義新的域,并且還可出現(xiàn)CHECK子句
斷言若約束與多個(gè)關(guān)系或與聚合操作有關(guān),則“斷言”
(Assertions)為用戶提供完整性約束定義機(jī)制CREATASSERTION<斷言名>CHECK(<條件>)
DROPASSERTION<斷言名>
定義一個(gè)新的域COLOR,可用下列語句實(shí)現(xiàn):CREATEDOMAINCOLORCHAR(6)DEFAULTˊ???ˊCONSTRAINTV_COLORSCHECK(VALUEIN(‘Red’,‘Yellow’,‘Blue’,‘Green’,‘???’));每位教師開設(shè)的課程不能超過10門。CREATEASSERTIONASSE1CHECK(10>=ALL(SELECTCOUNT(C#)FROMCGROUPBYTNAME));系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第41頁。6月-23四川理工學(xué)院計(jì)科系427.6數(shù)據(jù)庫的完整性(續(xù)2)基本表的約束候選鍵的定義UNIQUE(〈列名序列〉)或PRIMARYKEY(〈列名序列〉)外鍵的定義FOREIGNKEY(〈列名序列〉)REFERENCES<參照表>[(<列名序列>)][ONDELETE<參照動(dòng)作>][ONUPDATE<參照動(dòng)作>]“檢查約束”的定義CHECK(〈條件表達(dá)式〉)
系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第42頁。6月-23四川理工學(xué)院計(jì)科系43關(guān)于外鍵約束完整性的補(bǔ)充刪除參照表中元組時(shí)的考慮NOACTIONCASCADE方式
RESTRICT方式
SETNULL方式
SETDEFAULT方式修改參照表中主鍵值時(shí)的考慮、NOACTIONCASCADE方式
RESTRICT方式
SETNULL方式
SETDEFAULT方式
系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第43頁。6月-23四川理工學(xué)院計(jì)科系44關(guān)于數(shù)據(jù)庫完整性的例子學(xué)生關(guān)系S(S#,SNAME,AGE,SEX,SDEPT)選課關(guān)系SC(S#,C#,GRADE)課程關(guān)系C(C#,CNAME,CDEPT,TNAME)
在教學(xué)數(shù)據(jù)庫中,要求S中的元組滿足條件:男生年齡在15~35歲之間,女生年齡在15~30歲之間。對(duì)應(yīng)的語句為:CHECK(AGE>=15AND((SEX=ˊ男ˊANDAGE<=35)OR(SEX=ˊ女ˊANDAGE<=30)));
CREATETABLESC(S#CHAR(4),C#CHAR4),GRADESMALLINT,PRIMARYKEY(SNO,NO),CHECK(S#IN(SELECTS#FROMS)),CHECK(C#IN(SELECTC#FROMC)))
①在SC中插入一個(gè)元組,若C#值在C中不存在,則系統(tǒng)將拒絕這個(gè)插入操作。②在SC中插入一個(gè)元組,若S#值在S中不存在,則系統(tǒng)將拒絕這個(gè)插入操作。③在S中刪除一個(gè)元組,這個(gè)操作將與關(guān)系SC中的檢查子句無關(guān)。若此時(shí)SC中存在被刪學(xué)生的選課元組時(shí),SC將違反檢查子句中條件。系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第44頁。6月-23四川理工學(xué)院計(jì)科系457.6.3SQL3的觸發(fā)器觸發(fā)器:一個(gè)能由系統(tǒng)自動(dòng)執(zhí)行對(duì)數(shù)據(jù)庫修改的語句。組成:事件:插入、刪除、修改等操作,引發(fā)觸發(fā)器的操作條件:引發(fā)觸發(fā)器的條件動(dòng)作:引發(fā)觸發(fā)器后的工作觸發(fā)器的命名動(dòng)作時(shí)間 觸發(fā)事件 目標(biāo)表名舊值和新值的別名表 動(dòng)作間隔尺寸觸發(fā)動(dòng)作 動(dòng)作時(shí)間條件 動(dòng)作體7.6數(shù)據(jù)庫的完整性(續(xù))系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第45頁。6月-23四川理工學(xué)院計(jì)科系46SQL3的觸發(fā)器實(shí)例例7.26:應(yīng)用于選課表SC的一個(gè)觸發(fā)器。該觸發(fā)器規(guī)定,在修改關(guān)系SC的成績值時(shí),要求修改后的成績一定不能比原來的低,否則就拒絕修改。
CREATETRIGGERTRIG1 AFTERUPDATEOFGRADEONSC REFERENCING OLDASOLDTUPLENEWASNEWTUPLE FOREACHROW WHEN(OLDTUPLE.GRADE>NEWTUPLE.GRADE)
UPDATESC SETGRADE=OLDTUPLE.GRADE WHEREC#=NEWTUPLE.C#
系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第46頁。6月-23四川理工學(xué)院計(jì)科系477.7數(shù)據(jù)庫的安全性7.7.1安全性問題數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫,防止不合法的使用以免數(shù)據(jù)的泄密、更改或破壞。安全性級(jí)別環(huán)境級(jí):機(jī)房和設(shè)備應(yīng)防止人為物理破壞。職員級(jí):正確授予用戶訪問數(shù)據(jù)庫的權(quán)限。OS級(jí):應(yīng)防止未經(jīng)授權(quán)的用戶從OS處著手訪問數(shù)據(jù)庫。網(wǎng)絡(luò)級(jí):網(wǎng)絡(luò)軟件內(nèi)部的安全。DBS級(jí):DBS的職責(zé)是檢查用戶的身份是否合法及使用數(shù)據(jù)庫的權(quán)限是否正確。系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第47頁。6月-23四川理工學(xué)院計(jì)科系48(1)讀權(quán)限:允許用戶讀、但不能改數(shù)據(jù)。⑵插入權(quán)限:允許用戶插入新數(shù)據(jù),但不能改數(shù)據(jù)。⑶修改權(quán)限:允許用戶改但不能刪數(shù)據(jù)。⑷刪除權(quán)限7.7.2權(quán)限問題訪問數(shù)據(jù)的權(quán)限索引(Index)權(quán)限:允許用戶創(chuàng)建和刪除索引。資源(Resourse)權(quán)限:允許用戶創(chuàng)建新的關(guān)系。修改(Alteration)權(quán)限:允許用戶在關(guān)系結(jié)構(gòu)中加入或刪除屬性。撤消(Drop)權(quán)限:允許用戶撤消關(guān)系。7.7數(shù)據(jù)庫的安全性(續(xù))系統(tǒng)實(shí)現(xiàn)技術(shù)計(jì)算機(jī)網(wǎng)絡(luò)全文共55頁,當(dāng)前為第48頁。6月-23四川理工學(xué)院計(jì)科系49DBAU1U2U3權(quán)限的授予和回收DBAU1U4U2U5U3權(quán)限轉(zhuǎn)授圖一個(gè)用戶擁有權(quán)限的充分必要條件是在權(quán)限圖中從根結(jié)點(diǎn)到該用戶結(jié)點(diǎn)存在一條路經(jīng)
DBAU1U2U3DBAU1U2U3DBAU1U2U37.7數(shù)據(jù)庫的安全性(續(xù))權(quán)限圖的演變系統(tǒng)實(shí)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技產(chǎn)品的美學(xué)設(shè)計(jì)與用戶體驗(yàn)研究
- 社區(qū)中醫(yī)健康教育與醫(yī)療資源對(duì)接策略
- 送菜購銷合同范本
- 石方破碎合同范本
- 2025至2030年中國膠波紋管數(shù)據(jù)監(jiān)測研究報(bào)告
- 科技感十足的簡約餐廳裝修風(fēng)格探討
- 二零二五年度山西省事業(yè)單位聘用合同書(旅游發(fā)展研究中心研究員)
- 二零二五年度跨境電商貨款結(jié)算與信用保險(xiǎn)合同
- 二零二五年度航空航天產(chǎn)業(yè)合作投資協(xié)議
- 二零二五年度美甲店行業(yè)規(guī)范與自律協(xié)議
- 2024年12月重慶大學(xué)醫(yī)院公開招聘醫(yī)生崗位2人(有編制)筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 主題班會(huì):新學(xué)期 新起點(diǎn) 新期待
- 披薩制作流程
- 2024 河北公務(wù)員考試(筆試、省直、A類、C類)4套真題及答案
- 廈門2025年福建廈門市公安文職人員服務(wù)中心招聘17人筆試歷年參考題庫附帶答案詳解
- 2025年高三歷史教學(xué)工作計(jì)劃
- 《職業(yè)性肌肉骨骼疾患的工效學(xué)預(yù)防指南 》
- 不同產(chǎn)地筠連紅茶風(fēng)味化學(xué)成分差異分析
- DB50 577-2015 汽車整車制造表面涂裝大氣污染物排放標(biāo)準(zhǔn)
- 生態(tài)安全課件
- 大學(xué)英語(西安歐亞學(xué)院)知到智慧樹章節(jié)測試課后答案2024年秋西安歐亞學(xué)院
評(píng)論
0/150
提交評(píng)論