




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)1第七章 系統(tǒng)實現(xiàn)技術(shù) 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)2本章重要概念(一) (1)系統(tǒng)目錄及其和DBMS各子系統(tǒng)的聯(lián)系。(2)事務(wù)的定義,COMMIT和ROLLBACK的語義,事務(wù)的ACID性質(zhì),事務(wù)的狀態(tài)變遷圖。(3)存儲器類型,穩(wěn)定存儲器的實現(xiàn),數(shù)據(jù)傳送過程。 (4)恢復(fù)的定義、基本原則和實現(xiàn)方法,故障的類型,檢查點技術(shù),REDO和UNDO操作,運行記錄優(yōu)先原則。 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)3本章重要概念(二)(5)并發(fā)操作帶來的三個問題,X鎖、PX協(xié)議、PXC協(xié)議,S鎖、PS協(xié)議、PSC協(xié)議,活鎖、餓死和死鎖,并發(fā)調(diào)度,串行調(diào)度,并發(fā)調(diào)
2、度的可串行化,兩段封鎖法,SQL中事務(wù)的存取模式和隔離級別。(6)完整性的定義,完整性子系統(tǒng)的功能,完整性規(guī)則的組成。SQL中的三大類完整性約束,SQL3中的觸發(fā)器技術(shù)。 (7)安全性的定義、級別,權(quán)限,SQL中的安全性機制,幾種常用的安全性措施,自然環(huán)境的安全性。 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)4主要內(nèi)容和學(xué)習(xí)要求v7.1 系統(tǒng)目錄 (理解)v7.2 事務(wù) (綜合應(yīng)用)v7.3 數(shù)據(jù)庫的恢復(fù) (理解)v7.4 數(shù)據(jù)庫的并發(fā)控制 (了解)v7.5 并發(fā)事務(wù)的可串行化和可恢復(fù)性(了解)v7.6 數(shù)據(jù)庫的完整性(理解)v7.7 數(shù)據(jù)庫的安全性(理解)v小結(jié) 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技
3、術(shù)5系統(tǒng)目錄v什么是系統(tǒng)目錄v系統(tǒng)目錄的重要性v系統(tǒng)目錄的內(nèi)容v元數(shù)據(jù)數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)6RDBMS系統(tǒng)目錄的存儲內(nèi)容v關(guān)系名,屬性名,屬性域(數(shù)據(jù)類型) v各種約束,主鍵,輔助鍵,外鍵,空值/非空值 v視圖的外部級描述,存儲結(jié)構(gòu)和索引的內(nèi)部級描述 v安全性和授權(quán)規(guī)則 v數(shù)據(jù)完整性規(guī)則 注意:這些數(shù)據(jù)都以表格的形式存在數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)7某些RDBMS的系統(tǒng)目錄內(nèi)容REL_AND_ATTR_CATALOGREL_NAMEATTR_NAMEATTR_TYPEMEMBER_OF_PKMEMBER_OF_FKFK_RELATION關(guān)系名屬性名屬性類型主鍵外鍵外鍵關(guān)
4、系RELATION_KEYSREL_NAMEKEY_NUMBERMEMBER_ATTR(a)存儲鍵信息的目錄關(guān)系RELATION_INDEXESREL_NAMEINDEX_NAMEMEMBER_ATTRINDEX_TYPEATTR_NOASC_DESC(b)存儲索引信息的目錄關(guān)系VIEW_QUERIER VIEW_ATTRIBUTESVIEW_NAMEQUERY VIEW_NAMEATTR_NAMEATTR_NUM(c)存儲視圖信息的目錄關(guān)系數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)8系統(tǒng)目錄的擴充ER圖屬性鍵視圖屬性視圖關(guān)系關(guān)系基本關(guān)系索引屬性名鍵類型d數(shù)據(jù)類型鍵編號關(guān)系名查詢索引類型屬性序號索引
5、名屬性名K_AR_IR_FI_AK_IR_AR_KV_A外鍵數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)9系統(tǒng)目錄和DBMS各子系統(tǒng)的聯(lián)系DDL編譯程序DML優(yōu)化程序DML命令的外部級到概念級映象DML編譯程序DML分析校驗程序DBMS處理和檢查三級模式兩級映象檢查查詢涉及的關(guān)系名屬性名等將查詢涉及的概念模式轉(zhuǎn)換成內(nèi)模式,產(chǎn)生訪問計劃根據(jù)物理結(jié)構(gòu)優(yōu)化查詢執(zhí)行方案將查詢中的視圖由外部級導(dǎo)到概念級映象處理和檢查權(quán)限授權(quán)和安全程序數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)10主要內(nèi)容v7.1 系統(tǒng)目錄 v7.27.2 事務(wù)事務(wù) v7.3 數(shù)據(jù)庫的恢復(fù)v7.4 數(shù)據(jù)庫的并發(fā)控制v7.5 并發(fā)事務(wù)的可串行化和可恢復(fù)性
6、v7.6 數(shù)據(jù)庫的完整性v7.7 數(shù)據(jù)庫的安全性v小結(jié) 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)11事務(wù)v定義事務(wù)(transaction)是構(gòu)成單一邏輯工作單元的操作集合 v性質(zhì)原子性(Atomicity):事務(wù)是一個不可分割的工作單元 一致性(Consistency) :即數(shù)據(jù)不會應(yīng)事務(wù)的執(zhí)行而遭受破壞 隔離性(Isolation) :在多個事務(wù)并發(fā)執(zhí)行時,系統(tǒng)應(yīng)保證與這些事務(wù)先后單獨執(zhí)行時的結(jié)果一樣 持久性(Durability) :一個事務(wù)一旦完成全部操作后,它對數(shù)據(jù)庫的所有更新應(yīng)永久地反映在數(shù)據(jù)庫中 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)12例子:事務(wù)及其性質(zhì)問題:設(shè)銀行數(shù)據(jù)庫中有一轉(zhuǎn)賬事
7、務(wù)T,從賬號A轉(zhuǎn)一筆款子($50)到賬號B。相應(yīng)的事務(wù): T:read(A); A:=A50; write(A); read(B); B:=B + 50; write(B). v原子性(A,B同時被修改或同時保持原值)v一致性(A+B的值不變)v隔離性v持久性數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)13事務(wù)提交和事務(wù)撤銷v事務(wù)的所有操作都完成了,則事務(wù)提交(COMMIT),否則事務(wù)撤銷(ROLLBACK)vBEGIN TRANSACTION標(biāo)志事務(wù)開始執(zhí)行vBEGIN TRANSACTION和COMMIT或ROLLBACK一起保證了事務(wù)的四個性質(zhì)v對數(shù)據(jù)庫訪問的兩個基本操作:讀和寫,但完成寫操作后
8、,數(shù)據(jù)可能暫時放在內(nèi)存中,而非直接寫進數(shù)據(jù)庫。數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)14主要內(nèi)容v7.1 系統(tǒng)目錄 v7.2 事務(wù) v7.3 7.3 數(shù)據(jù)庫的恢復(fù)數(shù)據(jù)庫的恢復(fù)v7.4 數(shù)據(jù)庫的并發(fā)控制v7.5 并發(fā)事務(wù)的可串行化和可恢復(fù)性v7.6 數(shù)據(jù)庫的完整性v7.7 數(shù)據(jù)庫的安全性v小結(jié) 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)15存儲器類型 v易失性存儲器(volatile storage)內(nèi)存、cache存儲器 v非易失性存儲器(nonvolatile storage)磁盤和磁帶 v穩(wěn)定存儲器(stable storage)這是一個理論上的概念。存儲在穩(wěn)定存儲器中的信息是決不會丟失的。 v穩(wěn)
9、定存儲器的實現(xiàn)數(shù)據(jù)備份 數(shù)據(jù)銀行 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)16塊和塊的操作v塊、物理塊和緩沖塊v塊的操作input(A):把物理塊A的內(nèi)容傳送到內(nèi)存的緩沖塊中。Output(B):把緩沖塊B的內(nèi)容傳送到磁盤中恰當(dāng)?shù)奈锢韷K中 B內(nèi)存AB磁盤input(A)output(B)圖7.5 塊操作數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)17數(shù)據(jù)訪問write(X)xi包含x的塊Bx存在, read(X)事務(wù)系統(tǒng)開始請求read(X)事務(wù)工作區(qū)分配X磁盤緩沖區(qū)掃描內(nèi)存磁盤包含x的塊Bx存在,Input(B)數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)18恢復(fù)和原子性的聯(lián)系銀行轉(zhuǎn)賬系統(tǒng)A=2000 B=10
10、00事務(wù)A=A-100B=B+100Output(A)Output(B)斷電或其他故障假設(shè)沒有事務(wù)的原子性,那么重新啟動事務(wù)時要么A因為再執(zhí)行一遍而為1800,要么B因從未執(zhí)行而保持原值數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)19恢復(fù)的基本原則和實現(xiàn)方法 v基本原則 :“冗余”,即數(shù)據(jù)庫重復(fù)存儲v具體實現(xiàn)方法 平時做好兩件事:轉(zhuǎn)儲和建立日志 周期地(比如一天一次)對整個數(shù)據(jù)庫進行拷貝,轉(zhuǎn)儲到另一個磁盤或磁帶一類存儲介質(zhì)中。 建立日志數(shù)據(jù)庫。記錄事務(wù)的開始、結(jié)束及數(shù)據(jù)每一次插入、刪除和修改前后的值,并寫到“日志”庫中。 一旦發(fā)生數(shù)據(jù)庫故障,分兩種情況進行處理 如果數(shù)據(jù)庫已被破壞,則裝入last數(shù)據(jù)庫
11、備份,再利用日志庫將這兩個數(shù)據(jù)庫狀態(tài)之間的所有更新重新做一遍。如果數(shù)據(jù)庫未被破壞,但某些數(shù)據(jù)不可靠,則撤消所有不可靠的修改,把數(shù)據(jù)庫恢復(fù)到正確的狀態(tài)。 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)20故障類型和恢復(fù)方法v事務(wù)故障可以預(yù)期的事務(wù)故障,如存款余額透支等非預(yù)期事務(wù)故障,如運算溢出、數(shù)據(jù)錯誤、死鎖等v系統(tǒng)故障硬件故障、軟件錯誤或掉電等等v介質(zhì)故障(硬故障)磁盤物理故障或遭受病毒破壞數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)21檢查點方法v什么是檢查點方法v檢查點方法的恢復(fù)算法根據(jù)日志文件建立事務(wù)重做隊列和事務(wù)撤銷隊列對重做隊列中的事務(wù)進行REDO處理,對撤消隊列中的事務(wù)進行UNDO處理 - 事務(wù)檢查
12、點故障點時間檢查點T1T3T2T5T4事務(wù)T1不必恢復(fù);事務(wù)T2和事務(wù)T4必須重做(REDO);事務(wù)T3和事務(wù)T5必須撤消(UNDO) 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)22SQL對事務(wù)的支持v無begin transactionvCommitvRollbackv游標(biāo)數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)23主要內(nèi)容v7.1 系統(tǒng)目錄 v7.2 事務(wù) v7.3 數(shù)據(jù)庫的恢復(fù)v7.4 7.4 數(shù)據(jù)庫的并發(fā)控制數(shù)據(jù)庫的并發(fā)控制v7.5 并發(fā)事務(wù)的可串行化和可恢復(fù)性v7.6 數(shù)據(jù)庫的完整性v7.7 數(shù)據(jù)庫的安全性v小結(jié) 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)24并發(fā)操作帶來的問題1-丟失更新時間更新事
13、務(wù)T1數(shù)據(jù)庫中A的值更新事務(wù)T2T0 100 t1FIND A t2 FIND At3A:=A-30 t4 A:=A*2t5UPD A t6 70UPD At7 200 圖7.10 在時間t7丟失了事務(wù)T1的更新(FIND表示從DB中讀值,UPD表示把值寫回到DB) 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)25并發(fā)操作帶來的問題2-讀臟數(shù)據(jù)時間更新事務(wù)T1數(shù)據(jù)庫中A的值讀事務(wù)T2t0 100 t1FIND A t2A:=A-30 t3UPD A t4 70FIND At5*ROLLBACK* t6 100 圖7.11 事務(wù)T2在時間t4讀了未提交的A值(70) 時間更新事務(wù)T1數(shù)據(jù)庫中A的值更新事
14、務(wù)T2t0 100 t1FIND A t2A:=A-30 t3UPD A t4 70FIND At5 A:=A*2t6 UPD At7 140 t8*ROLLBACK* t9 100 圖7.12 事務(wù)T2在時間t4讀了未提交的A值,并在時間t8丟失了自己的更新 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)26并發(fā)操作帶來的問題3-錯誤求和時間讀事務(wù)T1數(shù)據(jù)庫中A、B、C的值更新事務(wù)T2t0 40,50,30 t1FIND A t2SUM:=A t3FIND B t4SUM:=SUM+B t5 FIND Ct6 C:=C-10t7 UPD Ct8 40,50,20FIND At9 A:=A+10t10
15、UPD At11 50,50,20COMMITt12FIND C t13SUM:=SUM+C 事務(wù)T1進行了不一致的分析 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)27解決方法v封鎖技術(shù)v時標(biāo)數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)28X鎖和S鎖v X鎖定義v 操作XFIND RXRELEASE Rv PX協(xié)議:任何企圖更新記錄R的事務(wù)必須先執(zhí)行“XFIND R”操作,以獲得對R的X鎖,才能讀或?qū)懹涗汻;如果未獲準(zhǔn)X鎖,那么這個事務(wù)進入等待隊列,一直到獲準(zhǔn)X鎖,事務(wù)才能繼續(xù)做下去。 v PXC協(xié)議X鎖的解除操作應(yīng)該合并到事務(wù)的結(jié)束(COMMIT或ROLLBACK)操作中 v S鎖定義v 操作SFIND
16、RUPDX RSRELEASE Rv PS協(xié)議任何要更新記錄R的事務(wù)必須先執(zhí)行“SFIND R”操作,以獲得對R的S鎖。當(dāng)事務(wù)獲準(zhǔn)對R的S鎖后,若要更新記錄R必須用“UPDX R”操作,這個操作首先把S鎖升級為X鎖,若成功則更新記錄,否則這個事務(wù)進入等待隊列 v PSC協(xié)議S鎖的解除操作應(yīng)該合并到事務(wù)的結(jié)束 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)29例:使用X鎖封鎖解決數(shù)據(jù)丟失時間更新事務(wù)T1數(shù)據(jù)庫中A的值更新事務(wù)T2t0 100 t1XFIND A t2 XFIND A(失敗) wait(等待)t3A:=A-30 waitt4 waitt5UPD A waitt6 70waitt7COMMIT
17、(包括解鎖) waitt8 XFIND A(重做)t9 A:=A*2t10 UPD At11 140COMMIT(包括解鎖)數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)30例:使用S鎖封鎖解決數(shù)據(jù)丟失時間更新事務(wù)T1數(shù)據(jù)庫中A的值更新事務(wù)T2t0 100 t1SFIND A t2 SFIND At3A:=A-30 t4 A:=A*2t5UPDX A(失敗) t6wait UPDX A(失?。﹖7wait Waitt8wait Wait數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)31封鎖的相容矩陣注: N = N O , 不 相 容 的 請 求 Y=YES,相容的請求 X、S、:分別表示X鎖,S鎖,無鎖 如果兩
18、個封鎖是不相容的,則后提出封鎖的事務(wù)要等待。X S XS N N Y N Y Y Y Y Y T2T1 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)32封鎖的粒度v 封鎖對象的大小稱為封鎖的粒度(granularity) v封鎖的對象 邏輯單元:屬性值、屬性值集合、元組、關(guān)系、索引項、整個索引、整個數(shù)據(jù)庫 物理單元 :頁(數(shù)據(jù)頁或索引頁)、塊 v封鎖粒度與系統(tǒng)并發(fā)度和并發(fā)控制開銷密切相關(guān)。粒度越大,系統(tǒng)中能被封鎖的對象就越少,并發(fā)度就越小,但同時系統(tǒng)的開銷也就越??;相反,粒度越小,并發(fā)度越高,系統(tǒng)開銷越大 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)33封鎖帶來的問題1-(活鎖)T1XFIND AT2XFIN
19、D AT3XFIND AAA已被封鎖,不成功,等待A剛被釋放,成功時間點A剛被T2釋放,成功T1永遠等待活鎖!解決方法:先來先服務(wù)數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)34封鎖帶來的問題2-餓死事務(wù)序列A1A2A3A4A5資源AT2T2永遠不能封鎖解決方法,改變授權(quán)方式:當(dāng)事務(wù)T2中請對數(shù)據(jù)項Q加S鎖時,授權(quán)加鎖的條件是: 不存在在數(shù)據(jù)項Q上持有X鎖的其他事務(wù); 不存在等待對數(shù)據(jù)項Q加鎖且先于T2申請加鎖的事務(wù) 每一個事務(wù)均請求A的S鎖,成功后一段時間釋放請求A的X鎖數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)35封鎖帶來的問題3-死鎖時間事務(wù)T1事務(wù)T2t0XFIND A t1 XFIND Bt2XF
20、IND B t3waitXFIND At4waitwait死鎖若事務(wù)依賴圖有環(huán)則可能死鎖圖7.20 事務(wù)的無環(huán)依賴圖圖7.21 事務(wù)的有環(huán)依賴圖數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)36并發(fā)操作的調(diào)度v事務(wù)的調(diào)度 :事務(wù)的執(zhí)行次序稱為“調(diào)度” v串行調(diào)度:如果多個事務(wù)依次執(zhí)行,則稱為事務(wù)的串行調(diào)度(Serial Schedule) v并發(fā)調(diào)度:如果利用分時的方法,同時處理多個事務(wù),則稱為事務(wù)的并發(fā)調(diào)度(Concurrent Schedule)v可串行化 :如果一個并發(fā)調(diào)度的執(zhí)行結(jié)果與某一串行調(diào)度的執(zhí)行結(jié)果等價,那么這個并發(fā)調(diào)度稱為“可串行化的調(diào)度”,否則是不可串行化的調(diào)度 數(shù)據(jù)庫系統(tǒng)教程 第7章
21、 系統(tǒng)實現(xiàn)技術(shù)37兩段封鎖協(xié)議v 在對任何一個數(shù)據(jù)進行讀寫操作之前,事務(wù)必須獲得對該數(shù)據(jù)的封鎖; v在釋放一個封鎖之后,事務(wù)不再獲得任何其他封鎖 v遵守該協(xié)議的事務(wù)分為兩個階段:獲得封鎖階段,也稱為“擴展”階段;釋放封鎖階段,也稱為“收縮”階段 v如果所有的事務(wù)都遵守“兩段封鎖協(xié)議”,則所有可能的并發(fā)調(diào)度都是可串行化的 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)38SQL中事務(wù)的存取模式v READ ONLY(只讀型):事務(wù)對數(shù)據(jù)庫的操作只能是讀操作。定義這個模式后,表示隨后的事務(wù)均是只讀型。 vREAD WRITE(讀寫型):事務(wù)對數(shù)據(jù)庫的操作可以是讀操作,也可以是寫操作。定義這個模式后,表示隨后
22、的事務(wù)均是讀寫型。在程序開始時默認這種模式 v這兩種模式可用下列SQL語句定義: SET TRANSACTION READ ONLY SET TRANSACTION READ WRITE 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)39SQL中事務(wù)的隔離級別v SERIALIZABLE(可串行化):允許事務(wù)并發(fā)執(zhí)行,但須保證并發(fā)調(diào)度可串行化,是默認級別。v REPEATABLE READ(可重復(fù)讀):只許事務(wù)讀已提交的數(shù)據(jù),且兩次讀之間不許其他事務(wù)修改此數(shù)據(jù)。事務(wù)可以不可串行化。v READ COMMITTED(讀提交數(shù)據(jù)):允許事務(wù)讀已提交的數(shù)據(jù),但不要求“可重復(fù)讀”。v READ UNCOMMIT
23、TED(可以讀未提交數(shù)據(jù)):允許事務(wù)讀已提交或未提交的數(shù)據(jù)。v 上述四種級別可以用下列SQL語句定義: SET TRANSACTION ISOLATION LEVEL SERIALIZABLESET TRANSACTION ISOLATION LEVEL REPEATABLE READSET TRANSACTION ISOLATION LEVEL READ COMMITTEDSET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)40主要內(nèi)容v7.1 系統(tǒng)目錄 v7.2 事務(wù) v7.3 數(shù)據(jù)庫的恢復(fù)v7.4 數(shù)據(jù)庫的并
24、發(fā)控制v7.5 并發(fā)事務(wù)的可串行化和可恢復(fù)性v7.6 7.6 數(shù)據(jù)庫的完整性數(shù)據(jù)庫的完整性v7.7 數(shù)據(jù)庫的安全性v小結(jié) 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)41完整性子系統(tǒng)和完整性規(guī)則 v數(shù)據(jù)庫的完整性v完整性子系統(tǒng)的主要功能 監(jiān)督事務(wù)的執(zhí)行,并測試是否違反完整性規(guī)則 若有違反現(xiàn)象,則采取恰當(dāng)?shù)牟僮?,譬如拒絕操作、報告違反情況、改正錯誤等方法來處理 v完整性規(guī)則 什么時候使用規(guī)則進行檢查(稱為規(guī)則的“觸發(fā)條件”) 要檢查什么樣的錯誤(稱為“約束條件”或“謂詞”) 如果查出錯誤,應(yīng)該怎么辦(稱為“ELSE子句”,即違反時要做的動作) 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)42SQL中的完整性約束
25、1-域約束和斷言v 域約束 用“CREATE DOMAIN”語句定義新的域,并且還可出現(xiàn)CHECK子句 v 斷言如果完整性約束牽涉面較廣,與多個關(guān)系有關(guān),或者與聚合操作有關(guān),那么SQL2提供“斷言”(Assertions)機制讓用戶書寫完整性約束 CHECK ASSERTION CHECK() DROP ASSERTION v 定義一個新的域COLOR,可用下列語句實現(xiàn):CREATE DOMAIN COLOR CHARCREATE DOMAIN COLOR CHAR(6 6) DEFAULT DEFAULT ?CONSTRAINTCONSTRAINT V_COLORS V_COLORS CHE
26、CKCHECK(VALUE IN VALUE IN (RedRed, ,YellowYellow, ,BlueBlue,GreenGreen,?););v 每位教師開設(shè)的課程不能超過10門。CREATE ASSERTIONCREATE ASSERTION ASSE1 CHECK ASSE1 CHECK(10 = ALL10 = ALL(SELECT COUNTSELECT COUNT(C#C#)FROM C FROM C GROUP BY GROUP BY TNAMETNAME);); 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)43SQL中的完整性約束2-基本標(biāo)的約束v候選鍵的定義UNIQUE(列名
27、序列)或 PRIMARY KEY(列名序列)v外鍵的定義FOREIGN KEY(列名序列)REFERENCES () ON DELETE ON UPDATE v“檢查約束”的定義CHECK(條件表達式) 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)44關(guān)于外鍵約束完整性的補充v 刪除參照表中元組時的考慮NO ACTIONCASCADE方式 RESTRICT方式 SET NULL方式 SET DEFAULT方式v 修改參照表中主鍵值時的考慮、NO ACTIONCASCADE方式 RESTRICT方式 SET NULL方式 SET DEFAULT方式 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)45關(guān)于數(shù)據(jù)庫完整
28、性的例子學(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中的元組滿足條件:男生年齡在1535歲之間,女生年齡在1530歲之間 。對應(yīng)的語句為:CHECK(AGE = 15 AND((SEX =男 AND AGE = 35) OR (SEX =女 AND AGE NEWTUPLE.GRADE)UPDATE SC SET GRADE = OLDTUPLE.GRADEWHERE C# = NEWTUPLE.C# 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)48主要內(nèi)容v7.1 系統(tǒng)目
29、錄 v7.2 事務(wù) v7.3 數(shù)據(jù)庫的恢復(fù)v7.4 數(shù)據(jù)庫的并發(fā)控制v7.5 并發(fā)事務(wù)的可串行化和可恢復(fù)性v7.6 數(shù)據(jù)庫的完整性v7.7 7.7 數(shù)據(jù)庫的安全性數(shù)據(jù)庫的安全性v小結(jié) 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)49數(shù)據(jù)庫安全性級別v 什么是數(shù)據(jù)庫的安全性v 安全性級別環(huán)境級:計算機系統(tǒng)的機房和設(shè)備應(yīng)加以保護,防止有人進行物理破壞。職員級:工作人員應(yīng)清正廉潔,正確授予用戶訪問數(shù)據(jù)庫的權(quán)限。OS級:應(yīng)防止未經(jīng)授權(quán)的用戶從OS處著手訪問數(shù)據(jù)庫。網(wǎng)絡(luò)級:由于大多數(shù)DBS都允許用戶通過網(wǎng)絡(luò)進行遠程訪問,因此網(wǎng)絡(luò)軟件內(nèi)部的安全性是很重要的。DBS級:DBS的職責(zé)是檢查用戶的身份是否合法及使用數(shù)據(jù)
30、庫的權(quán)限是否正確。數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)50(1)讀權(quán)限:允許用戶讀數(shù)據(jù),但不能改數(shù)據(jù)。 插入權(quán)限:允許用戶插入新數(shù)據(jù),但不能改數(shù)據(jù)。 修改權(quán)限:允許用戶改數(shù)據(jù),但不能刪除數(shù)據(jù)。 刪除權(quán)限 權(quán)限v 訪問數(shù)據(jù)的權(quán)限 v 索引(Index)權(quán)限:允許用戶創(chuàng)建和刪除索引。v 資源(Resourse)權(quán)限:允許用戶創(chuàng)建新的關(guān)系。v 修改(Alteration)權(quán)限:允許用戶在關(guān)系結(jié)構(gòu)中加入或刪除屬性。v 撤消(Drop)權(quán)限:允許用戶撤消關(guān)系。 數(shù)據(jù)庫系統(tǒng)教程 第7章 系統(tǒng)實現(xiàn)技術(shù)51DBAU1U2U3權(quán)限的授予和回收DBAU1U4U2U5U3權(quán)限轉(zhuǎn)授圖 一個用戶擁有權(quán)限的充分必要條件是在權(quán)限圖中從根結(jié)點到該用戶結(jié)點存在一條路經(jīng) DBAU1U2U3DBAU1U2U3DBAU1U2U3數(shù)據(jù)庫系統(tǒng)教程 第
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公路ppp合同范本
- 分紅比例合同范本
- 公路規(guī)劃合同范本
- 協(xié)議合同范本寫法
- 兼職還款合同范本
- pos機推廣合同范本
- 入股店鋪協(xié)議合同范本
- 義齒加工合同范本模板
- 京東入職合同范本
- 醫(yī)院整體轉(zhuǎn)讓合同范本
- 中國妊娠期糖尿病母兒共同管理指南(2024版)解讀
- 籃球教練職業(yè)生涯規(guī)劃
- 機器人手術(shù)后期護理
- 《學(xué)生檔案信息管理系統(tǒng)的開發(fā)》6500字(論文)
- 春節(jié)促銷活動方案(7篇)
- 《股市的基礎(chǔ)常識》課件
- 行測圖形推理1000題庫帶答案
- 火災(zāi)自動報警及其消防聯(lián)動系統(tǒng)技術(shù)規(guī)格書
- 設(shè)備管理人員安全培訓(xùn)
- 市場營銷培訓(xùn)課件
- 山東省房屋市政工程安全監(jiān)督機構(gòu)人員業(yè)務(wù)能力考試題庫-上(單選題)
評論
0/150
提交評論