數(shù)據(jù)庫(kù)原理與應(yīng)用第六章_第1頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用第六章_第2頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用第六章_第3頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用第六章_第4頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用第六章_第5頁(yè)
已閱讀5頁(yè),還剩88頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第六章 數(shù)據(jù)庫(kù)設(shè)計(jì)第六章 數(shù)據(jù)庫(kù)設(shè)計(jì)6.1 數(shù)據(jù)庫(kù)設(shè)計(jì)概述6.2 需求分析6.3 概念結(jié)構(gòu)設(shè)計(jì)6.4 邏輯結(jié)構(gòu)設(shè)計(jì)6.5 數(shù)據(jù)庫(kù)的物理設(shè)計(jì)6.6 數(shù)據(jù)庫(kù)實(shí)施6.7 數(shù)據(jù)庫(kù)運(yùn)行與維護(hù)6.8 小結(jié)6.1數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟(1) 目前主要采用以邏輯數(shù)據(jù)庫(kù)設(shè)計(jì)和物理數(shù)據(jù)庫(kù)設(shè)計(jì)為核心的規(guī)范設(shè)計(jì)方法。邏輯數(shù)據(jù)庫(kù)設(shè)計(jì)-設(shè)計(jì)全局邏輯結(jié)構(gòu)和每個(gè)用戶(hù)的局部邏輯結(jié)構(gòu),將概念結(jié)構(gòu)轉(zhuǎn)換為某個(gè)DBMS支持的數(shù)據(jù)模型并優(yōu)化物理數(shù)據(jù)庫(kù)設(shè)計(jì)-為邏輯數(shù)據(jù)模型選一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu),設(shè)計(jì)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)、存取方法及其他實(shí)現(xiàn)細(xì)節(jié)6.1數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟(2) 選定參加設(shè)計(jì)的人員:數(shù)據(jù)庫(kù)分析設(shè)計(jì)人員-核心,自始至終用戶(hù)-重要,需求

2、分析(頭),運(yùn)行和維護(hù)(尾)程序員-編制程序操作員-準(zhǔn)備軟硬件環(huán)境數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程圖需求分析 概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)實(shí)施數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)物理設(shè)計(jì)6.2需求分析6.2.1任務(wù) 重點(diǎn)是調(diào)查、收集與分析用戶(hù)在數(shù)據(jù)管理中的信息要求、處理要求、安全性和完整性要求信息要求-用戶(hù)需從庫(kù)中獲得信息的內(nèi)容和性質(zhì),存儲(chǔ)哪些信息于庫(kù)中處理要求-要求完成的功能、響應(yīng)時(shí)間、方式是批處理還是聯(lián)機(jī)處理6.2需求分析6.2.1任務(wù) 困難在:用戶(hù)缺少計(jì)算機(jī)知識(shí),無(wú)法準(zhǔn)確表達(dá)自己的需求,需求往往不斷變化設(shè)計(jì)人員缺乏用戶(hù)的專(zhuān)業(yè)知識(shí),不易理解甚至誤解用戶(hù)的需求。軟硬件技術(shù)的出現(xiàn)會(huì)使用戶(hù)需求發(fā)生變化6.2需求分析6.2.2

3、需求分析的方法(1) 調(diào)查與初步分析用戶(hù)需求需四步:調(diào)查組織機(jī)構(gòu)情況:部門(mén)組成、職責(zé),為分析信息流程做準(zhǔn)備調(diào)查各部門(mén)業(yè)務(wù)活動(dòng)情況:輸入和使用什么數(shù)據(jù),如何加工處理這些數(shù)據(jù),輸出什么信息、到哪里、輸出結(jié)果的格式協(xié)助用戶(hù)明確對(duì)新系統(tǒng)的要求確定新系統(tǒng)邊界,哪些是計(jì)算機(jī)完成的功能6.2需求分析6.2.2需求分析的方法(2) 常用的調(diào)查方法:跟班作業(yè)開(kāi)調(diào)查會(huì)-用戶(hù)彼此啟發(fā)請(qǐng)專(zhuān)人介紹詢(xún)問(wèn)-專(zhuān)人設(shè)計(jì)調(diào)查表請(qǐng)用戶(hù)填寫(xiě)查閱記錄-與原系統(tǒng)有關(guān)的數(shù)據(jù)記錄6.2需求分析 分析和表達(dá)用戶(hù)需求的方法主要包括:自頂向下(SA)和自底向上方法自頂向下(SA)方法從最上層的系統(tǒng)組織機(jī)構(gòu)入手,采用逐層分解的方式分析系統(tǒng),并用數(shù)據(jù)

4、流圖和數(shù)據(jù)字典描述系統(tǒng)用SA方法做需求分析,設(shè)計(jì)人員需要把任何一個(gè)系統(tǒng)都抽象為如下形式 數(shù)據(jù)存儲(chǔ) 數(shù)據(jù)流 數(shù)據(jù)流 數(shù)據(jù)來(lái)源 處理 數(shù)據(jù)輸出 然后將處理功能分解,不停分解,直至系統(tǒng)工作過(guò)程被表達(dá)清楚;數(shù)據(jù)也逐級(jí)分解,形成若干層次的數(shù)據(jù)流圖。 數(shù)據(jù)流圖表達(dá)了數(shù)據(jù)和處理過(guò)程的關(guān)系數(shù)據(jù)借助數(shù)據(jù)字典描述處理過(guò)程的處理邏輯借助判定表或判定樹(shù)來(lái)描述實(shí)例:開(kāi)發(fā)學(xué)校管理系統(tǒng) 高層數(shù)據(jù)流圖管理信息系統(tǒng)教師管理子系統(tǒng)后勤管理子系統(tǒng)學(xué)生管理子系統(tǒng)課程管理學(xué)籍管理實(shí)例(續(xù)) 學(xué)生管理子系統(tǒng)的主要功能:學(xué)籍管理和課程管理。包括:學(xué)生報(bào)到、入學(xué)、畢業(yè)、上課情況管理。通過(guò)詳細(xì)的信息流程分析和數(shù)據(jù)收集后,生成該系統(tǒng)的數(shù)據(jù)流圖。

5、見(jiàn)188-1896.3概念結(jié)構(gòu)設(shè)計(jì) 6.3.1概念結(jié)構(gòu)設(shè)計(jì)方法與步驟 概念結(jié)構(gòu)設(shè)計(jì)-將需求分析得到的用戶(hù)需求抽象為概念模型的過(guò)程 概念結(jié)構(gòu)獨(dú)立于數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu),也獨(dú)立于DBMS 四類(lèi)方法: 自頂向下 自底向上經(jīng)常采用。即自頂向下進(jìn)行需求分析,再自底向上設(shè)計(jì)概念結(jié)構(gòu)。 逐步擴(kuò)張-先定義核心概念,然后向外擴(kuò)充 混合策略6.3.2分E-R圖設(shè)計(jì)(1) 在多層數(shù)據(jù)流圖中選擇一個(gè)適當(dāng)層次的數(shù)據(jù)流圖,讓每一部分對(duì)應(yīng)一個(gè)局部應(yīng)用,因?yàn)橹袑拥臄?shù)據(jù)流圖能較好地反映系統(tǒng)中各局部應(yīng)用的子系統(tǒng)組成,所以一般作為分E-R圖的依據(jù) 參照數(shù)據(jù)流圖,標(biāo)定局部應(yīng)用中的實(shí)體、實(shí)體的屬性、標(biāo)識(shí)實(shí)體的碼,確定實(shí)體之間的聯(lián)系及其類(lèi)型。

6、6.3.2設(shè)計(jì)分E-R圖(2) 現(xiàn)實(shí)世界中一組具有共同特性和行為的對(duì)象可抽象為一個(gè)實(shí)體,例,張三、李斯、王五可抽象為學(xué)生實(shí)體 對(duì)象的組成成分可抽象為實(shí)體的屬性,例,學(xué)號(hào)、姓名、年級(jí)等可抽象為學(xué)生實(shí)體的屬性,其中學(xué)號(hào)為標(biāo)識(shí)實(shí)體的碼 實(shí)體與屬性很難劃分界限。例,系是學(xué)生實(shí)體的屬性,在需要考慮系主任、教師人數(shù)、學(xué)生人數(shù)、辦公地點(diǎn)時(shí)就需要作為實(shí)體了。6.3.2設(shè)計(jì)分E-R圖(3) 屬性和實(shí)體區(qū)別的原則:屬性不能再具有需要描述的性質(zhì)。即為不可再分的數(shù)據(jù)項(xiàng)屬性不能與其他實(shí)體具有聯(lián)系。聯(lián)系只能發(fā)生在實(shí)體之間。能做屬性對(duì)待盡量作屬性?!奥毞Q(chēng)”分別作為實(shí)體和屬性教師教師職稱(chēng)住房姓名職稱(chēng)性別性別姓名評(píng)定分配學(xué)籍管

7、理分E-R圖草圖班主任班級(jí)檔案材料學(xué)生宿舍教室管理指導(dǎo)歸檔住宿組成上課對(duì)學(xué)籍管理E-R草圖調(diào)整 一般,性別應(yīng)作為學(xué)生實(shí)體的屬性,本應(yīng)用中由于宿舍分配與性別有關(guān),依據(jù)準(zhǔn)則2-屬性不能與其他實(shí)體有聯(lián)系,性別應(yīng)作為實(shí)體對(duì)待 數(shù)據(jù)存儲(chǔ)“學(xué)生登記表”由手工完成,有用部分轉(zhuǎn)入學(xué)生檔案材料中,因此這里不必作為實(shí)體。學(xué)籍管理分E-R圖草圖調(diào)整后班主任班級(jí)檔案材料學(xué)生宿舍教室管理指導(dǎo)歸檔住宿組成上課性別擁有課程管理的E-R圖教室課程教師教科書(shū)學(xué)生開(kāi)設(shè)教學(xué)講授選修成績(jī)6.3.3E-R圖的集成(1) 不同設(shè)計(jì)人員進(jìn)行局部視圖設(shè)計(jì),這導(dǎo)致各分E-R圖之間存在許多不一致的地方,因此著力消除沖突是主要工作與關(guān)鍵所在 1.

8、屬性沖突-討論協(xié)商解決屬性域沖突:屬性值的類(lèi)型、取值范圍、取值集合不同屬性取值單位沖突6.3.3E-R圖的集成(2) 2.命名沖突-討論協(xié)商解決同名異義異名同義 3.結(jié)構(gòu)沖突同一對(duì)象在不同應(yīng)用中具有不同的抽象-例,“課程”在某一局部應(yīng)用中當(dāng)作實(shí)體,另一局部應(yīng)用中當(dāng)作屬性解決辦法:使同一對(duì)象有相同的抽象,遵守前面的屬性原則6.3.3E-R圖的集成(3) 3.結(jié)構(gòu)沖突同一實(shí)體在不同E-R圖中所包含的屬性不完全相同,或排列次序不完全相同解決辦法:取分 E-R圖的并集,再適當(dāng)設(shè)計(jì)屬性的次序?qū)嶓w間聯(lián)系在不同視圖中呈現(xiàn)不同類(lèi)型解決辦法:根據(jù)應(yīng)用的語(yǔ)義對(duì)實(shí)體聯(lián)系的類(lèi)型進(jìn)行綜合或調(diào)整學(xué)籍管理與課程管理E-R圖

9、的合并 存在的沖突:1.班主任也屬于教師,兩圖存在異名同義,統(tǒng)一為教師實(shí)體,屬性構(gòu)成為:教師職工號(hào),姓名,性別,職稱(chēng),優(yōu)秀班主任否2.班主任改為教師后,教室和學(xué)生之間的聯(lián)系為兩類(lèi),因?yàn)椤爸笇?dǎo)”包含在“教學(xué)”中,所以綜合為教學(xué)聯(lián)系3.性別在學(xué)籍管理為實(shí)體,在課程管理中為屬性,合并后只能作為實(shí)體,否則無(wú)法與宿舍實(shí)體發(fā)生聯(lián)系4.二者中學(xué)生實(shí)體屬性組成及次序都存在差異,應(yīng)將所有屬性綜合并重新調(diào)整次序。6.3.3E-R圖的修改與重構(gòu)(1) 修改與重構(gòu)-消除不必要的冗余信息,生成基本E-R圖 冗余數(shù)據(jù)-可由基本數(shù)據(jù)導(dǎo)出 冗余的實(shí)體間聯(lián)系-可由其它聯(lián)系導(dǎo)出冗余信息易破壞數(shù)據(jù)庫(kù)的完整性,給數(shù)據(jù)維護(hù)增加困難,但

10、有時(shí)為了提高某些應(yīng)用的效率不得不以冗余信息為代價(jià)。6.3.3E-R圖的修改與重構(gòu)(2) 消除冗余主要采用分析方法,例如教師工資單里的實(shí)發(fā)工資,可以推算 消除冗余還可采用規(guī)范化理論例, 學(xué)生實(shí)體的年齡可由生日推算,屬冗余數(shù)據(jù) 教室實(shí)體與班級(jí)實(shí)體的上課聯(lián)系可由教室與課程間的開(kāi)設(shè)聯(lián)系、課程與學(xué)生間的選修聯(lián)系、學(xué)生與班級(jí)之間的組成聯(lián)系推導(dǎo)出來(lái),屬于冗余聯(lián)系 學(xué)生實(shí)體中平均成績(jī)可由選修聯(lián)系中的成績(jī)屬性推算,但經(jīng)常查詢(xún),為維護(hù)數(shù)據(jù)一致性,應(yīng)設(shè)置觸發(fā)器整體概念結(jié)構(gòu)(總E-RT圖)必須驗(yàn)證 整體概念結(jié)構(gòu)內(nèi)部必須具有一致性 整體概念結(jié)構(gòu)能準(zhǔn)確反映原來(lái)的每個(gè)視圖結(jié)構(gòu) 整體概念結(jié)構(gòu)能滿(mǎn)足需求分析階段所確定的所有要求

11、6.4 邏輯結(jié)構(gòu)設(shè)計(jì) 邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù) 概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ) 為了能夠用某一DBMS實(shí)現(xiàn)用戶(hù)需求,還必須將概念結(jié)構(gòu)進(jìn)一步轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)模型,這正是數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)所要完成的任務(wù)。6.4 邏輯結(jié)構(gòu)設(shè)計(jì) 邏輯結(jié)構(gòu)設(shè)計(jì)的步驟 將概念結(jié)構(gòu)轉(zhuǎn)化為一般的關(guān)系、網(wǎng)狀、層次模型 將轉(zhuǎn)化來(lái)的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換 對(duì)數(shù)據(jù)模型進(jìn)行優(yōu)化 邏輯結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)轉(zhuǎn)化為轉(zhuǎn)化為一般數(shù)一般數(shù)據(jù)模型據(jù)模型轉(zhuǎn)化為特轉(zhuǎn)化為特定定DBMS支持下的支持下的據(jù)模型據(jù)模型 優(yōu)化模優(yōu)化模型型概念結(jié)概念結(jié)構(gòu)設(shè)計(jì)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)物理設(shè)計(jì)物理設(shè)計(jì)基本基本E-R圖圖轉(zhuǎn)換規(guī)轉(zhuǎn)換規(guī)則則特定特定DB

12、MS的的特點(diǎn)與限特點(diǎn)與限制制優(yōu)化方優(yōu)化方法如規(guī)法如規(guī)范化理范化理論論邏輯邏輯模型模型6.4 邏輯結(jié)構(gòu)設(shè)計(jì)6.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換6.4.2 向特定DBMS規(guī)定的模型進(jìn)行轉(zhuǎn)換6.4.3 數(shù)據(jù)模型的優(yōu)化6.4.4 設(shè)計(jì)用戶(hù)子模式6.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換 轉(zhuǎn)換內(nèi)容 轉(zhuǎn)換原則E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 轉(zhuǎn)換內(nèi)容 E-R圖由實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系三個(gè)要素組成 關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合 將E-R圖轉(zhuǎn)換為關(guān)系模型:將實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系轉(zhuǎn)化為關(guān)系模式。E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 轉(zhuǎn)換原則 一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式。:實(shí)體型的屬性:實(shí)體型

13、的碼例,學(xué)生實(shí)體可以轉(zhuǎn)換為如下關(guān)系模式:學(xué)生(學(xué)號(hào),姓名,出生日期,所在系, 年級(jí),平均成績(jī)) 性別、宿舍、班級(jí)、檔案材料、教師、課程、教室、教科書(shū)等實(shí)體都分別轉(zhuǎn)換為一個(gè)關(guān)系模式。 學(xué)生學(xué)生 學(xué)號(hào)學(xué)號(hào)出生出生日期日期年級(jí)年級(jí)所在系所在系 平均平均成績(jī)成績(jī)姓名姓名E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。:與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性:各實(shí)體碼的組合例,“選修”聯(lián)系是一個(gè)m:n聯(lián)系,可以將它轉(zhuǎn)換為如下關(guān)系模式,其中學(xué)號(hào)與課程號(hào)為關(guān)系的組合碼:選修(學(xué)號(hào),課程號(hào),成績(jī)) 學(xué)生 選修 成績(jī) 課程學(xué)生的碼為學(xué)號(hào),課程的碼為課程號(hào),選修的屬性為成績(jī)E-R圖向關(guān)系模型

14、的轉(zhuǎn)換(續(xù)) 一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端對(duì)應(yīng)的關(guān)系模式合并。 1) 轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式:與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性:n端實(shí)體的碼E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端對(duì)應(yīng)的關(guān)系模式合并。 2) 與n端對(duì)應(yīng)的關(guān)系模式合并:在n端關(guān)系中加入1端關(guān)系的碼和聯(lián)系本身的屬性:不變 可以減少系統(tǒng)中的關(guān)系個(gè)數(shù),一般情況下更傾向于采用這種方法E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))例,“組成”聯(lián)系為1:n聯(lián)系。將其轉(zhuǎn)換為關(guān)系模式的兩種方法: 1)使其成為一個(gè)獨(dú)立的關(guān)系模式:組成(學(xué)號(hào),班級(jí)號(hào))(見(jiàn)下頁(yè)) 2)將其與學(xué)生

15、關(guān)系模式合并:學(xué)生(學(xué)號(hào),姓名,出生日期,所在系, 年級(jí),班級(jí)號(hào),平均成績(jī)) 班級(jí) 1 組成 n 學(xué)生學(xué)生的碼為學(xué)號(hào),班級(jí)的碼為班級(jí)號(hào),選修的屬性為成績(jī)E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端對(duì)應(yīng)的關(guān)系模式合并。 1) 轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式:與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性:每個(gè)實(shí)體的碼均是該關(guān)系的候選碼E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端對(duì)應(yīng)的關(guān)系模式合并。 2) 與某一端對(duì)應(yīng)的關(guān)系模式合并:加入對(duì)應(yīng)關(guān)系的碼和聯(lián)系本身的屬性:不變E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))例,“管理”

16、聯(lián)系為1:1聯(lián)系,可以有三種轉(zhuǎn)換方法:(1)轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式: 管理(職工號(hào),班級(jí)號(hào)) 或管理(職工號(hào),班級(jí)號(hào))(2)“管理”聯(lián)系與班級(jí)關(guān)系模式合并,則只需在班級(jí)關(guān)系中加入教師關(guān)系的碼,即職工號(hào): 班級(jí)(班級(jí)號(hào),學(xué)生人數(shù),職工號(hào))(3)“管理”聯(lián)系與教師關(guān)系模式合并,則只需在教師關(guān)系中加入班級(jí)關(guān)系的碼,即班級(jí)號(hào):教師(職工號(hào),姓名,性別,職稱(chēng),班級(jí)號(hào), 是否為優(yōu)秀班主任)E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))注意:u從理論上講,1:1聯(lián)系可以與任意一端對(duì)應(yīng)的關(guān)系模式合并。u但在一些情況下,與不同的關(guān)系模式合并效率會(huì)大不一樣。因此究竟應(yīng)該與哪端的關(guān)系模式合并需要依應(yīng)用的具體情況而定。u由于連接操

17、作是最費(fèi)時(shí)的操作,所以一般應(yīng)以盡量減少連接操作為目標(biāo)。 例如,如果經(jīng)常要查詢(xún)某個(gè)班級(jí)的班主任姓名,則將管理聯(lián)系與教師關(guān)系合并更好些。E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 三個(gè)或三個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。:與該多元聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性:各實(shí)體碼的組合例,“講授”聯(lián)系是一個(gè)三元聯(lián)系,可以將它轉(zhuǎn)換為如下關(guān)系模式,其中課程號(hào)、職工號(hào)和書(shū)號(hào)為關(guān)系的組合碼:講授(課程號(hào),職工號(hào),書(shū)號(hào))E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 同一實(shí)體集的實(shí)體間的聯(lián)系,即自聯(lián)系,也可按上述1:1、1:n和m:n三種情況分別處理。例,如果教師實(shí)體集內(nèi)部存在領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)的1:n自聯(lián)系,我們可以將該聯(lián)系與

18、教師實(shí)體合并,這時(shí)主碼職工號(hào)將多次出現(xiàn),但作用不同,可用不同的屬性名加以區(qū)分:教師:職工號(hào),姓名,性別,職稱(chēng),系主任E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 具有相同碼的關(guān)系模式可合并。 目的:減少系統(tǒng)中的關(guān)系個(gè)數(shù)。 合并方法:將其中一個(gè)關(guān)系模式的全部屬性加入到另一個(gè)關(guān)系模式中,然后去掉其中的同義屬性(可能同名也可能不同名),并適當(dāng)調(diào)整屬性的次序。E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))例,“擁有”關(guān)系模式:擁有(學(xué)號(hào),性別)與學(xué)生關(guān)系模式: 學(xué)生(學(xué)號(hào),姓名,出生日期,所在系,年級(jí), 班級(jí)號(hào),平均成績(jī))都以學(xué)號(hào)為碼,可以將它們合并為一個(gè)關(guān)系模式:學(xué)生(學(xué)號(hào),姓名,性別,出生日期,所在系, 年級(jí),班級(jí)號(hào),平均成績(jī)

19、)E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))實(shí)例 按照上述七條原則,學(xué)生管理子系統(tǒng)中的18個(gè)實(shí)體和聯(lián)系可以轉(zhuǎn)換為下列關(guān)系模型: 學(xué)生(學(xué)號(hào),姓名,性別,出生日期,所在系, 年級(jí),班級(jí)號(hào),平均成績(jī),檔案號(hào))性別(性別,宿舍樓) 宿舍(宿舍編號(hào),地址,性別,人數(shù))班級(jí)(班級(jí)號(hào),學(xué)生人數(shù)) 教師(職工號(hào),姓名,性別,職稱(chēng),班級(jí)號(hào), 是否為優(yōu)秀班主任)E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 教學(xué)(職工號(hào),學(xué)號(hào))課程(課程號(hào),課程名,學(xué)分,教室號(hào))選修(學(xué)號(hào),課程號(hào),成績(jī))教科書(shū)(書(shū)號(hào),書(shū)名,價(jià)錢(qián))教室(教室編號(hào),地址,容量)講授(課程號(hào),教師號(hào),書(shū)號(hào))檔案材料(檔案號(hào),)E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 該關(guān)系模型由12個(gè)

20、關(guān)系模式組成。其中: 學(xué)生關(guān)系模式包含了“擁有”聯(lián)系、“組成”聯(lián)系、“歸檔”聯(lián)系所對(duì)應(yīng)的關(guān)系模式 教師關(guān)系模式包含了“管理”聯(lián)系所對(duì)應(yīng)的關(guān)系模式; 宿舍關(guān)系模式包含了“住宿”聯(lián)系所對(duì)應(yīng)的關(guān)系模式; 課程關(guān)系模式包含了“開(kāi)設(shè)”聯(lián)系所對(duì)應(yīng)的關(guān)系模式。6.4 邏輯結(jié)構(gòu)設(shè)計(jì)6.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換6.4.2 向特定DBMS規(guī)定的模型進(jìn)行轉(zhuǎn)換6.4.3 數(shù)據(jù)模型的優(yōu)化6.4.4 設(shè)計(jì)用戶(hù)子模式6.4.2 向特定DBMS規(guī)定的模型進(jìn)行轉(zhuǎn)換 一般的數(shù)據(jù)模型還需要向特定DBMS規(guī)定的模型進(jìn)行轉(zhuǎn)換。 轉(zhuǎn)換的主要依據(jù)是所選用的DBMS的功能及限制。沒(méi)有通用規(guī)則。 對(duì)于關(guān)系模型來(lái)說(shuō),這種轉(zhuǎn)換通常都比較簡(jiǎn)

21、單。6.4 邏輯結(jié)構(gòu)設(shè)計(jì)6.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換6.4.2 向特定DBMS規(guī)定的模型進(jìn)行轉(zhuǎn)換6.4.3 數(shù)據(jù)模型的優(yōu)化6.4.4 設(shè)計(jì)用戶(hù)子模式6.4.3 數(shù)據(jù)模型的優(yōu)化 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的結(jié)果不是唯一的。 得到初步數(shù)據(jù)模型后,還應(yīng)該適當(dāng)?shù)匦薷?、調(diào)整數(shù)據(jù)模型的結(jié)構(gòu),以進(jìn)一步提高數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的性能,這就是數(shù)據(jù)模型的優(yōu)化。 關(guān)系數(shù)據(jù)模型的優(yōu)化通常以規(guī)范化理論為指導(dǎo)。數(shù)據(jù)模型的優(yōu)化(續(xù))優(yōu)化數(shù)據(jù)模型的方法 確定數(shù)據(jù)依賴(lài)按需求分析階段所得到的語(yǔ)義,分別寫(xiě)出每個(gè)關(guān)系模式內(nèi)部各屬性之間的數(shù)據(jù)依賴(lài)以及不同關(guān)系模式屬性之間數(shù)據(jù)依賴(lài)。數(shù)據(jù)模型的優(yōu)化(續(xù))例,課程關(guān)系模式內(nèi)部存在下列數(shù)據(jù)依賴(lài): 課程號(hào)

22、課程名 課程號(hào)學(xué)分 課程號(hào)教室號(hào) 選修關(guān)系模式中存在下列數(shù)據(jù)依賴(lài): (學(xué)號(hào),課程號(hào))成績(jī)數(shù)據(jù)模型的優(yōu)化(續(xù))學(xué)生關(guān)系模式中存在下列數(shù)據(jù)依賴(lài): 學(xué)號(hào)姓名 學(xué)號(hào)性別 學(xué)號(hào)出生日期 學(xué)號(hào)所在系 學(xué)號(hào)年級(jí) 學(xué)號(hào)班級(jí)號(hào) 學(xué)號(hào)平均成績(jī) 學(xué)號(hào)檔案號(hào)數(shù)據(jù)模型的優(yōu)化(續(xù))學(xué)生關(guān)系模式的學(xué)號(hào)與選修關(guān)系模式的學(xué)號(hào)之間存在數(shù)據(jù)依賴(lài): 學(xué)生.學(xué)號(hào)選修.學(xué)號(hào)數(shù)據(jù)模型的優(yōu)化(續(xù)) 對(duì)于各個(gè)關(guān)系模式之間的數(shù)據(jù)依賴(lài)進(jìn)行極小化處理,消除冗余的聯(lián)系。數(shù)據(jù)模型的優(yōu)化(續(xù)) 按照數(shù)據(jù)依賴(lài)的理論對(duì)關(guān)系模式逐一進(jìn)行分析,考查是否存在部分函數(shù)依賴(lài)、傳遞函數(shù)依賴(lài)、多值依賴(lài)等,確定各關(guān)系模式分別屬于第幾范式。 例如經(jīng)過(guò)分析可知,課程關(guān)系模式屬于

23、BC范式。數(shù)據(jù)模型的優(yōu)化(續(xù)) 按照需求分析階段得到的各種應(yīng)用對(duì)數(shù)據(jù)處理的要求,分析對(duì)于這樣的應(yīng)用環(huán)境這些模式是否合適,確定是否要對(duì)它們進(jìn)行合并或分解。數(shù)據(jù)模型的優(yōu)化(續(xù))并不是規(guī)范化程度越高的關(guān)系就越優(yōu)。當(dāng)一個(gè)應(yīng)用的查詢(xún)中經(jīng)常涉及到兩個(gè)或多個(gè)關(guān)系模式的屬性時(shí),系統(tǒng)必須經(jīng)常地進(jìn)行聯(lián)接運(yùn)算,而聯(lián)系運(yùn)算的代價(jià)是相當(dāng)高的,可以說(shuō)關(guān)系模型低效的主要原因就是做聯(lián)接運(yùn)算引起的,因此在這種情況下,第二范式甚至第一范式也許是最好的。數(shù)據(jù)模型的優(yōu)化(續(xù))非BCNF的關(guān)系模式雖然從理論上分析會(huì)存在不同程度的更新異常,但如果在實(shí)際應(yīng)用中對(duì)此關(guān)系模式只是查詢(xún),并不執(zhí)行更新操作,則就不會(huì)產(chǎn)生實(shí)際影響。對(duì)于一個(gè)具體應(yīng)用來(lái)

24、說(shuō),到底規(guī)范化進(jìn)行到什么程度,需要權(quán)衡響應(yīng)時(shí)間和潛在問(wèn)題兩者的利弊才能決定。一般說(shuō)來(lái),第三范式就足夠了。數(shù)據(jù)模型的優(yōu)化(續(xù))例:在關(guān)系模式 學(xué)生成績(jī)單(學(xué)號(hào),英語(yǔ),數(shù)學(xué),語(yǔ)文,平均成績(jī)) 中存在下列函數(shù)依賴(lài): 學(xué)號(hào)英語(yǔ) 學(xué)號(hào)數(shù)學(xué) 學(xué)號(hào)語(yǔ)文 學(xué)號(hào)平均成績(jī) (英語(yǔ), 數(shù)學(xué), 語(yǔ)文)平均成績(jī)數(shù)據(jù)模型的優(yōu)化(續(xù)) 顯然有: 學(xué)號(hào)(英語(yǔ),數(shù)學(xué),語(yǔ)文)因此該關(guān)系模式中存在傳遞函數(shù)信賴(lài),是2NF關(guān)系。 雖然平均成績(jī)可以由其他屬性推算出來(lái),但如果應(yīng)用中需要經(jīng)常查詢(xún)學(xué)生的平均成績(jī),為提高效率,我們?nèi)匀豢杀A粼撊哂鄶?shù)據(jù),對(duì)關(guān)系模式不再做進(jìn)一步分解。數(shù)據(jù)模型的優(yōu)化(續(xù)) 按照需求分析階段得到的各種應(yīng)用對(duì)數(shù)據(jù)處理的要

25、求,對(duì)關(guān)系模式進(jìn)行必要的分解或合并,以提高數(shù)據(jù)操作的效率和存儲(chǔ)空間的利用率常用分解方法水平分解垂直分解數(shù)據(jù)模型的優(yōu)化(續(xù)) 水平分解 什么是水平分解把(基本)關(guān)系的元組分為若干子集合,定義每個(gè)子集合為一個(gè)子關(guān)系,以提高系統(tǒng)的效率。數(shù)據(jù)模型的優(yōu)化(續(xù)) 水平分解的適用范圍1. 滿(mǎn)足“80/20原則”的應(yīng)用80/20原則:一個(gè)大關(guān)系中,經(jīng)常被使用的數(shù)據(jù)只是關(guān)系的一部分,約20%把經(jīng)常使用的數(shù)據(jù)分解出來(lái),形成一個(gè)子關(guān)系,可以減少查詢(xún)的數(shù)據(jù)量。 數(shù)據(jù)模型的優(yōu)化(續(xù)) 水平分解的適用范圍2. 并發(fā)事務(wù)經(jīng)常存取不相交的數(shù)據(jù)如果關(guān)系R上具有n個(gè)事務(wù),而且多數(shù)事務(wù)存取的數(shù)據(jù)不相交,則R可分解為少于或等于n個(gè)子

26、關(guān)系,使每個(gè)事務(wù)存取的數(shù)據(jù)對(duì)應(yīng)一個(gè)關(guān)系。數(shù)據(jù)模型的優(yōu)化(續(xù)) 水平分解 什么是水平分解把(基本)關(guān)系的元組分為若干子集合,定義每個(gè)子集合為一個(gè)子關(guān)系,以提高系統(tǒng)的效率。 水平分解的適用范圍滿(mǎn)足“80/20原則”的應(yīng)用并發(fā)事務(wù)經(jīng)常存取不相交的數(shù)據(jù)數(shù)據(jù)模型的優(yōu)化(續(xù)) 滿(mǎn)足“80/20原則”的應(yīng)用80/20原則:一個(gè)大關(guān)系中,經(jīng)常被使用的數(shù)據(jù)只是關(guān)系的一部分,約20%把經(jīng)常使用的數(shù)據(jù)分解出來(lái),形成一個(gè)子關(guān)系,可以減少查詢(xún)的數(shù)據(jù)量。 并發(fā)事務(wù)經(jīng)常存取不相交的數(shù)據(jù)如果關(guān)系R上具有n個(gè)事務(wù),而且多數(shù)事務(wù)存取的數(shù)據(jù)不相交,則R可分解為少于或等于n個(gè)子關(guān)系,使每個(gè)事務(wù)存取的數(shù)據(jù)對(duì)應(yīng)一個(gè)關(guān)系。數(shù)據(jù)模型的優(yōu)化(

27、續(xù)) 垂直分解 什么是垂直分解把關(guān)系模式R的屬性分解為若干子集合,形成若干子關(guān)系模式。 垂直分解的原則經(jīng)常在一起使用的屬性從R中分解出來(lái)形成一個(gè)子關(guān)系模式。數(shù)據(jù)模型的優(yōu)化(續(xù)) 垂直分解的優(yōu)點(diǎn)可以提高某些事務(wù)的效率 垂直分解的缺點(diǎn)可能使另一些事務(wù)不得不執(zhí)行連接操作,從而降低了效率。數(shù)據(jù)模型的優(yōu)化(續(xù)) 垂直分解的適用范圍取決于分解后R上的所有事務(wù)的總效率是否得到了提高。 進(jìn)行垂直分解的方法簡(jiǎn)單情況:直觀(guān)分解復(fù)雜情況:用第五章中的模式分解算法垂直分解必須不損失關(guān)系模式的語(yǔ)義(保持無(wú)損連接性和保持函數(shù)依賴(lài))。5.4 邏輯結(jié)構(gòu)設(shè)計(jì)5.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換5.4.2 向特定DBMS規(guī)定的模

28、型進(jìn)行轉(zhuǎn)換5.4.3 數(shù)據(jù)模型的優(yōu)化5.4.4 設(shè)計(jì)用戶(hù)子模式5.4.4 設(shè)計(jì)用戶(hù)子模式 定義數(shù)據(jù)庫(kù)模式主要是從系統(tǒng)的時(shí)間效率、空間效率、易維護(hù)等角度出發(fā)。 定義用戶(hù)外模式時(shí)應(yīng)該更注重考慮用戶(hù)的習(xí)慣與方便。包括三個(gè)方面: 設(shè)計(jì)用戶(hù)子模式(續(xù))(1) 使用更符合用戶(hù)習(xí)慣的別名 合并各分E-R圖曾做了消除命名沖突的工作,以使數(shù)據(jù)庫(kù)系統(tǒng)中同一關(guān)系和屬性具有唯一的名字。這在設(shè)計(jì)數(shù)據(jù)庫(kù)整體結(jié)構(gòu)時(shí)是非常必要的。 但對(duì)于某些局部應(yīng)用,由于改用了不符合用戶(hù)習(xí)慣的屬性名,可能會(huì)使他們感到不方便,設(shè)計(jì)用戶(hù)子模式(續(xù))(1) 使用更符合用戶(hù)習(xí)慣的別名(續(xù)) 因此在設(shè)計(jì)用戶(hù)的子模式時(shí)可以重新定義某些屬性名,使其與用戶(hù)習(xí)慣一致。 當(dāng)然,為了應(yīng)用的規(guī)范化,我們也不應(yīng)該一味地遷就用戶(hù)。例:負(fù)責(zé)學(xué)籍管理的用戶(hù)習(xí)慣于稱(chēng)教師模式的職工號(hào)為教師編號(hào)。因此可以定義視圖,在視圖中職工號(hào)重定義為教師編號(hào)設(shè)計(jì)用戶(hù)子模式(續(xù)) (2) 針對(duì)不同級(jí)別的用戶(hù)定義不同的外模式,以滿(mǎn)足系統(tǒng)對(duì)安全性的要求。設(shè)計(jì)用戶(hù)子模式(續(xù))例:教師關(guān)系模式中包括職工號(hào)、姓名、性別、出生日期、婚姻狀況、學(xué)歷、學(xué)位、政治面貌、職稱(chēng)、職務(wù)、工資

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論