數(shù)據(jù)庫系統(tǒng)及應(yīng)用ch6-DB-design_第1頁
數(shù)據(jù)庫系統(tǒng)及應(yīng)用ch6-DB-design_第2頁
數(shù)據(jù)庫系統(tǒng)及應(yīng)用ch6-DB-design_第3頁
數(shù)據(jù)庫系統(tǒng)及應(yīng)用ch6-DB-design_第4頁
數(shù)據(jù)庫系統(tǒng)及應(yīng)用ch6-DB-design_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第六章數(shù)據(jù)庫設(shè)計1本章講述從軟件工程角度如何系統(tǒng)地剖析數(shù)據(jù)庫設(shè)計的全過程。重點介紹數(shù)據(jù)庫設(shè)計的基本方法和數(shù)據(jù)庫設(shè)計的基本步驟,掌握如何從實際應(yīng)用需求出發(fā)逐步構(gòu)建以數(shù)據(jù)庫為基礎(chǔ)的應(yīng)用管理系統(tǒng)的全過程?!?/p>

本章內(nèi)容:數(shù)據(jù)庫設(shè)計概述需求分析概念結(jié)構(gòu)設(shè)計邏輯結(jié)構(gòu)設(shè)計物理結(jié)構(gòu)設(shè)計數(shù)據(jù)庫的實施數(shù)據(jù)庫的運(yùn)行和維護(hù)6.1

數(shù)據(jù)庫設(shè)計概述2數(shù)據(jù)庫設(shè)計屬于軟件工程的范疇,面向一個使用數(shù)據(jù)庫的應(yīng)用系統(tǒng),利用已有的DBMS,設(shè)計出有效、合理地數(shù)據(jù)庫是數(shù)據(jù)庫應(yīng)用系統(tǒng)的主要內(nèi)容。·

本節(jié)內(nèi)容:什么是數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計的特點數(shù)據(jù)庫的設(shè)計方法數(shù)據(jù)庫設(shè)計的基本步驟6.1

數(shù)據(jù)庫設(shè)計概述3數(shù)據(jù)庫設(shè)計是指在給定的應(yīng)用環(huán)境下,構(gòu)造最優(yōu)的數(shù)據(jù)庫邏輯結(jié)構(gòu)和物理結(jié)構(gòu),建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲數(shù)據(jù),滿足各種用戶的應(yīng)用需求(信息要求和處理要求)。在數(shù)據(jù)庫領(lǐng)域內(nèi),常常把使用數(shù)據(jù)庫的各類系統(tǒng)統(tǒng)稱為數(shù)據(jù)庫應(yīng)用系統(tǒng)。數(shù)據(jù)庫是信息系統(tǒng)的核心和基礎(chǔ)把信息系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來提供存儲、維護(hù)、檢索數(shù)據(jù)的功能

使信息系統(tǒng)可以方便、及時、準(zhǔn)確地從數(shù)據(jù)庫中獲得所需的信息數(shù)據(jù)庫是信息系統(tǒng)的各個部分能否緊密地結(jié)合在一起以及如何結(jié)合的關(guān)鍵所在數(shù)據(jù)庫設(shè)計是信息系統(tǒng)開發(fā)和建設(shè)的重要組成部分6.1

數(shù)據(jù)庫設(shè)計概述4評判數(shù)據(jù)庫設(shè)計好壞的一般準(zhǔn)則:完備性一致性規(guī)范性6.1.1數(shù)據(jù)庫設(shè)計方法簡述·

結(jié)構(gòu)和行為分離的設(shè)計方法56.1.1數(shù)據(jù)庫設(shè)計方法簡述6將軟件工程的思想和方法引入到數(shù)據(jù)庫的設(shè)計之中,其基本思想采用過程迭代和逐步求精,分為以下幾種方法:新奧爾良(New

Orleans)方法將數(shù)據(jù)庫設(shè)計分為四個階段:需求分析、概念設(shè)計、邏輯設(shè)計和物理設(shè)計。S.B.Yao方法將數(shù)據(jù)庫設(shè)計分為五個步驟:需求分析、模式構(gòu)成、模式匯總、模式重構(gòu)、模式分析和物理數(shù)據(jù)庫設(shè)計。I.R.Palmer方法把數(shù)據(jù)庫設(shè)計當(dāng)成一步接一步的過程,并采用一些輔助手段實現(xiàn)每一過程。階段性設(shè)計方法E-R模型的數(shù)據(jù)庫設(shè)計方法,基于3NF的設(shè)計方法,基于抽象語法規(guī)范的設(shè)計方法等?!?/p>

計算機(jī)輔助設(shè)計ORACLE Designer

2000、SYBASE

PowerDesigner等。6.1.2數(shù)據(jù)庫設(shè)計的基本步驟7參照軟件工程的思想,將數(shù)據(jù)庫系統(tǒng)的生命周期(Lifecycle)劃分為以下六個階段:需求分析全面、準(zhǔn)確了解用戶的實際要求。概念結(jié)構(gòu)設(shè)計設(shè)計數(shù)據(jù)庫的概念結(jié)構(gòu),即通過對用戶需求進(jìn)行綜合、歸納與抽象,形成一個獨(dú)立于具體DBMS的概念模型。邏輯結(jié)構(gòu)設(shè)計邏輯結(jié)構(gòu)設(shè)計是將抽象的概念結(jié)構(gòu)轉(zhuǎn)換為所選用的

DBMS支持的數(shù)據(jù)模型,并對其進(jìn)行優(yōu)化。數(shù)據(jù)庫物理設(shè)計數(shù)據(jù)庫物理設(shè)計是對為邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)和存取方法)。6.1.2數(shù)據(jù)庫設(shè)計的基本步驟8數(shù)據(jù)庫實施在數(shù)據(jù)庫實施階段,設(shè)計人員運(yùn)用DBMS提供的數(shù)據(jù)語言及其宿主語言,根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進(jìn)行試運(yùn)行。數(shù)據(jù)庫運(yùn)行和維護(hù)數(shù)據(jù)庫應(yīng)用系統(tǒng)經(jīng)過試運(yùn)行后即可投入正式運(yùn)行。在數(shù)

據(jù)庫系統(tǒng)運(yùn)行過程中必須不斷地對其進(jìn)行評價、調(diào)整與修改。以上七個階段構(gòu)成了數(shù)據(jù)庫系統(tǒng)的整個生命周期,直到該系統(tǒng)被新的系統(tǒng)所替代或消亡為止。嚴(yán)格地說,從第二階段需求分析開始到第五階段數(shù)據(jù)庫的物理設(shè)計為數(shù)據(jù)庫的設(shè)計階段。從需求分析到數(shù)據(jù)庫的運(yùn)行和維護(hù)階段都存在著反復(fù),即當(dāng)后一階段發(fā)現(xiàn)問題,需要回溯到之前的某一階段進(jìn)行修改,再繼續(xù)沿著這一過程向前進(jìn)行。6.1.2數(shù)據(jù)庫設(shè)計的基本步驟96.2需求分析10需求分析就是收集用戶的各項業(yè)務(wù)活動及活動中所使用的數(shù)據(jù),并由系統(tǒng)分析人員按照分析方法加以總結(jié)和提煉,正確地描述用戶使用中的業(yè)務(wù)信息?!?/p>

本節(jié)內(nèi)容需求分析的方法數(shù)據(jù)流圖數(shù)據(jù)字典6.2需求分析11需求分析就是通過詳細(xì)調(diào)查現(xiàn)實世界要處理的對象(組織、部門、企業(yè)等),充分了解原系統(tǒng)(手工系統(tǒng)或計算機(jī)系統(tǒng))工作概況,明確用戶的各種需求,并在此基礎(chǔ)上確定新系統(tǒng)的功能。新系統(tǒng)必須充分考慮今后可能的擴(kuò)充和改變,不能僅僅按當(dāng)前應(yīng)用需求來設(shè)計數(shù)據(jù)庫。需求分析的重點是調(diào)查、收集與分析用戶在數(shù)據(jù)管理中的信息要求、處理要求、安全性與完整性要求。信息要求:用戶需要從數(shù)據(jù)庫中獲得信息的內(nèi)容與性質(zhì),由此導(dǎo)出數(shù)據(jù)要求,即在數(shù)據(jù)庫中需要存儲哪些數(shù)據(jù)。處理要求:用戶對處理功能的要求,對處理的響應(yīng)時間的要求,對處理方式的要求(批處理/聯(lián)機(jī)處理)。安全性與完整性要求:數(shù)據(jù)自身的約束,數(shù)據(jù)之間的約束關(guān)系,以及數(shù)據(jù)的敏感分析,訪問及數(shù)據(jù)數(shù)據(jù)的用戶級別等。6.2.3

需求信息方法12調(diào)查系統(tǒng)的組織結(jié)構(gòu)熟悉系統(tǒng)主要業(yè)務(wù)確定用戶需求進(jìn)行系統(tǒng)劃分6.2.2數(shù)據(jù)流圖數(shù)據(jù)流圖表達(dá)系統(tǒng)中數(shù)據(jù)與處理的關(guān)系數(shù)據(jù)流圖的基本元素包括:圓圈:表示一次處理過程有向線:表示數(shù)據(jù)流雙線段:表示存儲的信息136.2.3數(shù)據(jù)字典14·

數(shù)據(jù)字典數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,通常以表格的形式詳細(xì)地描述業(yè)務(wù)處理過程中用到的各類數(shù)據(jù)。數(shù)據(jù)字典的內(nèi)容包括數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲、處理過程等五部分。①數(shù)據(jù)項:數(shù)據(jù)項是數(shù)據(jù)的最小單位,對數(shù)據(jù)項的描述一般包括項名、含義說明、別名、類型、長度、取值范圍及該項與其它項的邏輯關(guān)系。常以表格的形式給出。――――――――――――――――――――――――――――數(shù)據(jù)項:

職工號含義說明:唯一標(biāo)識一個員工別名:類型:整型長度:字符型8取值范圍:00000000~99999999取值含義:前四位表示工作年份,第5、6位表示所在部門,最后兩位表示報到序號。如2003年參加工作,分在采購部(假定編號為02),第一位報到的職工編號為:20030201。――――――――――――――――――――――――――――6.2.3

需求信息的分析15②數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)結(jié)構(gòu)是若干數(shù)據(jù)項的有意義的集合,通常代表某一具體的事物。包括數(shù)據(jù)結(jié)構(gòu)名、含義、組成成份等。――――――――――――――――――――――――――――數(shù)據(jù)結(jié)構(gòu):含義說明:組成:會場定義了一個描述會場的信息結(jié)構(gòu)會場編號,會場名稱,會場地點,可容納人數(shù)――――――――――――――――――――――――――――6.2.3

需求信息的分析16③數(shù)據(jù)流:數(shù)據(jù)流可以是數(shù)據(jù)項,也可以是數(shù)據(jù)結(jié)構(gòu),表示某一次處理的輸入/輸出數(shù)據(jù)。包括數(shù)據(jù)流名,說明,數(shù)據(jù)來源,數(shù)據(jù)去向,及需要的數(shù)據(jù)項或數(shù)據(jù)結(jié)構(gòu)。――――――――――――――――――――――――――――數(shù)據(jù)流:說明:排會信息表示會議和會場的安排情況數(shù)據(jù)流來源:會議表、會場表數(shù)據(jù)流去向:會議安排表組成:平均流量:會議編號+會場編號100條/天高峰期流量:500條/天――――――――――――――――――――――――――――6.2.3

需求信息的分析17④數(shù)據(jù)存儲:加工中需要存儲的數(shù)據(jù)。包括數(shù)據(jù)存儲名、說明、輸入數(shù)據(jù)流、輸出數(shù)據(jù)流、組成成份、數(shù)據(jù)量、存取方式、存取頻度等。――――――――――――――――――――――――――――數(shù)據(jù)存儲:說明:會議安排表記錄會議和會場的安排情況流入數(shù)據(jù)流:會議信息,會場信息流出數(shù)據(jù)流:會場安排信息組成:

會議編號、會場編號、排會時間、會議開始時間、會議結(jié)束時間、會議應(yīng)到人數(shù)數(shù)據(jù)量:存取方式:平均每年5000條隨機(jī)存取――――――――――――――――――――――――――――6.2.3

需求信息的分析18⑤處理過程:加工處理過程定義和說明。包括處理名稱、輸入數(shù)據(jù)、輸出數(shù)據(jù)、數(shù)據(jù)存儲、響應(yīng)時間等。――――――――――――――――――――――――――――處理過程:會議預(yù)約完成會議預(yù)約處理部門號,與會人數(shù),開會日期,會議開始時間,會議說明:輸入:結(jié)束時間輸出:處理:會議預(yù)約信息首先判斷會場是否能夠滿足與會人數(shù)要求,其次對會議預(yù)約進(jìn)行處理,檢測排會情況,判斷是否能直接滿足排會要求,如能直接滿足則進(jìn)入排會處理模塊;如不能直接滿足,則根據(jù)算法給出用戶一個或多個推薦時間進(jìn)行選擇,選擇通過后進(jìn)入排會處理模塊,處理時間不超過0.5秒。――――――――――――――――――――――――――――6.2需求分析19需求分析總結(jié):需求分析的目的在于了解用戶對新系統(tǒng)的要求,即用戶需要新系統(tǒng)來做些什么;需求調(diào)查就是收集用戶各項業(yè)務(wù)活動中所使用的各類數(shù)據(jù)的樣本,以及了角用戶各項業(yè)務(wù)處理的流程及其對數(shù)據(jù)的使用情況;需求信息的分析是分析人員根據(jù)收集的用戶需求、業(yè)務(wù)處理流程及各類數(shù)據(jù),進(jìn)行分析處理,以數(shù)據(jù)流圖和數(shù)據(jù)字典的方式加工整理,即以專業(yè)人員的語言來描述企業(yè)的數(shù)據(jù)及業(yè)務(wù);需求分析的結(jié)果應(yīng)能正確地描述企業(yè)現(xiàn)實信息,分析人員的分析結(jié)果應(yīng)得到用戶的認(rèn)可,數(shù)據(jù)流圖和數(shù)據(jù)字典被認(rèn)為是分析人員和用戶交流的語言;在此我們重點解決的是數(shù)據(jù)分析,只占整個系統(tǒng)分析的一部分,分析是設(shè)計的基礎(chǔ)。6.3

概念結(jié)構(gòu)設(shè)計20概念結(jié)構(gòu)設(shè)計是信息世界的表述方式,即使用一種方法對現(xiàn)實世界進(jìn)行抽象地描述,概念結(jié)構(gòu)設(shè)計建立在需求分析階段所得到的數(shù)據(jù)流圖和數(shù)據(jù)字典的基礎(chǔ)上,為計算機(jī)存儲數(shù)據(jù)作準(zhǔn)備?!?/p>

本節(jié)內(nèi)容:概念結(jié)構(gòu)設(shè)計方法視圖設(shè)計視圖集成EE-R模型6.3.1概念結(jié)構(gòu)設(shè)計方法21概念結(jié)構(gòu)設(shè)計就是將現(xiàn)實事物以不依賴于任何數(shù)據(jù)模型的方式加以描述,目的在于以符號化的形式正確地反映現(xiàn)實事物及事務(wù)與事物間的聯(lián)系。概念結(jié)構(gòu)設(shè)計的內(nèi)容就是建立概念模型。對概念模型有如下要求:概念模型是對現(xiàn)實世界的抽象和概括,它應(yīng)真實、充分地反映現(xiàn)實世界中的事務(wù)和事物之間的聯(lián)系;概念模型應(yīng)簡潔、明晰、獨(dú)立自于機(jī)器、容易理解,方便數(shù)據(jù)庫設(shè)計人員與用戶交換意見,合用戶能積極參與數(shù)據(jù)庫的設(shè)計;概念模型應(yīng)易于變動。當(dāng)應(yīng)用環(huán)境和應(yīng)用要求改變時,容易對概念模型修改和擴(kuò)充;概念模型應(yīng)容易向關(guān)系、層次或網(wǎng)狀數(shù)據(jù)模型轉(zhuǎn)換。描述概念模型的最常用方法是E-R圖方法。6.3.1概念結(jié)構(gòu)設(shè)計方法·

集中式模式設(shè)計法226.3.1概念結(jié)構(gòu)設(shè)計方法·

視圖集成法236.3.2視圖設(shè)計24設(shè)計局部視圖的步驟選擇局部應(yīng)用恰當(dāng)選擇各級數(shù)據(jù)流圖中的某一層的某一部分業(yè)務(wù),準(zhǔn)備設(shè)計局部E-R圖。通常就選擇數(shù)據(jù)流圖的中間級,這一級實體描述準(zhǔn)確,實體間的聯(lián)系也比較清晰,如需求分析階段的采購業(yè)務(wù)流程圖。設(shè)計分E-R圖對于每一局部應(yīng)用,其所用到的數(shù)據(jù)都應(yīng)該收集在數(shù)據(jù)字典中了,依照該局部應(yīng)用的數(shù)據(jù)流圖,從數(shù)據(jù)字典中提取出數(shù)據(jù),使用抽象機(jī)制,確定局部應(yīng)用中的實體、實體的屬性、實體標(biāo)識符及實體間的聯(lián)系及其類型。6.3.2視圖設(shè)計針對會議考勤系統(tǒng),介紹如何分析設(shè)計系統(tǒng)概念模型:256.3.2視圖設(shè)計26每個實體的屬性如下:會場(會場編號,會場名稱,會場大小,會場地址,備注)部門(部門編號,部門名稱,上級部門編號,聯(lián)系電話,聯(lián)系地址)員工(員工編號,姓名,性別,職稱,職務(wù),上級主管)會議(會議編號,會議議題,主辦部門,與會人數(shù),開會日期,開始時間,結(jié)束時間)6.3.3視圖集成局部的E-R圖又稱為局部視圖,將多個局部E-R圖合并成一張完整的E-R圖的過程稱為視圖集成。視圖集成的方法:選擇兩個具有相同實體的E-R圖,通過相同實體將兩個E-R圖連結(jié)起來構(gòu)成一個E-R圖,然后再與其它E-R圖連結(jié)直到將所有的局部E-R圖全部連結(jié)成一個E-R圖,稱為全局E-R圖。合并:主要解決各局部E-R圖之間的沖突,將各局部E-R圖合并起來生成初步E-R圖。修改和重構(gòu):主要是消去不必要的冗余,生成基本E-R圖。276.3.3視圖集成28

視圖集成的作用:一方面可以完整地描述企業(yè)的信息及其聯(lián)系,另一方面在集成過程中可以解決沖突和消除冗余。分E-R圖之間的三類沖突:屬性沖突:同一屬性可能會存在于不同的分E-R圖,由于設(shè)計人員不同或是出發(fā)點不同,對屬性的類型、取值范圍、數(shù)據(jù)單位等可能會不一致,這些屬性對就的數(shù)據(jù)將來只能以

一種形式在計算機(jī)中存儲,這就需要在設(shè)計階段進(jìn)行統(tǒng)一。命名沖突:相同意義的屬性,在不同的分E-R圖上有著不同的命名,或是名稱相同的屬性在不同的分E-R圖中代表著不同的意義,這些也要進(jìn)行統(tǒng)一。結(jié)構(gòu)沖突:同一實體在不同的分E-R圖中有不同的屬性同一對象在某一分E-R圖中被抽象為實體而在另一分E-R圖中又被抽象為屬性,需要統(tǒng)一。6.3.4

EE-R模型29

Teorey等人對E-R模型進(jìn)行了適當(dāng)擴(kuò)充,提出了EE-R模型(Extend

Entity-Relationship

Model,簡稱擴(kuò)充的模型)。EE-R模型保持了E-R模型簡明清晰的特點,同時又彌補(bǔ)了

E-R模型的一些不足,成為目前一種較為流行的概念模型設(shè)計工具。實體集的可嵌套性實體集之間的可繼承性EE-R圖6.4

邏輯結(jié)構(gòu)設(shè)計30邏輯結(jié)構(gòu)設(shè)計是對數(shù)據(jù)在計算機(jī)中的組織形式的設(shè)計,即依照DBMS支持的數(shù)據(jù)模型,設(shè)計用戶數(shù)據(jù)的組織形式(模式設(shè)

計)。同樣,邏輯結(jié)構(gòu)設(shè)計也是建立在概念結(jié)構(gòu)設(shè)計的基礎(chǔ)上,為下一步數(shù)據(jù)的存儲設(shè)計(物理設(shè)計)作準(zhǔn)備?!?/p>

本節(jié)內(nèi)容:E-R圖向關(guān)系模型的轉(zhuǎn)換EE-R圖向關(guān)系模型的轉(zhuǎn)換數(shù)據(jù)模型的優(yōu)化用戶模式的設(shè)計6.4邏輯結(jié)構(gòu)設(shè)計的任務(wù)和步驟31邏輯結(jié)構(gòu)設(shè)計的任務(wù)概念結(jié)構(gòu)是獨(dú)立于任何一種數(shù)據(jù)模型的信息結(jié)構(gòu),是從設(shè)計者的角度和方法來分析問題。概念模型設(shè)計其實是一個理解過程,主要是讓設(shè)計者能夠清楚的認(rèn)識系統(tǒng)的結(jié)構(gòu)。具體選用的模型應(yīng)該是規(guī)劃階段所確定的DBMS支持的模型,在現(xiàn)階段無疑應(yīng)該是關(guān)系模型。具體地講,邏輯結(jié)構(gòu)設(shè)計的任務(wù)就是將E-R圖轉(zhuǎn)換為關(guān)系模式。隨后應(yīng)該進(jìn)行的工作是對關(guān)系模式的規(guī)范化和優(yōu)化,以及面向應(yīng)用程序設(shè)計的用戶子模式設(shè)計。邏輯結(jié)構(gòu)設(shè)計的步驟將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型或面向?qū)ο髷?shù)據(jù)模型將轉(zhuǎn)化來的數(shù)據(jù)模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)化

(3)對數(shù)據(jù)模型進(jìn)行優(yōu)化。6.4邏輯結(jié)構(gòu)設(shè)計的任務(wù)和步驟邏輯結(jié)構(gòu)設(shè)計過程示意圖:326.4.1

E-R圖向關(guān)系模型的轉(zhuǎn)換聯(lián)系的轉(zhuǎn)換一個1:1

聯(lián)系可以轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式,也可以與任意一端對應(yīng)的關(guān)系模式合并。①轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式

關(guān)系的屬性:與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性關(guān)系的候選碼:每個實體的碼均是該關(guān)系的候選碼·轉(zhuǎn)換成如下關(guān)系模式:班級(班號,系別,班主任,入學(xué)時間班長(學(xué)號,姓名,性別,年齡)班級-班長(班號,學(xué)號,任期)注:嚴(yán)格地講,如果一個班組在不同時期有不同的班長,應(yīng)是1:n聯(lián)系,此處只為舉例。班級班級-班長班長111:1聯(lián)系任期346.4.2

E-R圖向關(guān)系模型的轉(zhuǎn)換聯(lián)系的轉(zhuǎn)換一個1:1

聯(lián)系可以轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式,也可以與任意一端對應(yīng)的關(guān)系模式合并。①轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式②與某一端對應(yīng)的關(guān)系模式合并

合并后關(guān)系的屬性:加入另一關(guān)系的碼和聯(lián)系本身的屬性合并后關(guān)系的碼:不變班級班級-班長班長111:1聯(lián)系任期·轉(zhuǎn)換成如下關(guān)系模式:班級(班號,系別,班主任,入學(xué)時間,班長學(xué)號,班長任期)班長(學(xué)號,姓名,性別,年齡) 或班級(班號,系別,班主任,入學(xué)時間)班長(學(xué)號,姓名,性別,年齡,班級,任期)356.4.1E-R圖向關(guān)系模型的轉(zhuǎn)換聯(lián)系的轉(zhuǎn)換一個1:n

聯(lián)系可以轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式,也可以與

n端對應(yīng)的關(guān)系模式合并。①轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式

關(guān)系的屬性:與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性關(guān)系的碼:n端實體的碼班級成員1n學(xué)生1:n聯(lián)系轉(zhuǎn)換成如下關(guān)系模式:班級(班號,系別,班主任,入學(xué)時間)學(xué)生(學(xué)號,姓名,性別,年齡)成員(學(xué)號,班號)366.4.1

E-R圖向關(guān)系模型的轉(zhuǎn)換聯(lián)系的轉(zhuǎn)換一個1:n

聯(lián)系可以轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式,也可以與

n端對應(yīng)的關(guān)系模式合并。①轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式②與n端對應(yīng)的關(guān)系模式合并

合并后關(guān)系的屬性:在n端關(guān)系中加入1端關(guān)系的碼和聯(lián)系本身的屬性合并后關(guān)系的碼:不變班級成員學(xué)生137n1:n聯(lián)系·轉(zhuǎn)換成如下關(guān)系模式:班級(班號,系別,班主任,入學(xué)時間)學(xué)生(學(xué)號,姓名,性別,年齡,班號) 注:實際使用中通常采用這種方法以減少關(guān)系模式,因為多一個關(guān)系模式就意味著查詢過程中要進(jìn)行連接運(yùn)算,而降低查詢的效率。6.4.1

E-R圖向關(guān)系模型的轉(zhuǎn)換聯(lián)系的轉(zhuǎn)換一個m:n聯(lián)系轉(zhuǎn)換為一個關(guān)系模式。

關(guān)系的屬性:與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性關(guān)系的碼:各實體碼的組合課程選修學(xué)生m:n聯(lián)系mn成績轉(zhuǎn)換成如下關(guān)系模式:課程(課程號,課程名,學(xué)分,先修課號)學(xué)生(學(xué)號,姓名,性別,年齡)選修(學(xué)號,課程號,成績)386.4.3關(guān)系模式的優(yōu)化39現(xiàn)階段由概念模型到數(shù)據(jù)模型的過程通常就是將E-R圖轉(zhuǎn)換為關(guān)系模式,而經(jīng)過這一轉(zhuǎn)換過程之后得到的一組關(guān)系模式未必是最“好”的,還需要經(jīng)過進(jìn)一步的優(yōu)化。關(guān)系模式的優(yōu)化應(yīng)該從以下幾方面實施:關(guān)系模式規(guī)范化規(guī)范化的目的在于解決更新異常和數(shù)據(jù)冗余,應(yīng)該分解關(guān)系模式使其達(dá)到3NF或BCNF,對于存在MVD的關(guān)系模式應(yīng)達(dá)到4NF。對關(guān)系模式進(jìn)行必要的合并對具有關(guān)聯(lián)的關(guān)系模式進(jìn)行合并,通常這類關(guān)系模式會經(jīng)常被查詢而頻繁地進(jìn)行連接運(yùn)算而降低查詢的效率,合并后的關(guān)系模式可能會帶來冗余(存在部分依賴或傳遞依賴),但這樣做還是值得的。6.4.2

EE-R圖向關(guān)系模型的轉(zhuǎn)化·

嵌套的轉(zhuǎn)化·

繼承的轉(zhuǎn)化406.4.3關(guān)系模式的優(yōu)化41數(shù)據(jù)模型的優(yōu)化方法一般包含以下步驟:確定數(shù)據(jù)依賴。根據(jù)需求分析中數(shù)據(jù)項之間的依賴關(guān)系,分別寫出轉(zhuǎn)化后關(guān)系與關(guān)系之間的依賴及關(guān)系內(nèi)部屬性之間的數(shù)據(jù)依賴。對關(guān)系模式之間的數(shù)據(jù)依賴進(jìn)行極小化處理即消除冗余的聯(lián)系。按照關(guān)系數(shù)據(jù)庫基本理論對關(guān)系模型進(jìn)行分析,考察是否存在部分函數(shù)依賴、傳遞函數(shù)依賴、多值依賴等對關(guān)系模式進(jìn)行規(guī)范化處理。對關(guān)系模式進(jìn)行必要的合并和分解,提高數(shù)據(jù)操作的效率和存儲空間的利用率。常用的分解方法是水平分解和垂直分解6.4.4用戶模式設(shè)計42用戶模式即外模式,是面向不同用戶的應(yīng)用程序所訪問的數(shù)據(jù)視圖。為什么要引入外模式?實現(xiàn)數(shù)據(jù)的邏輯獨(dú)立性使用更符合用戶習(xí)慣的別名由于在視圖集成階段消除了同一實體的命名差異,但并不符合用戶的使用習(xí)慣或約定成俗的稱謂,如負(fù)責(zé)學(xué)籍管理的用戶習(xí)慣于稱教師模式的職工號為教師編號,而負(fù)責(zé)人事管理的用戶則習(xí)慣于稱為職工編號,因此可以定義面向?qū)W籍管理的視圖,將職工號定義為別名“教師編號”。當(dāng)然,在企業(yè)進(jìn)行信息化的過程中應(yīng)當(dāng)積極推進(jìn)標(biāo)準(zhǔn)化,并不能一味地遷就用戶,而應(yīng)該向標(biāo)準(zhǔn)化靠攏。定義外模式可以實現(xiàn)數(shù)據(jù)的安全性(參照視圖優(yōu)點一節(jié))簡化用戶對系統(tǒng)的使用如果某些局部應(yīng)用中經(jīng)常要使用某些很復(fù)雜的查詢,為了方便用戶,可以將這些復(fù)雜查詢定義為視圖。6.4.4用戶模式設(shè)計設(shè)計主要考慮以下幾個方面盡量使用符合用戶習(xí)慣的命名針對不同級別的用戶定義不同的外模式,以滿足系統(tǒng)對安全性的要求簡化用戶對系統(tǒng)的使用436.4.5邏輯結(jié)構(gòu)的生成和圖示44邏輯結(jié)構(gòu)設(shè)計總結(jié):邏輯結(jié)構(gòu)設(shè)計與擬使用的DBMS相關(guān);邏輯結(jié)構(gòu)設(shè)計首先應(yīng)該將概念模型轉(zhuǎn)換為指定DBMS所支持的數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu);對RDBMS而言,應(yīng)將E-R圖轉(zhuǎn)換為關(guān)系模式;對關(guān)系模式進(jìn)行規(guī)范化和優(yōu)化,以實現(xiàn)系統(tǒng)的正確性,提高系統(tǒng)的性能;與數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計同期進(jìn)行的是應(yīng)用系統(tǒng)的模塊設(shè)計,應(yīng)考慮不同模塊所使用的數(shù)據(jù)的特點,對關(guān)系模式進(jìn)行必要的分解,以提高各應(yīng)用模塊的執(zhí)行效率;進(jìn)行外模式設(shè)計也是為應(yīng)用系統(tǒng)各模塊而服務(wù)。6.5

數(shù)據(jù)庫的物理設(shè)計45數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)與存取方法稱為數(shù)據(jù)庫的物理結(jié)構(gòu),它依賴于給定的計算機(jī)系統(tǒng)。為一個給定的邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)的過程,就是數(shù)據(jù)庫的物理設(shè)計?!?/p>

本節(jié)內(nèi)容:索引設(shè)計聚簇存取方法的選擇確定數(shù)據(jù)庫的存儲結(jié)構(gòu)物理結(jié)構(gòu)設(shè)計的評價6.5數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計46數(shù)據(jù)庫物理設(shè)計的任務(wù)選擇合適的存儲結(jié)構(gòu)和存儲路徑,也就是設(shè)計數(shù)據(jù)庫的內(nèi)模式(物理模式)。設(shè)計目標(biāo)提高數(shù)據(jù)庫的性能,主要是對用戶應(yīng)用性能的滿足有效地利用存儲空間6.5.1索引設(shè)計47創(chuàng)建索引原則主碼和外碼上一般都應(yīng)創(chuàng)建索引,這有利于實施實體完整性和參照完整性。在檢索參照完整性約束時,增刪主碼時,需要檢查外碼,若建立了索引可以加快這種查找。唯一索引保證索引列中的使用數(shù)據(jù)是唯一的,不含有重復(fù)值。因此,唯一索引一般創(chuàng)建在關(guān)系的主碼上或候選碼上。也就是說,只可在強(qiáng)制實體完整性的列上創(chuàng)建唯一索引。復(fù)合索引指定多個列為關(guān)鍵字值。當(dāng)兩個或多個列最適合作為搜索關(guān)鍵字時,則可以考慮創(chuàng)建復(fù)合索引。例如,在選課關(guān)系中,由學(xué)號和課程號組成的關(guān)鍵字上就適合創(chuàng)建復(fù)合索引。如果一個或多個列在連接操作中經(jīng)常出現(xiàn),則考慮在該列上創(chuàng)建索引在經(jīng)常出現(xiàn)查詢條件中的列上創(chuàng)建索引。6.5.2

聚簇存取方法的選擇486.5.3確定數(shù)據(jù)庫的存儲結(jié)構(gòu)49數(shù)據(jù)庫系統(tǒng)是多用戶共享的系統(tǒng),對同一個關(guān)系要建立多條存取路徑才能滿足多用戶的多種應(yīng)用要求。確定數(shù)據(jù)庫的存儲結(jié)構(gòu)主要是指確定數(shù)據(jù)的存放位置和結(jié)構(gòu),包括關(guān)系的確定、索引的選擇、聚簇的使用、日志和備份的使用,還有系統(tǒng)配置的設(shè)定等6.5.3

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論