數(shù)據(jù)庫(kù)原理與應(yīng)用 課件 孟凡榮 第5、6章 數(shù)據(jù)庫(kù)設(shè)計(jì)、數(shù)據(jù)庫(kù)保護(hù)_第1頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用 課件 孟凡榮 第5、6章 數(shù)據(jù)庫(kù)設(shè)計(jì)、數(shù)據(jù)庫(kù)保護(hù)_第2頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用 課件 孟凡榮 第5、6章 數(shù)據(jù)庫(kù)設(shè)計(jì)、數(shù)據(jù)庫(kù)保護(hù)_第3頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用 課件 孟凡榮 第5、6章 數(shù)據(jù)庫(kù)設(shè)計(jì)、數(shù)據(jù)庫(kù)保護(hù)_第4頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用 課件 孟凡榮 第5、6章 數(shù)據(jù)庫(kù)設(shè)計(jì)、數(shù)據(jù)庫(kù)保護(hù)_第5頁(yè)
已閱讀5頁(yè),還剩187頁(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)介

第五章數(shù)據(jù)庫(kù)設(shè)計(jì)1數(shù)據(jù)庫(kù)原理TheTheoryofDatabaseSystem需求分析概念結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)的物理設(shè)計(jì)數(shù)據(jù)庫(kù)的實(shí)施數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)主要內(nèi)容2

數(shù)據(jù)庫(kù)設(shè)計(jì)

對(duì)于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫(kù)模式,建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng),使之能有效地存儲(chǔ)數(shù)據(jù),滿足各種用戶的應(yīng)用需求。5.1數(shù)據(jù)庫(kù)設(shè)計(jì)概述3

信息需求:數(shù)據(jù)庫(kù)內(nèi)容及結(jié)構(gòu)的要求,靜態(tài)

處理需求:數(shù)據(jù)庫(kù)要進(jìn)行的數(shù)據(jù)處理,動(dòng)態(tài)1、計(jì)算機(jī)科學(xué)基礎(chǔ)知識(shí)和程序設(shè)計(jì)技術(shù)2、DB基本知識(shí)和DB設(shè)計(jì)技術(shù)3、軟件工程的原理和方法4、應(yīng)用領(lǐng)域的知識(shí)數(shù)據(jù)庫(kù)設(shè)計(jì)人員應(yīng)具備的技術(shù)和知識(shí)45.1.2數(shù)據(jù)庫(kù)設(shè)計(jì)的內(nèi)容5現(xiàn)實(shí)世界數(shù)據(jù)分析功能分析概念模型設(shè)計(jì)邏輯數(shù)據(jù)庫(kù)設(shè)計(jì)物理數(shù)據(jù)庫(kù)設(shè)計(jì)子模式設(shè)計(jì)建立數(shù)據(jù)功能模型事務(wù)設(shè)計(jì)程序說(shuō)明應(yīng)用程序設(shè)計(jì)程序編碼調(diào)試結(jié)構(gòu)設(shè)計(jì)行為設(shè)計(jì)三分技術(shù)、七分管理、十二分基礎(chǔ)數(shù)據(jù)直觀設(shè)計(jì)法規(guī)范設(shè)計(jì)法計(jì)算機(jī)輔助設(shè)計(jì)法自動(dòng)化設(shè)計(jì)法。5.1.3、數(shù)據(jù)庫(kù)的設(shè)計(jì)方法基于實(shí)體聯(lián)系的設(shè)計(jì)方法、基于3NF的數(shù)據(jù)庫(kù)設(shè)計(jì)方法、基于視圖概念的數(shù)據(jù)庫(kù)設(shè)計(jì)方法等。

6需求分析:是整個(gè)設(shè)計(jì)過(guò)程的基礎(chǔ)。

(1)信息需求分析(2)操作需求分析概念結(jié)構(gòu)設(shè)計(jì):將需求分析的結(jié)果用一種工具進(jìn)行形式化的定義和描述,是整個(gè)DB設(shè)計(jì)的關(guān)鍵。如:E-R圖邏輯結(jié)構(gòu)設(shè)計(jì):概念模型→數(shù)據(jù)模型根據(jù)需求分析和概念設(shè)計(jì)的結(jié)果,選擇合適的數(shù)據(jù)模型,并選用某一設(shè)計(jì)方法構(gòu)造一數(shù)據(jù)庫(kù)模式。5.1.4、數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟74、物理設(shè)計(jì):選擇合適的物理結(jié)構(gòu)。

包括存儲(chǔ)結(jié)構(gòu)和存取方法5、實(shí)施階段:根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)建立數(shù)據(jù)庫(kù);編制和調(diào)試應(yīng)用程序;試運(yùn)行;6、DB運(yùn)行和維護(hù)階段

根據(jù)運(yùn)行記錄對(duì)DB進(jìn)行評(píng)價(jià)根據(jù)評(píng)價(jià)對(duì)DB調(diào)整和修改85.1.4、數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟需求分析概念結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)實(shí)施運(yùn)行維護(hù)9數(shù)據(jù)庫(kù)設(shè)計(jì)的基本步驟需求分析的任務(wù)是通過(guò)詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象,充分了解原系統(tǒng)(手工系統(tǒng)或計(jì)算機(jī)系統(tǒng))工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能。新系統(tǒng)必須充分考慮今后可能的擴(kuò)充和改善,不能僅僅按當(dāng)前應(yīng)用需求來(lái)設(shè)計(jì)數(shù)據(jù)庫(kù)。5.2需求分析10信息要求:DB中需存儲(chǔ)的數(shù)據(jù)處理要求:用戶要求的處理功能對(duì)各處理的響應(yīng)時(shí)間的要求安全性與完整性要求5.2.1、需求分析的任務(wù)11確定用戶的最終需求是非常困難的!1.調(diào)查用戶需求的具體步驟:分析用戶活動(dòng),產(chǎn)生業(yè)務(wù)流程圖。確定系統(tǒng)范圍,產(chǎn)生業(yè)務(wù)范圍圖。分析用戶活動(dòng)及所設(shè)計(jì)的數(shù)據(jù),產(chǎn)生數(shù)據(jù)流圖分析系統(tǒng)數(shù)據(jù),產(chǎn)生數(shù)據(jù)字典5.2.2、需求分析的方法和過(guò)程12

跟班作業(yè)開調(diào)查會(huì)請(qǐng)專人介紹詢問調(diào)查表查閱記錄2、需求分析的常用方法強(qiáng)調(diào):數(shù)據(jù)的收集要盡可能詳盡,全面反映用戶需求。要考慮可能的擴(kuò)充和改變。必須強(qiáng)調(diào)用戶的參與。135.2.3、需求分析常用工具1.數(shù)據(jù)流圖(DFD)

DFD由四種基本符號(hào)組成。如下圖所示。數(shù)據(jù)加工(P)外部項(xiàng)(S)數(shù)據(jù)流(F)數(shù)據(jù)存儲(chǔ)(D)14F3帳簿F2明細(xì)帳F1付款單D總帳打印帳簿P2帳務(wù)處理P1S1客戶S2會(huì)計(jì)

下圖是一個(gè)簡(jiǎn)單的DFD。它表示數(shù)據(jù)流“付款單”從外部項(xiàng)“客戶”(源點(diǎn))流出,經(jīng)加工“帳務(wù)處理”轉(zhuǎn)換成數(shù)據(jù)流“明細(xì)帳”,再經(jīng)加工“打印帳簿”轉(zhuǎn)換成數(shù)據(jù)流“帳簿”,最后流向外部項(xiàng)“會(huì)計(jì)”(終點(diǎn)),加工“打印帳簿”在進(jìn)行轉(zhuǎn)換時(shí),從數(shù)據(jù)存儲(chǔ)“總帳”中讀取數(shù)據(jù)。15繪制數(shù)據(jù)流圖的過(guò)程a關(guān)聯(lián)圖….3.2圖0BQRLSMABCABCDEFG1235631NMPBL圖2b頂層圖d三層圖c二層圖繪制數(shù)據(jù)流圖過(guò)程示意圖F1617頂層數(shù)據(jù)流圖購(gòu)書單缺書單教材管理系統(tǒng)教材存量表學(xué)生F1缺書登記表F3書庫(kù)保管員進(jìn)書通知領(lǐng)書單學(xué)生用書表F217無(wú)效書單0層數(shù)據(jù)流圖購(gòu)書單缺書單單據(jù)審查庫(kù)存

管理12教材存量表學(xué)生F1缺書登記表F3書庫(kù)保管員進(jìn)書通知入庫(kù)信息領(lǐng)書單學(xué)生用書表F218缺書信息無(wú)效書單“單據(jù)審查”1層數(shù)據(jù)流圖購(gòu)書單領(lǐng)書信息領(lǐng)書單審查開領(lǐng)書單學(xué)生1.11.2學(xué)生用書表學(xué)生教材存量表無(wú)效書單F1F219“庫(kù)存管理”1層數(shù)據(jù)流圖

按書號(hào)匯總?cè)睍?.12.3書庫(kù)保管員進(jìn)書通知入庫(kù)信息教材存量表F12.2按出版社統(tǒng)計(jì)缺書修改教材庫(kù)存F3缺書登記表缺書單20教材存量表F1缺書單缺書信息缺書信息數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的數(shù)據(jù)庫(kù),它是對(duì)數(shù)據(jù)流程圖上各個(gè)元素作出詳細(xì)的定義和說(shuō)明。2.數(shù)據(jù)字典(DD)數(shù)據(jù)字典數(shù)據(jù)項(xiàng)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)流數(shù)據(jù)存儲(chǔ)處理過(guò)程21數(shù)據(jù)項(xiàng)是不可再分的數(shù)據(jù)單位。數(shù)據(jù)項(xiàng)的描述={數(shù)據(jù)項(xiàng)名,含義說(shuō)明,別名,數(shù)據(jù)類型,長(zhǎng)度,取值范圍,取值含義,與其他數(shù)據(jù)項(xiàng)的邏輯關(guān)系,數(shù)據(jù)項(xiàng)之間的聯(lián)系}(1).數(shù)據(jù)項(xiàng)22數(shù)據(jù)項(xiàng)名:學(xué)號(hào)別名:學(xué)生編號(hào)取值:8{數(shù)字}8注釋:

*例如:20110101*數(shù)據(jù)結(jié)構(gòu)反應(yīng)了數(shù)據(jù)之間的組合關(guān)系。數(shù)據(jù)結(jié)構(gòu)描述={數(shù)據(jù)結(jié)構(gòu)名,含義說(shuō)明,組成{數(shù)據(jù)項(xiàng)或數(shù)據(jù)結(jié)構(gòu)}}(2).數(shù)據(jù)結(jié)構(gòu)23數(shù)據(jù)流名:領(lǐng)書單別名:購(gòu)書發(fā)票組成:(學(xué)號(hào))+姓名+書號(hào)+單價(jià)+數(shù)量+總價(jià)數(shù)據(jù)流是數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)傳輸?shù)耐緩健?shù)據(jù)流的描述={數(shù)據(jù)流名,說(shuō)明,數(shù)據(jù)流來(lái)源,數(shù)據(jù)流去向,組成:{數(shù)據(jù)結(jié)構(gòu)},平均流量,高峰期流量}(3).數(shù)據(jù)流24數(shù)據(jù)流名:領(lǐng)書信息數(shù)據(jù)流來(lái)源:審查數(shù)據(jù)流去向:開領(lǐng)書單組成:(學(xué)號(hào))+姓名+書號(hào)+單價(jià)+數(shù)量+總價(jià)數(shù)據(jù)量:100次/天高峰值:開學(xué)期間400次/天數(shù)據(jù)存儲(chǔ)是數(shù)據(jù)結(jié)構(gòu)停留或保存的地方,也是數(shù)據(jù)流的來(lái)源和去向之一。它可以是手工文檔或手工憑單,也可以是計(jì)算機(jī)文檔。數(shù)據(jù)存儲(chǔ)描述={數(shù)據(jù)存儲(chǔ)名,說(shuō)明,編號(hào),輸入的數(shù)據(jù)流,輸出的數(shù)據(jù)流,組成{數(shù)據(jù)結(jié)構(gòu)},數(shù)據(jù)量,存取頻度,存取方式}(4)數(shù)據(jù)存儲(chǔ)25文件名:學(xué)生用書表輸入的數(shù)據(jù)流:學(xué)生用書申請(qǐng)信息輸出的數(shù)據(jù)流:學(xué)生用書信息組成:{系編號(hào)+專業(yè)和班編號(hào)+年級(jí)+{書號(hào)}}存取要求:關(guān)鍵字是專業(yè)和班編號(hào)處理過(guò)程的具體處理邏輯一般用判定表或判定樹來(lái)描述。數(shù)據(jù)字典只描述處理過(guò)程的說(shuō)明性信息。數(shù)據(jù)存儲(chǔ)描述={數(shù)據(jù)過(guò)程名,說(shuō)明,輸入:{數(shù)據(jù)流},輸出:{數(shù)據(jù)流},處理:{簡(jiǎn)要說(shuō)明}}(5).處理過(guò)程26加工名:開領(lǐng)書單編號(hào):2.0加工激活條件:得到圖書采購(gòu)員采購(gòu)操作命令加工邏輯:2.0采購(gòu)={2.1按書號(hào)匯總?cè)睍?/p>

+2.2按出版社統(tǒng)計(jì)缺書

+2.3修改教材庫(kù)存和待購(gòu)量}執(zhí)行頻率:隨時(shí)27需求分析概念設(shè)計(jì)邏輯設(shè)計(jì)物理設(shè)計(jì)數(shù)據(jù)庫(kù)實(shí)施運(yùn)行維護(hù)用戶需求分析用戶環(huán)境、調(diào)查組織結(jié)構(gòu)及業(yè)務(wù)活動(dòng)、確定系統(tǒng)目標(biāo)

設(shè)計(jì)概念結(jié)構(gòu)、建立局部E-R模型、建立總體E-R模型設(shè)計(jì)邏輯結(jié)構(gòu)數(shù)據(jù)模型優(yōu)化設(shè)計(jì)物理結(jié)構(gòu)性能評(píng)價(jià)和預(yù)測(cè)符合要求物理實(shí)現(xiàn)試運(yùn)行使用和維護(hù)NYNY符合要求數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程需求分析實(shí)例學(xué)校管理信息系統(tǒng)28學(xué)校管理信息系統(tǒng)研究生院人事處學(xué)科辦學(xué)生工作處教務(wù)處科技處財(cái)務(wù)處學(xué)校組織結(jié)構(gòu)圖29教務(wù)管理系統(tǒng)學(xué)籍管理專業(yè)建設(shè)選課管理教務(wù)管理系統(tǒng)功能結(jié)構(gòu)圖30頂層數(shù)據(jù)流圖學(xué)籍管理系統(tǒng)頂層數(shù)據(jù)流圖學(xué)籍管理0學(xué)生學(xué)生卡片輔導(dǎo)員獎(jiǎng)懲信息教務(wù)處學(xué)籍變動(dòng)信息統(tǒng)計(jì)表有關(guān)部門310層數(shù)據(jù)流圖學(xué)籍管理系統(tǒng)一級(jí)細(xì)化數(shù)據(jù)流圖學(xué)籍變動(dòng)管理1學(xué)籍變動(dòng)信息基本信息管理2學(xué)生卡片獎(jiǎng)懲管理3獎(jiǎng)懲信息學(xué)籍變動(dòng)表D1基本信息表D2獎(jiǎng)勵(lì)表D3懲罰表D4統(tǒng)計(jì)查詢4打印報(bào)表53233降級(jí)1.1學(xué)籍變動(dòng)信息學(xué)籍變動(dòng)表D1退學(xué)1.2學(xué)籍管理系統(tǒng)二級(jí)細(xì)化數(shù)據(jù)流圖基本信息表D21層數(shù)據(jù)流圖數(shù)據(jù)字典—數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)學(xué)號(hào)含義說(shuō)明唯一標(biāo)識(shí)某個(gè)學(xué)生別名學(xué)生編號(hào)類型字符型長(zhǎng)度8取值范圍00000000至99999999取值含義前兩位表示該學(xué)生所在院系,3、4位表示所在年級(jí),5、6位表示班級(jí)、后2位按順序標(biāo)號(hào)34數(shù)據(jù)字典—數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)學(xué)生含義說(shuō)明是學(xué)籍管理模塊的主體數(shù)據(jù)結(jié)構(gòu),定義了一個(gè)學(xué)生的有關(guān)信息組成學(xué)號(hào),姓名,性別,年齡,院系,年級(jí),專業(yè)3536數(shù)據(jù)字典—數(shù)據(jù)流數(shù)據(jù)流學(xué)籍變動(dòng)信息含義說(shuō)明學(xué)籍變化的相關(guān)信息數(shù)據(jù)流來(lái)源教務(wù)人員數(shù)據(jù)流去向?qū)W籍變動(dòng)管理組成{{學(xué)生},變動(dòng)內(nèi)容}37數(shù)據(jù)字典—數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)基本信息表含義說(shuō)明學(xué)生學(xué)籍基本信息流入的數(shù)據(jù)流新的學(xué)籍信息流出的數(shù)據(jù)流查詢的學(xué)籍信息組成學(xué)生學(xué)號(hào),學(xué)生姓名,性別,入學(xué)年份、學(xué)院、宿舍存取方式順序存取存取量每年4000個(gè)新記錄數(shù)據(jù)字典—處理過(guò)程處理過(guò)程基本信息管理含義說(shuō)明實(shí)現(xiàn)新生在校學(xué)籍信息的增刪改輸入數(shù)據(jù)流學(xué)生卡片輸出數(shù)據(jù)流學(xué)生在?;拘畔⑻幚硇律鷪?bào)到后,根據(jù)錄取專業(yè),為所有新生錄入宿舍,院系,專業(yè),班級(jí)等在校信息385.3概念結(jié)構(gòu)設(shè)計(jì)現(xiàn)實(shí)世界信息世界39不同DBMS基于不同的數(shù)據(jù)模型,而現(xiàn)實(shí)應(yīng)用環(huán)境復(fù)雜多變,將現(xiàn)實(shí)世界中的事物直接轉(zhuǎn)換為機(jī)器中的對(duì)象,非常不方便。概念模型是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次,使用接近計(jì)算機(jī)存儲(chǔ)的方式表示數(shù)據(jù),同時(shí)又不涉及具體的DBMS。

5.3.1、概念結(jié)構(gòu)設(shè)計(jì)的定義概念模型的描述工具通常是E_R模型,該模型不依賴于具體的硬件環(huán)境和DBMS。405.3.2、概念結(jié)構(gòu)設(shè)計(jì)方法1、自頂向下(集中模式設(shè)計(jì)):先定義全局,然后再逐步細(xì)化。2、自底向上(視圖集成法):先定義局部,然后再集成起來(lái)。3、混合策略:自底向上和自頂向下相結(jié)合。4141需求全局概念模式

需求分析(自頂向下)

概念結(jié)構(gòu)設(shè)計(jì)(自底向上)424、逐步擴(kuò)張(由內(nèi)向外法):先定義核心,然后再逐步向外擴(kuò)充。核心需求需求核心概念結(jié)構(gòu)全局概念結(jié)構(gòu)選擇局部應(yīng)用。一般而言,中層數(shù)據(jù)流圖能較好反應(yīng)系統(tǒng)各局部應(yīng)用的子系統(tǒng)組成,因此通常以中層數(shù)據(jù)流圖作為設(shè)計(jì)分E-R圖的依據(jù)。從數(shù)據(jù)字典中抽取數(shù)據(jù)。依據(jù)數(shù)據(jù)流圖,標(biāo)定局部應(yīng)用中的實(shí)體、實(shí)體屬性、標(biāo)識(shí)實(shí)體的碼,確定聯(lián)系及類型。5.3.3、局部(分)E_R圖設(shè)計(jì)4344(1)標(biāo)定局部應(yīng)用中的實(shí)體

實(shí)體ismemberof(2)標(biāo)定實(shí)體的屬性、標(biāo)識(shí)實(shí)體的碼

實(shí)體ispartof(3)確定實(shí)體之間的聯(lián)系45學(xué)校管理信息系統(tǒng)應(yīng)用舉例教務(wù)管理系統(tǒng)學(xué)籍管理專業(yè)建設(shè)選課管理教務(wù)管理系統(tǒng)功能結(jié)構(gòu)圖學(xué)籍管理0學(xué)生學(xué)生卡片輔導(dǎo)員獎(jiǎng)懲信息教務(wù)處學(xué)籍變動(dòng)信息統(tǒng)計(jì)表有關(guān)部門學(xué)籍管理頂層數(shù)據(jù)流圖局部視圖設(shè)計(jì)在“學(xué)籍管理模塊”中,涉及到的實(shí)體有哪些?學(xué)生,班級(jí),學(xué)院,專業(yè),宿舍,班主任請(qǐng)分析各個(gè)實(shí)體的屬性有哪些?請(qǐng)分析實(shí)體之間的聯(lián)系及類型。46局部應(yīng)用中的實(shí)體及屬性學(xué)生:{學(xué)號(hào),姓名,性別,年齡,出生日期,院系,專業(yè),班級(jí),宿舍}班級(jí):{班級(jí)編號(hào),班級(jí)備注信息}宿舍:{宿舍編號(hào),地址,電話}學(xué)院:{學(xué)院編號(hào),學(xué)院名稱,院長(zhǎng),辦公電話}專業(yè):{專業(yè)編號(hào),專業(yè)名稱}

班主任:{職工號(hào),姓名,性別}教師:{職工號(hào),姓名,性別,職稱}47實(shí)體之間的聯(lián)系及類型學(xué)生班級(jí)所在n1學(xué)生學(xué)院屬于n1學(xué)生專業(yè)學(xué)習(xí)n1學(xué)生宿舍住宿n1學(xué)籍管理子系統(tǒng)分E_R圖4849班主任班級(jí)管理11教師學(xué)生指導(dǎo)nm專業(yè)學(xué)院設(shè)置n1班級(jí)專業(yè)包含n1學(xué)籍管理子系統(tǒng)分E_R圖5.3.4集成全局視圖50視圖集成要解決的問題(1)確定模式之間的對(duì)應(yīng)和沖突

屬性沖突(屬性域沖突取值單位沖突)

命名沖突(同名異議異名同義)

結(jié)構(gòu)沖突(2)修改視圖使得相互一致(3)合并視圖(4)重構(gòu)(可選)5.3.4集成全局視圖需求分析DFDDD數(shù)據(jù)抽象、局部視圖的設(shè)計(jì)分E_R圖視圖集成總E_R圖用戶是否滿意N邏輯結(jié)構(gòu)設(shè)計(jì)51Y52應(yīng)用舉例——消除沖突

學(xué)生:{學(xué)號(hào),姓名,性別,年齡,出生日期,院系,專業(yè),班級(jí),宿舍}班級(jí):{班級(jí)編號(hào),班級(jí)信息備注}宿舍:{宿舍編號(hào),地址,電話}學(xué)院:{學(xué)院編號(hào),學(xué)院名稱,院長(zhǎng),辦公電話}專業(yè):{專業(yè)編號(hào),專業(yè)名稱}

班主任:{職工號(hào),姓名,性別}命名沖突學(xué)籍管理子系統(tǒng)結(jié)構(gòu)沖突53應(yīng)用舉例——消除沖突教師:{職工號(hào),姓名,性別,職稱}班主任:{職工號(hào),姓名,性別}教師:{職工號(hào),教師姓名,性別,職稱}統(tǒng)一結(jié)構(gòu)沖突54消除冗余屬性和聯(lián)系學(xué)生:{學(xué)號(hào),姓名,性別,年齡,出生日期,學(xué)院編號(hào),專業(yè)編號(hào),班級(jí)編號(hào),宿舍編號(hào)}出生日期年齡學(xué)生:{學(xué)號(hào),姓名,性別,出生日期,學(xué)院編號(hào),專業(yè)編號(hào),班級(jí)編號(hào),宿舍編號(hào)}班級(jí)編號(hào)專業(yè)編號(hào)學(xué)生:{學(xué)號(hào),姓名,性別,出生日期,學(xué)院編號(hào),班級(jí)編號(hào),宿舍編號(hào)}視圖集成學(xué)籍管理子系統(tǒng)總E-R圖55班級(jí)所在n學(xué)生1屬于學(xué)院1n1宿舍住宿n專業(yè)包含1n設(shè)置1n教師管理11指導(dǎo)mn學(xué)習(xí)1n數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)是將概念結(jié)構(gòu)轉(zhuǎn)換成特定DBMS所支持的數(shù)據(jù)模型,需要考慮具體的DBMS的性能、具體的數(shù)據(jù)模型特點(diǎn)。5.4

邏輯結(jié)構(gòu)設(shè)計(jì)E_R圖轉(zhuǎn)換為關(guān)系模式,實(shí)質(zhì)就是將實(shí)體和聯(lián)系轉(zhuǎn)換為關(guān)系模式。56將概念模型轉(zhuǎn)化為等價(jià)的關(guān)系模式按需要對(duì)關(guān)系模式進(jìn)行規(guī)范化對(duì)規(guī)范化后的模式進(jìn)行評(píng)價(jià)

根據(jù)局部應(yīng)用的需要,設(shè)計(jì)用戶外模式5.4.1

邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)和步驟57學(xué)籍管理子系統(tǒng)總E-R圖58班級(jí)所在n學(xué)生1屬于學(xué)院1n1宿舍住宿n專業(yè)包含1n設(shè)置1n教師管理11指導(dǎo)mn學(xué)習(xí)1n

實(shí)體:一個(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。5.4.2

E_R圖向關(guān)系模型轉(zhuǎn)換的原則學(xué)生學(xué)生(學(xué)號(hào),姓名,出生日期,學(xué)院編號(hào),班級(jí)編號(hào),宿舍編號(hào))學(xué)號(hào),59班級(jí)學(xué)院專業(yè)宿舍教師類型為1:1聯(lián)系的轉(zhuǎn)換規(guī)則類型為1:n聯(lián)系的轉(zhuǎn)換規(guī)則類型為n:m聯(lián)系的轉(zhuǎn)換規(guī)則5.4.2

E_R圖向關(guān)系模型轉(zhuǎn)換的原則60615.4.2

E_R圖向關(guān)系模型轉(zhuǎn)換的原則

聯(lián)系類型為1:1可以將聯(lián)系轉(zhuǎn)換為一個(gè)新的關(guān)系。與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性構(gòu)成新關(guān)系的屬性,每個(gè)實(shí)體的碼均是該關(guān)系的候選碼。管理(教師號(hào),班級(jí)號(hào))管理(教師號(hào),班級(jí)號(hào))管理(教師號(hào),班級(jí)號(hào))班級(jí)教師管理11625.4.2

E_R圖向關(guān)系模型轉(zhuǎn)換的原則聯(lián)系類型為1:1可以與任意一端對(duì)應(yīng)的關(guān)系模式合并。在該關(guān)系模式中加入另一關(guān)系的碼和聯(lián)系的屬性,該關(guān)系的碼不變。班級(jí)教師管理11教師:{職工號(hào),教師姓名,性別,職稱},班級(jí)號(hào)}班級(jí):{班級(jí)編號(hào),班級(jí)信息備注},職工號(hào)}635.4.2

E_R圖向關(guān)系模型轉(zhuǎn)換的原則

聯(lián)系類型為1:n可以將聯(lián)系轉(zhuǎn)換為一個(gè)新的關(guān)系。將聯(lián)系轉(zhuǎn)換為一個(gè)新的關(guān)系模式:與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性構(gòu)成新關(guān)系的屬性,該關(guān)系的碼是n端關(guān)系模式的碼。學(xué)生班級(jí)所在n1所在(學(xué)號(hào),班級(jí)號(hào))645.4.2

E_R圖向關(guān)系模型轉(zhuǎn)換的原則

聯(lián)系類型為1:n可以與n端對(duì)應(yīng)的關(guān)系模式合并。在n端關(guān)系模式中加入1端關(guān)系模式的碼和聯(lián)系的屬性,關(guān)系的碼仍為n端關(guān)系的碼。學(xué)生班級(jí)所在n1學(xué)生(學(xué)號(hào),姓名,性別,出生日期,班級(jí)號(hào))

聯(lián)系類型為n:m只能將聯(lián)系轉(zhuǎn)換為一個(gè)新的關(guān)系。與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性構(gòu)成新關(guān)系的屬性,該關(guān)系的碼是兩端關(guān)系模式碼的組合。5.4.2

E_R圖向關(guān)系模型轉(zhuǎn)換的原則65指導(dǎo)(學(xué)號(hào),教師號(hào),獲獎(jiǎng)內(nèi)容)教師學(xué)生指導(dǎo)nm獲獎(jiǎng)內(nèi)容學(xué)籍管理子系統(tǒng)的關(guān)系模式

學(xué)生:{學(xué)號(hào),姓名,性別,出生日期,院系編號(hào),班級(jí)編號(hào),宿舍編號(hào)}班級(jí):{班級(jí)編號(hào),班級(jí)信息備注}宿舍:{宿舍編號(hào),地址,電話}學(xué)院:{學(xué)院編號(hào),學(xué)院名稱,院長(zhǎng),辦公電話}專業(yè):{專業(yè)編號(hào),專業(yè)名稱}教師:{職工號(hào),教師姓名,性別,職稱}6667

管理:(教師編號(hào),班級(jí)編號(hào))

所在:(學(xué)號(hào),班級(jí)編號(hào))

住宿:(學(xué)號(hào),宿舍編號(hào))屬于:(學(xué)號(hào),學(xué)院編號(hào))

學(xué)習(xí):(學(xué)號(hào),專業(yè)編號(hào))

包含:(班級(jí)編號(hào),專業(yè)編號(hào))設(shè)置:(專業(yè)編號(hào),學(xué)院編號(hào))

指導(dǎo):(教師編號(hào),學(xué)號(hào),獲獎(jiǎng)內(nèi)容)1:1和1:n關(guān)系采用生成一個(gè)新關(guān)系的策略681:1和1:n關(guān)系采用生成一個(gè)新關(guān)系的策略消除冗余學(xué)生:(學(xué)號(hào),姓名,性別,出生日期,學(xué)院編號(hào),班級(jí)編號(hào),宿舍編號(hào)}學(xué)生:(學(xué)號(hào),姓名,性別,出生日期,學(xué)院編號(hào),班級(jí)編號(hào))學(xué)習(xí):(學(xué)號(hào),專業(yè)編號(hào))

包含:(班級(jí)編號(hào),專業(yè)編號(hào))所在:(學(xué)號(hào),班級(jí)編號(hào))69學(xué)生:(學(xué)號(hào),姓名,性別,出生日期,學(xué)院編號(hào),班級(jí)編號(hào))班級(jí):(班級(jí)編號(hào),班級(jí)信息備注)宿舍:(宿舍編號(hào),地址,電話)學(xué)院:(學(xué)院編號(hào),學(xué)院名稱,院長(zhǎng),辦公電話)專業(yè):(專業(yè)編號(hào),專業(yè)名稱)

教師:(教師編號(hào),教師姓名,性別,職稱)

所在:(學(xué)號(hào),班級(jí)編號(hào))

住宿:(學(xué)號(hào),宿舍編號(hào))屬于:(學(xué)號(hào),學(xué)院編號(hào))

管理:(教師編號(hào),班級(jí)編號(hào))包含:(班級(jí)編號(hào),專業(yè)編號(hào))設(shè)置:(專業(yè)編號(hào),學(xué)院編號(hào))

指導(dǎo):(教師編號(hào),學(xué)號(hào),獲獎(jiǎng)內(nèi)容)70

學(xué)生:(學(xué)號(hào),姓名,性別,出生日期,學(xué)院編號(hào),班級(jí)編號(hào),宿舍編號(hào))班級(jí):(班級(jí)編號(hào),班級(jí)信息備注,教師編號(hào),專業(yè)編號(hào))宿舍:(宿舍編號(hào),地址,電話)學(xué)院:(學(xué)院編號(hào),學(xué)院名稱,院長(zhǎng),辦公電話)專業(yè):(專業(yè)編號(hào),專業(yè)名稱,學(xué)院編號(hào))

教師:(教師編號(hào),教師姓名,性別,職稱)

指導(dǎo):(教師編號(hào),學(xué)號(hào),獲獎(jiǎng)內(nèi)容)1:1和1:n關(guān)系采用合并的策略確定數(shù)據(jù)依賴對(duì)于各關(guān)系模式間的數(shù)據(jù)依賴進(jìn)行極小化處理,消除冗余的聯(lián)系。規(guī)范化5.4.3

邏輯結(jié)構(gòu)的優(yōu)化7172

學(xué)生:(學(xué)號(hào),姓名,性別,出生日期,學(xué)院編號(hào),班級(jí)編號(hào),宿舍編號(hào))班級(jí):(班級(jí)編號(hào),班級(jí)信息備注,教師編號(hào),專業(yè)編號(hào))宿舍:(宿舍編號(hào),地址,電話)學(xué)院:(學(xué)院編號(hào),學(xué)院名稱,院長(zhǎng),辦公電話)專業(yè):(專業(yè)編號(hào),專業(yè)名稱,學(xué)院編號(hào))

教師:(教師編號(hào),教師姓名,性別,職稱)

指導(dǎo):(教師編號(hào),學(xué)號(hào),獲獎(jiǎng)內(nèi)容)1:1和1:n關(guān)系采用合并的策略735.4.4設(shè)計(jì)用戶外模式使用更符合用戶習(xí)慣的別名。對(duì)于不同級(jí)別的用戶定義不同的外模式,以滿足系統(tǒng)對(duì)安全性的要求。

view1(學(xué)號(hào),姓名,教師編號(hào),獲獎(jiǎng)內(nèi)容)view2(學(xué)號(hào),姓名,教師編號(hào),教師姓名,職稱,獲獎(jiǎng)內(nèi)容簡(jiǎn)化用戶對(duì)系統(tǒng)的使用。745.5物理結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)的物理設(shè)計(jì)就是為給定的邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用要求的物理結(jié)構(gòu)的過(guò)程。通常分為兩步:確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu),在關(guān)系數(shù)據(jù)庫(kù)中主要指存取方法和存儲(chǔ)結(jié)構(gòu)對(duì)物理結(jié)構(gòu)進(jìn)行評(píng)價(jià),評(píng)價(jià)的重點(diǎn)是時(shí)間和空間效率755.6-5.7數(shù)據(jù)庫(kù)的實(shí)施和維護(hù)數(shù)據(jù)的載入和應(yīng)用程序的調(diào)試數(shù)據(jù)庫(kù)的試運(yùn)行數(shù)據(jù)庫(kù)的運(yùn)行和維護(hù)76醫(yī)院管理信息系統(tǒng)5.8數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)例77

實(shí)例

醫(yī)院管理信息系統(tǒng)1需求分析醫(yī)院有若干科室,科室包括科編號(hào)、名稱、人數(shù)、地點(diǎn)、負(fù)責(zé)人。醫(yī)院每一個(gè)科室有若干名醫(yī)生,醫(yī)生包括醫(yī)生編號(hào)、姓名、職務(wù)、學(xué)歷、職稱、簡(jiǎn)歷,每個(gè)醫(yī)生的簡(jiǎn)歷包括開始時(shí)間、終止時(shí)間、單位、擔(dān)任職務(wù)、證明人。一個(gè)醫(yī)生要負(fù)責(zé)幾個(gè)病房病人的醫(yī)療工作,每個(gè)病房又可以有多個(gè)醫(yī)生為病人治療,但一個(gè)病人只能由一個(gè)醫(yī)生負(fù)責(zé)。對(duì)于病人,醫(yī)院關(guān)心病人編號(hào)、姓名、性別、年齡、住院時(shí)間、出院時(shí)間、病因等信息,對(duì)于病房關(guān)心病房號(hào)、床位數(shù)、床位號(hào)、床位是否為空等信息。782概念結(jié)構(gòu)設(shè)計(jì)科室醫(yī)生簡(jiǎn)歷病人醫(yī)院病房79醫(yī)院每一個(gè)科室有若干名醫(yī)生一個(gè)醫(yī)生要負(fù)責(zé)幾個(gè)病房病人的醫(yī)療工作,每個(gè)病房又可以有多個(gè)醫(yī)生為病人治療一個(gè)病人只能由一個(gè)醫(yī)生負(fù)責(zé)科室醫(yī)生屬于1n病房醫(yī)生負(fù)責(zé)mn病人醫(yī)生治療n12概念結(jié)構(gòu)設(shè)計(jì)80科室病房包含1n病人病房住在n1簡(jiǎn)歷醫(yī)生擁有n1813邏輯結(jié)構(gòu)設(shè)計(jì)醫(yī)生(醫(yī)生編號(hào),姓名,職稱,職務(wù),學(xué)歷)科室(科室編號(hào),名稱,人數(shù),地點(diǎn),負(fù)責(zé)人)簡(jiǎn)歷(簡(jiǎn)歷編號(hào),醫(yī)生姓名,單位,擔(dān)任職務(wù),開始時(shí)間,終止時(shí)間,證明人)病人(病人編號(hào),姓名,性別,年齡,住院時(shí)間,出院時(shí)間,病因)病房(病房號(hào),床位號(hào),病床數(shù),床位是否為空)82治療(病人編號(hào),醫(yī)生編號(hào))擁有(簡(jiǎn)歷編號(hào),醫(yī)生編號(hào))屬于(醫(yī)生編號(hào),科室編號(hào))包含(病房號(hào),科室編號(hào))住在(病人編號(hào),病房編號(hào))

負(fù)責(zé)(病房號(hào),醫(yī)生編號(hào))1:1和1:n關(guān)系采用生成一個(gè)新關(guān)系的策略83醫(yī)生(醫(yī)生編號(hào),姓名,職稱,職務(wù),學(xué)歷,科室

編號(hào))科室(科室編號(hào),名稱,人數(shù),地點(diǎn),負(fù)責(zé)人)簡(jiǎn)歷(簡(jiǎn)歷編號(hào),醫(yī)生姓名,單位,擔(dān)任職務(wù),開

始時(shí)間,終止時(shí)間,證明人,醫(yī)生編號(hào))病人(病人編號(hào),姓名,性別,年齡,住院時(shí)間,

出院時(shí)間,病因,醫(yī)生編號(hào),病房編號(hào))病房(病房號(hào),床位號(hào),病床數(shù),床位是否為空,

科室編號(hào))1:1和1:n關(guān)系采用合并的策略84優(yōu)化病房(病房號(hào),床位號(hào),病床數(shù),床位是否為空,科室編號(hào))病房號(hào)床位數(shù)病房(病房號(hào),床位號(hào),床位是否為空,科室編號(hào))病房信息(病房號(hào),病床數(shù))第六章數(shù)據(jù)庫(kù)保護(hù)85事務(wù)數(shù)據(jù)庫(kù)恢復(fù)并發(fā)控制數(shù)據(jù)庫(kù)安全性數(shù)據(jù)庫(kù)完整性主要內(nèi)容866.1事務(wù)事務(wù):是一個(gè)不可分割的操作序列,該操作序列要么全做,要么全不做。事務(wù)和程序是兩個(gè)概念。一個(gè)程序中可以包含多個(gè)事務(wù)。87隱式控制:由DBMS按缺省規(guī)定自動(dòng)劃分。顯式控制:

BEGINTRANSACTION

[事務(wù)開始]

COMMIT

[事務(wù)提交,重新改寫數(shù)據(jù)庫(kù)]

ROLLBACK

[事務(wù)提交,發(fā)生錯(cuò)誤撤消]一、事務(wù)的概念88BEGINTRANSACTIONINSERTINTOS(S#,Sname,Sage,Sdept)VALUES(‘10002’,’李娜’,18,‘計(jì)算機(jī)’)COMMIT89BEGINTRANSACTION

讀賬戶甲的余額Balance;Balance=Balance-AmountIf(Balance<0)Then{打印’金額不足,不能轉(zhuǎn)賬’;Rollback;Else{讀賬戶乙的余額Balance1;Balance1=Balance1+Amount;

寫回Balance1;

commint;}90原子性(Atomicity)

事務(wù)是不可分割的工作單位一致性(Consistency)事務(wù)提交后,數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。隔離性(Isolation)在事務(wù)完成之前,它對(duì)數(shù)據(jù)庫(kù)產(chǎn)生的結(jié)果不能被其它事務(wù)引用。持續(xù)性(Durability)一旦事務(wù)執(zhí)行成功(提交),其對(duì)數(shù)據(jù)產(chǎn)生的效果永久有效。

二、事務(wù)的特性(ACID)91破壞ACID特性的因素(1)多個(gè)事務(wù)并行運(yùn)行時(shí),不同事務(wù)交叉執(zhí)行(2)事務(wù)在運(yùn)行過(guò)程中被強(qiáng)行停止。92丟失修改不可重復(fù)讀讀“臟”數(shù)據(jù)并發(fā)操作引起的問題93事務(wù)T1事務(wù)T2讀出C,C=500C=C+100C=600讀出C,C=500C=C+200C=700丟失修改94不可重復(fù)讀事務(wù)T1事務(wù)T2

讀出A=50

讀出B=100

求和=150

讀出B=100B=B*2WRITE(B)

讀出A=50

讀出B=200

求和=250(驗(yàn)算不對(duì))95讀臟數(shù)據(jù)事務(wù)T1事務(wù)T2

讀出C=100C=C*2WRITE(C)

讀出C=200

ROLLBACKC恢復(fù)為100966.2

數(shù)據(jù)庫(kù)恢復(fù)數(shù)據(jù)庫(kù)的恢復(fù):

把數(shù)據(jù)庫(kù)從錯(cuò)誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)。3.介質(zhì)故障4.計(jì)算機(jī)病毒6.2.1故障的類型1.事務(wù)故障2.系統(tǒng)故障軟故障硬故障971.事務(wù)故障

是事務(wù)內(nèi)部的故障(不需要重新啟動(dòng)系統(tǒng))。預(yù)期故障:通過(guò)在程序中加判斷條件來(lái)實(shí)現(xiàn)非預(yù)期的故障:如由于死鎖而被迫撤銷的事務(wù)等982.系統(tǒng)故障(需要系統(tǒng)重新啟動(dòng))故障類型:硬件錯(cuò)誤、操作系統(tǒng)故障、DBMS代碼錯(cuò)誤、突然停電等。特點(diǎn):故障影響正在運(yùn)行的所有事務(wù),但不破壞數(shù)據(jù)庫(kù)??赡軙?huì)造成數(shù)據(jù)庫(kù)中數(shù)據(jù)的不一致性。其原因:故障發(fā)生時(shí),尚未完成的事務(wù)的結(jié)果可能已送入到物理數(shù)據(jù)庫(kù)。故障發(fā)生時(shí),有些已完成的事務(wù)所做的數(shù)據(jù)更改還在緩沖區(qū)中,尚未寫到物理數(shù)據(jù)庫(kù)中。993.介質(zhì)故障

是指存儲(chǔ)數(shù)據(jù)庫(kù)的磁盤發(fā)生故障。原因:可能是磁盤損壞、磁頭碰撞、瞬時(shí)強(qiáng)磁場(chǎng)干擾等。特點(diǎn):使數(shù)據(jù)庫(kù)受到破環(huán)。雖然可能性小,但破壞性最大。4.計(jì)算機(jī)病毒人為的故障或破壞,是一些惡作劇者研制的一種計(jì)算機(jī)程序。1006.2.2數(shù)據(jù)庫(kù)恢復(fù)的實(shí)現(xiàn)技術(shù)兩個(gè)關(guān)鍵問題:

1如何建立冗余數(shù)據(jù)

2如何利用這些冗余數(shù)據(jù)實(shí)施數(shù)據(jù)庫(kù)恢復(fù)冗余技術(shù)1011.通過(guò)數(shù)據(jù)轉(zhuǎn)儲(chǔ)建立冗余轉(zhuǎn)儲(chǔ):定期將DB復(fù)制到其它外存保存(副本)轉(zhuǎn)儲(chǔ)類型:

靜態(tài)轉(zhuǎn)儲(chǔ)

能保證副本與數(shù)據(jù)庫(kù)的一致性;但是效率太低。

動(dòng)態(tài)轉(zhuǎn)儲(chǔ)

效率高,但不能保證副本與數(shù)據(jù)庫(kù)的一致性。轉(zhuǎn)儲(chǔ)運(yùn)行事務(wù)故障發(fā)生點(diǎn)TaTb轉(zhuǎn)儲(chǔ)恢復(fù)重新運(yùn)行事務(wù)裝入后備副本102轉(zhuǎn)儲(chǔ)方式海量轉(zhuǎn)儲(chǔ):每次轉(zhuǎn)儲(chǔ)數(shù)據(jù)庫(kù)中的全部數(shù)據(jù)增量轉(zhuǎn)儲(chǔ):每次轉(zhuǎn)儲(chǔ)上一次轉(zhuǎn)儲(chǔ)后更新過(guò)的數(shù)據(jù)

轉(zhuǎn)儲(chǔ)狀態(tài)動(dòng)態(tài)轉(zhuǎn)儲(chǔ)靜態(tài)轉(zhuǎn)儲(chǔ)

轉(zhuǎn)儲(chǔ)方式海量轉(zhuǎn)儲(chǔ)動(dòng)態(tài)海量轉(zhuǎn)儲(chǔ)靜態(tài)海量轉(zhuǎn)儲(chǔ)增量轉(zhuǎn)儲(chǔ)動(dòng)態(tài)增量轉(zhuǎn)儲(chǔ)靜態(tài)增量轉(zhuǎn)儲(chǔ)1032.通過(guò)日志文件建立冗余日志文件記錄對(duì)數(shù)據(jù)庫(kù)每次更新活動(dòng)的文件。每次更新活動(dòng)的內(nèi)容作為一個(gè)“記錄”寫入日志文件。主要內(nèi)容包括:事務(wù)標(biāo)識(shí)(標(biāo)明是哪個(gè)事務(wù))操作類型及對(duì)象(插入、刪除、修改,記錄內(nèi)部標(biāo)識(shí))更新前后的值104事務(wù)標(biāo)識(shí)操作類型對(duì)象標(biāo)識(shí)前像后像日志文件的格式

事務(wù)T開始,日志記錄為(T,START…)事務(wù)T修改對(duì)象A,日志記錄為(T,UPDATE,A,前像,后

像)

事務(wù)T插入對(duì)象A,日志記錄為(T,INSERT,A,后像)

事務(wù)T刪除對(duì)象A,日志記錄為(T,DELETE,A,前像)

事務(wù)T提交,日志記錄為(T,COMMIT…)

事務(wù)T回滾,日志記錄為(T,ROLLBACK…)105日志文件的作用事務(wù)故障恢復(fù)和系統(tǒng)故障恢復(fù)必須用日志文件正常運(yùn)行運(yùn)行事務(wù)登記日志文件TaTb轉(zhuǎn)儲(chǔ)介質(zhì)故障利用日志文件恢復(fù)TaTb重裝后備副本在動(dòng)態(tài)轉(zhuǎn)儲(chǔ)方式中必須建立日志文件,后備副本和日志文件結(jié)合才能有效恢復(fù)數(shù)據(jù)庫(kù)在靜態(tài)轉(zhuǎn)儲(chǔ)方式中,也可以建立日志文件106登記日志文件要遵循兩條原則:

登記的次序必須嚴(yán)格按照并發(fā)事務(wù)執(zhí)行的次序

必須先寫日志,后寫數(shù)據(jù)庫(kù),并且日志文件和數(shù)據(jù)庫(kù)文件不能和數(shù)據(jù)庫(kù)文件放在同一個(gè)磁盤上。1076.2.3.事務(wù)恢復(fù)策略1.事務(wù)故障的恢復(fù)恢復(fù)策略:反向掃描日志文件,將日志中更新前的數(shù)據(jù)寫回到數(shù)據(jù)庫(kù)中,直至事務(wù)的開始標(biāo)志。事務(wù)T修改對(duì)象A,日志記錄為(T,UPDATE,A,前像,后像)

事務(wù)T插入對(duì)象A,日志記錄為(T,INSERT,A,后像)

事務(wù)T刪除對(duì)象A,日志記錄為(T,DELETE,A,前像1086.2.3.事務(wù)恢復(fù)策略2、系統(tǒng)故障的恢復(fù)恢復(fù)策略:撤銷故障發(fā)生時(shí)未完成的事務(wù),重做已完成的事務(wù)。方法:(1)正向掃描日志文件;找出故障發(fā)生前已經(jīng)提交的事務(wù),將該事務(wù)放入REDO隊(duì)列;找出故障發(fā)生前未提交的事務(wù),將其放入U(xiǎn)NDO隊(duì)列。(2)對(duì)UNDO隊(duì)列做撤銷操作(3)對(duì)REDO隊(duì)列做重做操作1093、介質(zhì)故障的恢復(fù)恢復(fù)策略:利用數(shù)據(jù)庫(kù)副本和日志文件副本進(jìn)行恢復(fù)。(需要DBA介入)6.2.3.事務(wù)恢復(fù)策略正常運(yùn)行運(yùn)行事務(wù)登記日志文件TaTb轉(zhuǎn)儲(chǔ)介質(zhì)故障利用日志文件恢復(fù)TaTb重裝后備副本1106.2.4具有檢查點(diǎn)的恢復(fù)策略Ci檢查點(diǎn)記錄地址T1D1T2D2重新開始文件日志文件檢查點(diǎn)記錄日志文件111具有檢查點(diǎn)時(shí),動(dòng)態(tài)維護(hù)數(shù)據(jù)庫(kù)日志的方法

將當(dāng)前日志緩沖區(qū)中的日志記錄寫入磁盤的日志文件

在日志文件中加入一個(gè)檢查點(diǎn)記錄

將當(dāng)前數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)記錄寫入磁盤的數(shù)據(jù)庫(kù)

將檢查點(diǎn)記錄在日志文件中的地址寫入重新開始文件112Tc(檢查點(diǎn))Tf(系統(tǒng)故障)T1T2T3T4T5REDOREDOUNDOUNDO113系統(tǒng)使用檢查點(diǎn)進(jìn)行恢復(fù)的步驟

從重新開始文件中找到最后一個(gè)檢查點(diǎn)記錄在日志文件中的地址,找到最后一個(gè)檢查點(diǎn)

由該檢查點(diǎn)找到檢查點(diǎn)建立時(shí)刻所有的動(dòng)態(tài)事務(wù)清單

從檢查點(diǎn)正向掃描日志文件

如有新開始的事務(wù),放入U(xiǎn)NDO隊(duì)列

如有提交的事務(wù),將該事務(wù)從UNDO放入REDO隊(duì)列

執(zhí)行UNDO和REDO處理114115本次課程總結(jié)1.事務(wù)的概念,ACID特性2.數(shù)據(jù)庫(kù)恢復(fù),故障類型3.數(shù)據(jù)庫(kù)恢復(fù)技術(shù),轉(zhuǎn)儲(chǔ)和日志4.數(shù)據(jù)庫(kù)恢復(fù)策略116上次課程回顧1.事務(wù)的概念,ACID特性2.數(shù)據(jù)庫(kù)恢復(fù),故障類型3.數(shù)據(jù)庫(kù)恢復(fù)技術(shù),轉(zhuǎn)儲(chǔ)和日志4.數(shù)據(jù)庫(kù)恢復(fù)策略6.3并發(fā)控制丟失修改不可重復(fù)讀讀“臟”數(shù)據(jù)6.3.1并發(fā)操作引發(fā)的問題117事務(wù)T1事務(wù)T2讀出C,C=500C=C+100C=600讀出C,C=500C=C+200C=700丟失修改118不可重復(fù)讀事務(wù)T1事務(wù)T2

讀出A=50

讀出B=100

求和=150

讀出B=100B=B*2WRITE(B)

讀出A=50

讀出B=200

求和=250(驗(yàn)算不對(duì))119讀臟數(shù)據(jù)事務(wù)T1事務(wù)T2

讀出C=100C=C*2WRITE(C)

讀出C=200

ROLLBACKC恢復(fù)為100120并發(fā)控制的任務(wù)2.保證事務(wù)的隔離性3.保證事務(wù)的一致性1.對(duì)并發(fā)操作進(jìn)行正確調(diào)度思考:事務(wù)的原子性和持久性由DBMS的哪個(gè)子系統(tǒng)進(jìn)行維護(hù)?1216.3.2調(diào)度及其可串行化1、事務(wù)的表示方法:

Ri(X)表示事務(wù)Ti的讀X操作

Wi(X)表示事務(wù)Ti的寫X操作例:

事務(wù)T1(Read(B);A=B+1;write(A)),事務(wù)T2(Read(A);B=A+1;write(B))可以表示成:

T1:R1(B)W1(A)T2:R2(A)W2(B)1222、沖突操作定義:如果兩個(gè)操作來(lái)自不同的事務(wù),它們對(duì)同一數(shù)據(jù)單位進(jìn)行操作,并且其中至少有一個(gè)是寫操作,則稱這兩個(gè)操作是相互沖突的或沖突操作。例:事務(wù)T0:W0(X)W0(Y)W0(Z)

事務(wù)T1:R1(X)R1(Z)W1(X)

在這兩個(gè)事務(wù)中有哪些沖突操作?R1(X)與W0(X)

W1(X)與W0(X)R1(Z)與W0(Z)1233串行調(diào)度調(diào)度S中的任意兩個(gè)事務(wù)Ti和Tj,如果Ti的所有操作都先于Tj的所有操作,或者相反,則稱S為串行調(diào)度。串行調(diào)度事務(wù)執(zhí)行的結(jié)果總是正確的.串行調(diào)度不能夠充分利用系統(tǒng)資源.1244并發(fā)調(diào)度如果在一個(gè)調(diào)度中,各個(gè)事務(wù)交叉地執(zhí)行,這個(gè)調(diào)度稱為并發(fā)調(diào)度。5可串行化的調(diào)度如果一個(gè)事務(wù)集的并發(fā)調(diào)度與某一串行調(diào)度是等價(jià)的,則稱該并發(fā)調(diào)度是可串行化的??纱谢亲鳛椴l(fā)調(diào)度正確與否的判定準(zhǔn)則!125T1T2Read(A)A:=A-5Write(A)Read(B)B:=B+5Write(B)Read(B)B:=B-5Write(B)串行調(diào)度1T1T2Read(A)A:=A-5Write(A)Read(B)B:=B+5Write(B)Read(B)B:=B-5Write(B)串行調(diào)度2T1T2Read(A)Read(B)B:=B-5A:=A-5Write(A)Write(B)Read(B)B:=B+5Write(B)并發(fā)調(diào)度1T1T2Read(A)Read(B)B:=B-5A:=A-5Write(A)Write(B)Read(B)并發(fā)調(diào)度2B:=B+5Write(B)A=10B=10A=5B=10A=5B=10A=5B=10A=5B=151266沖突可串行化一個(gè)調(diào)度Sc在保證沖突操作的次序不變的情況下,通過(guò)交換兩個(gè)事務(wù)不沖突操作的次序得到另一個(gè)調(diào)度Sc’,如果Sc’是串行的稱調(diào)度Sc為沖突可串行化調(diào)度。一個(gè)調(diào)度是沖突可串行化的,一定是可串行化調(diào)度,反之則不成立!127調(diào)度Sc1=r1(A)w1(A)r2(A)w2(A)r1(B)w1(B)r2(B)w2(B)判斷Sc1是否是沖突可串行化的調(diào)度。首先把w2(A)和r1(B)w1(B)交換,得到r1(A)w1(A)r2(A)r1(B)w1(B)w2(A)r2(B)w2(B)再把r2(A)和r1(B)w1(B)交換,得到Sc2=r1(A)w1(A)r1(B)w1(B)r2(A)w2(A)r2(B)w2(B)Sc2等價(jià)于串行調(diào)度T1T2,所以Sc1是沖突可串行化的例題128沖突可串行化的判定方法:構(gòu)造前驅(qū)圖設(shè)S是若干事務(wù){(diào)T1,T2,…,Tn}的一個(gè)調(diào)度,S的前驅(qū)圖G(V,E)是一個(gè)有向圖,其構(gòu)成規(guī)則如下:1)V是由所有參加調(diào)度的事務(wù)構(gòu)成的節(jié)點(diǎn)2)E是圖中的一條有向邊,如果Oi和Oj是沖突操作,且Oi先于Oj執(zhí)行,則在圖中有一條邊Ti→Tj。

事務(wù)Ti讀x在事務(wù)Tj寫x之前

事務(wù)Ti寫x在事務(wù)Tj讀x之前

事務(wù)Ti寫x在事務(wù)Tj寫x之前若一個(gè)調(diào)度的前趨圖無(wú)環(huán),則該調(diào)度是調(diào)度可串行化的129T4T2T1T3T1T2T4Read(x)Read(y)Write(y)Write(x)Write(x)Write(z)Read(z)Write(x)一個(gè)并發(fā)調(diào)度ST3例題130獲得調(diào)度S的一個(gè)等價(jià)的串行調(diào)度由于圖中無(wú)回路,必有一個(gè)節(jié)點(diǎn)無(wú)入弧,將這個(gè)節(jié)點(diǎn)及其相連的弧刪去,并把該節(jié)點(diǎn)存入先進(jìn)先出的隊(duì)列中。對(duì)剩下的圖做同樣的處理,直至所有節(jié)點(diǎn)移入隊(duì)列中。按照隊(duì)列中次序串行安排各事務(wù)的執(zhí)行,就可以得到一個(gè)等價(jià)的串行調(diào)度前驅(qū)圖的拓?fù)渑判?31T4T2T1T3T1T2T4Read(x)Read(y)Write(y)Write(x)Write(x)Write(z)Read(z)Write(x)一個(gè)并發(fā)調(diào)度ST3T1T2T3T4T3T2T4T2T4132有3個(gè)事務(wù)的一個(gè)調(diào)度R3(B)r1(A)w3(B)r2(B)r2(A)w2(B)r1(B)w1(A)該調(diào)度是沖突可串行化的么?練習(xí)1交換r1(A)和w3(B)r2(B)r2(A)w2(B)R3(B)w3(B)r2(B)r2(A)w2(B)r1(A)r1(B)w1(A)等價(jià)于串行調(diào)度T3T2T1133有3個(gè)事務(wù)的一個(gè)調(diào)度R3(B)r1(A)w3(B)r2(B)r2(A)w2(B)r1(B)w1(A)該調(diào)度是沖突可串行化的么?練習(xí)1(1)找出沖突操作R2(A)和w1(A)R3(B)和w2(B)T2T1T3T2W3(B)和r2(B)W3(B)和w2(B)W3(B)和r1(B)W2(B)和r1(B)T3T2T3T2T3T1T2T1134(2)得到并發(fā)操作的前趨圖T2T1T3(3)由前趨圖判斷是否可串行化,若可串行化,給出等價(jià)的串行化調(diào)度T3T2T1135沖突可串行化調(diào)度是可串行化調(diào)度的充分條件,不是必要條件!調(diào)度L1=W1(Y)W1(X)W2(Y)W2(X)W3(X)調(diào)度L2=W1(Y)W2(Y)W2(X)W1(X)W3(X)136設(shè)T1,T2是如下的三個(gè)事務(wù)

T1:A:=A*B+2 T2:B:=A*2設(shè)A的初值為2,B的初值為4:(1)若這兩個(gè)事務(wù)允許并發(fā)執(zhí)行,討論他們可能實(shí)施的調(diào)度,請(qǐng)一一列舉并求每種調(diào)度的結(jié)果(2)試給出一個(gè)可串行化調(diào)度,并給出執(zhí)行結(jié)果練習(xí)2137(1)所有的串行調(diào)度習(xí)題2T1T2T2T1T1:A:=A*B+2T2:B:=A*2設(shè)A的初值為2,B的初值為4A=10,B=20A=10,B=4(2)試給出一個(gè)可串行化調(diào)度,并給出執(zhí)行結(jié)果138139調(diào)整次序注意:(1)不能改變沖突操作的先后次序(2)同一事務(wù)的讀寫先后順序不能改變T1T2:R1(A)R1(B)W1(A)R2(A)W2(B)無(wú)法改變順序T2T1:R2(A)W2(B)R1(A)R1(B)W1(A)可串行化調(diào)度:R2(A)

R1(A)W2(B)R1(B)W1(A)6.3.3封鎖技術(shù)封鎖:是實(shí)現(xiàn)并發(fā)控制的一種機(jī)制。所謂封鎖,就是事務(wù)T在對(duì)某個(gè)數(shù)據(jù)對(duì)象操作之前,先對(duì)其加鎖。排它鎖(X鎖,寫鎖)若事務(wù)T對(duì)數(shù)據(jù)對(duì)象A加上排它鎖,則只允許T讀取和修改A,不允許其他任何事務(wù)再對(duì)A加鎖,直到T釋放A上的X鎖。2.共享鎖(S鎖,讀鎖)若事務(wù)T對(duì)數(shù)據(jù)對(duì)象A加上共享鎖,則事務(wù)T可以讀A但不能修改A,其他事務(wù)只能對(duì)A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。。1403.封鎖協(xié)議封鎖級(jí)別加鎖放鎖一級(jí)事務(wù)T在修改數(shù)據(jù)A之前必須先對(duì)其加X鎖事務(wù)結(jié)束才釋放X鎖二級(jí)一級(jí)封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)A之前必須對(duì)其加S鎖讀完后即可釋放S鎖三級(jí)一級(jí)封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)A之前必須對(duì)其加S鎖事務(wù)結(jié)束才釋放S鎖141(1)一級(jí)封鎖協(xié)議T1T2XlockA讀A=16XlockA等待等待A←A-1等待寫回A=15等待commit等待UnlockAXlockA讀A=15A←A-1寫回A=14commitUnlockAT1T2讀A=16A←A-1寫回A=15A←A-1讀A=16寫回A=15(a)丟失修改T1T2讀A=50求和=150讀B=100B=B*2(b)不可重復(fù)讀讀B=100寫回B=200讀A=50求和=250讀B=200ROOLBACKT1T2讀C=100寫回C=200讀C=200D=C+5(c)讀臟數(shù)據(jù)寫回D=205C←C*2解決丟失修改問題142(2)二級(jí)封鎖協(xié)議ROOLBACKT1T2讀C=100寫回C=200讀C=200D=C+5(c)讀臟數(shù)據(jù)寫回D=205C←C*2解決丟失修改和讀臟數(shù)據(jù)問題ROOLBACKT1T2XlockCSlockC等待等待等待等待SlockCcommitUnlockC讀C=100寫回C=200C←C*2UnlockC讀C=200D=C+5寫回D=205T1T2讀A=50求和=150讀B=100B=B*2(b)不可重復(fù)讀讀B=100寫回B=200讀A=50求和=250讀B=200143(3)三級(jí)封鎖協(xié)議T1T2讀A=50求和=150讀B=100B=B*2(b)不可重復(fù)讀讀B=100寫回B=200讀A=50求和=250讀B=200解決三種并發(fā)操作引起的問題讀A=50讀B=100求和=150讀A=50求和=150讀B=100T1T2SlockASlockBXlockB等待等待等待等待等待等待等待XlockB讀B=100B=B*2寫回B=200commitUnlockBUlockBUlockA144

操作級(jí)別X鎖S鎖一致性保證操作結(jié)束釋放事務(wù)結(jié)束釋放操作結(jié)束釋放事務(wù)結(jié)束釋放不丟失修改不讀臟數(shù)據(jù)可重復(fù)讀一級(jí)封鎖協(xié)議二級(jí)封鎖協(xié)議三級(jí)封鎖協(xié)議√√√√√√√√√√√145兩階段協(xié)議(Two-PhaseLockingProtocol,2PL協(xié)議)某一事務(wù)在對(duì)數(shù)據(jù)進(jìn)行讀、寫之前,先要申請(qǐng)并獲得對(duì)該數(shù)據(jù)的封鎖。在釋放一個(gè)封鎖之后,事務(wù)不再申請(qǐng)和獲得任何其它封鎖。T1:Lock(A)Lock(B)Lock(C)Unlock(B)Ulock(C)Ulock(A)T1:Lock(A)ULock(A)Lock(B)lock(C)Ulock(C)Ulock(B)√ⅹ擴(kuò)展階段釋放階段(4)兩階段協(xié)議146定理6.1:任何一個(gè)遵從2PL協(xié)議的調(diào)度都是可串行化的。說(shuō)明1:事務(wù)遵守2PL協(xié)議是可串行化調(diào)度的充分條件,而不是必要條件。說(shuō)明2:事務(wù)遵守2PL協(xié)議可達(dá)到第3級(jí)封鎖協(xié)議的要求。147T1:Slock(X),Read(X),Ulock(X)T2:Slock(Y),Read(Y),Unlock(Y),Xlock(X),Write(X),Unlock(X)T3:Xlock(Y),Write(Y),Unlock(Y)T1T2Slock(X)Read(X)Ulock(X)Slock(Y)Read(Y)Ulock(Y)Slock(X)Write(X)Ulock(X)Slock(Y)write(Y)Ulock(Y)T3T1T2T3T1T2T3不遵守2PL協(xié)議的可串行化調(diào)度148149設(shè)T1,T2是如下的三個(gè)事務(wù)

T1:A:=A*B+2 T2:B:=A*2基于兩段鎖協(xié)議,試給出一個(gè)可串行化調(diào)度設(shè)A的初值為2,B的初值為4A=10B=4T1T2Ulock(A)Slock(A)Read(A)Ulock(A)Xlock(B)Write(B)Ulock(B)Slock(B)等待等待Slock(B)Read(B)Xlock(A)Write(A)Ulock(B)等待6.3.4封鎖導(dǎo)致的問題1.死鎖:事務(wù)T1已經(jīng)封鎖A,而又想申請(qǐng)封鎖B,而此時(shí)事務(wù)T2已經(jīng)封鎖B,而又想申請(qǐng)封鎖A,這樣,T1等待T2釋放B,而T2等待T1釋放A,使得T1、T2均無(wú)法繼續(xù)執(zhí)行下去,這種情況稱為死鎖。LOCKA…LOCKB…LOCKB…LOCKA…等待等待T1T2150死鎖檢測(cè)*超時(shí)法:事務(wù)的等待超過(guò)了規(guī)定的時(shí)限*等待圖法:檢測(cè)等待圖中是否有回路存在。死鎖預(yù)防和死鎖檢測(cè)1512.活鎖:事務(wù)T1,T2申請(qǐng)數(shù)據(jù)對(duì)象A,T1先給A加鎖,T1釋放A上的鎖后,事務(wù)T3又給A加鎖,T2等待,這樣,A始終被其他事務(wù)封鎖,事務(wù)T2可能長(zhǎng)時(shí)間得不到A,這種情況稱為活鎖。避免活鎖的方法:采用先來(lái)先服務(wù)的原則。152153本次課程總結(jié)1.并發(fā)操作引發(fā)的問題2.調(diào)度及其可串行化3.封鎖技術(shù)上次課程總結(jié)1.并發(fā)操作引發(fā)的問題2.調(diào)度及其可串行化3.封鎖技術(shù)1546.4數(shù)據(jù)庫(kù)安全性數(shù)據(jù)庫(kù)的安全性:就是防止非法用戶使用數(shù)據(jù)庫(kù)造成數(shù)據(jù)泄露、更改或破壞,以達(dá)到保護(hù)數(shù)據(jù)庫(kù)的目的。

網(wǎng)絡(luò)安全服務(wù)器安全

用戶安全

應(yīng)用程序與服務(wù)安全

數(shù)據(jù)安全計(jì)算機(jī)系統(tǒng)的安全性問題155計(jì)算機(jī)系統(tǒng)安全標(biāo)準(zhǔn)TCSEC標(biāo)準(zhǔn)CC標(biāo)準(zhǔn)安全級(jí)別

定義A1驗(yàn)證設(shè)計(jì)(VerifiedDesign)B3安全域(SecurityDomains)B2結(jié)構(gòu)化保護(hù)(StructuralProtection)B1標(biāo)記安全保護(hù)(LabeledSecurityProtection)C2受控的存取保護(hù)(ControlledAccessProtection)C1自主安全保護(hù)(DiscretionarySecurityProtection)D最小保護(hù)(MinimalProtection)可靠性逐漸增高向下兼容156B2以上的系統(tǒng)還處于理論研究階段應(yīng)用多限于一些特殊的部門,如軍隊(duì)等美國(guó)正在大力發(fā)展安全產(chǎn)品,試圖將目前僅限于少數(shù)領(lǐng)域應(yīng)用的B2安全級(jí)別下放到商業(yè)應(yīng)用中來(lái),并逐步成為新的商業(yè)標(biāo)準(zhǔn)157計(jì)算機(jī)系統(tǒng)中,安全措施是一級(jí)一級(jí)層層設(shè)置158

用戶標(biāo)識(shí)與鑒別

存取控制

視圖機(jī)制

數(shù)據(jù)加密

審計(jì)數(shù)據(jù)庫(kù)系統(tǒng)的安全措施1596.4.1用戶標(biāo)識(shí)與鑒別用戶標(biāo)識(shí)與鑒別是系統(tǒng)提供的最外層安全保護(hù)措施。

DBA為數(shù)據(jù)庫(kù)用戶創(chuàng)建用戶賬號(hào)和密碼。用戶名和口令易被竊取可以重復(fù)多次。1601.存取控制機(jī)制組成定義用戶權(quán)限合法權(quán)限檢查6.4.2存取控制2.用戶權(quán)限定義和合法權(quán)檢查機(jī)制一起組成了DBMS

的安全子系統(tǒng)161常用存取控制方法自主存取控制(DiscretionaryAccessControl,簡(jiǎn)稱DAC)C2級(jí)靈活強(qiáng)制存取控制(MandatoryAccessControl,簡(jiǎn)稱MAC)B1級(jí)嚴(yán)格162自主存取控制定義存取權(quán)限稱為授權(quán)

通過(guò)SQL的GRANT

語(yǔ)句和REVOKE語(yǔ)句實(shí)現(xiàn)

完成的功能:定義用戶可以在哪些數(shù)據(jù)庫(kù)對(duì)

象上進(jìn)行哪些類型的操作163GRANTGRANT語(yǔ)句的一般格式:

GRANT<權(quán)限>[,<權(quán)限>]...[ON<對(duì)象類型><對(duì)象名>]TO<用戶>[,<用戶>]...[WITHGRANTOPTION];將對(duì)指定操作對(duì)象的指定操作權(quán)限授予指定的用戶164發(fā)出GRANTDBA

數(shù)據(jù)庫(kù)對(duì)象擁有者

擁有此權(quán)限的用戶接受權(quán)限的用戶一個(gè)或多個(gè)具體用戶PUBLIC(全體用戶)165不允許循環(huán)授權(quán)!166[例1]把查詢Student表權(quán)限授給用戶U1GRANTSELECTONTABLEStudentTOU1;[例2]把對(duì)Student表和Course表的全部權(quán)限授予用戶U2和U3GRANTALLPRIVILIGESONTABLEStudent,CourseTOU2,U3;167[例3]把對(duì)表SC的查詢權(quán)限授予所有用戶GRANTSELECTONTABLESCTOPUBLIC;[例4]把查詢Student表和修改學(xué)生學(xué)號(hào)的權(quán)限授給用戶U4GRANTUPDATE(Sno),SELECTONTABLEStudentTOU4;168

[例5]把對(duì)表SC的INSERT權(quán)限授予U5用戶,并允許他再將此權(quán)限授予其他用戶

GRANTINSERTONTABLESCTOU5

WITHGRANTOPTION;169執(zhí)行例5后,U5不僅擁有了對(duì)表SC的INSERT權(quán)限,還可以傳播此權(quán)限:

[例6]

GRANTINSERTONTABLESCTOU6WITHGRANTOPTION;同樣,U6還可以將此權(quán)限授予U7:

[例7]GRANTINSERTONTABLESCTOU7;

170授權(quán)用戶名被授權(quán)用戶名數(shù)據(jù)庫(kù)對(duì)象名允許的操作類型能否轉(zhuǎn)授權(quán)DBAU1關(guān)系StudentSELECT不能DBAU2關(guān)系StudentALL不能DBAU2關(guān)系CourseALL不能DBAU3關(guān)系StudentALL不能DBAU3關(guān)系CourseALL不能DBAPUBLIC關(guān)系SCSELECT不能DBAU4關(guān)系StudentSELECT不能DBAU4屬性列Student.SnoUPDATE不能DBAU5關(guān)系SCINSERT能U5U6關(guān)系SCINSERT能U6U7關(guān)系SCINSERT不能171授予的權(quán)限可以由DBA或其他授權(quán)者用REVOKE語(yǔ)句收回REVOKEREVOKE語(yǔ)句的一般格式為:

REVOKE<權(quán)限>[,<權(quán)限>]...[ON<對(duì)象類型><對(duì)象名>]FROM<用戶>[,<用戶>]...;172[例8]把用戶U4修改學(xué)生學(xué)號(hào)的權(quán)限收回

REVOKEUPDATE(Sno)ONTABLEStudentFROMU4;[例9]收回所有用戶對(duì)表SC的查詢權(quán)限REVOKESELECTONTABLESCFROMPUBLIC;173[例10]把用戶U5對(duì)SC表的INSERT權(quán)限收回

REVOKEINSERTONTABLESCFROMU5CASCADE;174授權(quán)用戶名被授權(quán)用戶名數(shù)據(jù)庫(kù)對(duì)象名允許的操作類型能否轉(zhuǎn)授權(quán)DBAU1關(guān)系StudentSELECT不能DBAU2關(guān)系StudentALL不能DBAU2關(guān)系CourseALL不能DBAU3關(guān)系StudentALL不能DBAU3關(guān)系CourseALL不能DBAU4關(guān)系StudentSELECT不能175數(shù)據(jù)庫(kù)角色:被命名的一組與數(shù)據(jù)庫(kù)操作相關(guān)的權(quán)限角色是權(quán)限的集合可以為一組具有相同權(quán)限的用戶創(chuàng)建一個(gè)角色簡(jiǎn)化授權(quán)的過(guò)程176角色的創(chuàng)建

CREATEROLE<角色名>給角色授權(quán)

GRANT<權(quán)限>[,<權(quán)限>]…ON<對(duì)象類型>對(duì)象名

TO<角色>[,<角色>]…177將一個(gè)角色授予其他的角色或用戶

GRANT<角色1>[,<角色2>]…TO<受權(quán)者1>[,<受權(quán)者2>]…[WITHADMINOPTION]角色權(quán)限的收回

REVOKE<權(quán)限>[,<權(quán)限>]…ON<對(duì)象類型><對(duì)象名>FROM<角色>[,<角色>]…178[例11]通過(guò)角色來(lái)實(shí)現(xiàn)將一組權(quán)限授予一個(gè)用戶。

1.首先創(chuàng)建一個(gè)角色R1CREATEROLER1

2.然后使用GRANT語(yǔ)句,使角色R1擁有Student表的SELECT、UPDATE、INSERT權(quán)限

GRANTSELECT,UPDATE,INSERTONTABLEStudentTOR1;1793.將這個(gè)角色授予王平,張明,趙玲。使他們具有角色R1所包含的全部權(quán)限

GRANTR1TO王平,張明,趙玲;4.可以一次性通過(guò)R1來(lái)回收王平的這3個(gè)權(quán)限

REVOKER1FROM王平;180強(qiáng)制存取控制強(qiáng)制存取控制(MAC)保證更高程度的安全性適用于對(duì)數(shù)據(jù)有嚴(yán)格而固定密級(jí)分類的部門主體客體label

絕密

機(jī)密

可信公開1816.4.3視圖機(jī)制CREATEVIEWCS_STUDENTASSELECT*FROMSTDUENTWHERESDEPT=‘計(jì)算機(jī)’;GRANTSELECTONCS_STUDENTTO王平;182審計(jì)功能把用戶對(duì)數(shù)據(jù)庫(kù)的操作自動(dòng)記錄下來(lái)放入審計(jì)日志(Audit

Log),有時(shí)也被稱為審計(jì)跟蹤。6.4.4審計(jì)DBA利用審計(jì)日志找出非法存取數(shù)據(jù)的人、時(shí)間和

內(nèi)容183XMSJCZ用戶甲02-10-622:32:55進(jìn)入系統(tǒng)用戶甲02-10-820:33:07錄入數(shù)據(jù)用戶乙02-10-98:50:42進(jìn)入系統(tǒng)用戶乙02-10-1111:53:13修改密碼用戶丁02-10-137:19:29進(jìn)入系統(tǒng)用戶丁02-10-288:00:53查詢數(shù)據(jù)6.4.4審計(jì)184[例15]對(duì)修改SC表結(jié)構(gòu)或修改SC表數(shù)據(jù)的操作進(jìn)行審計(jì)

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論