數(shù)據(jù)庫的邏輯設(shè)計_第1頁
數(shù)據(jù)庫的邏輯設(shè)計_第2頁
數(shù)據(jù)庫的邏輯設(shè)計_第3頁
數(shù)據(jù)庫的邏輯設(shè)計_第4頁
數(shù)據(jù)庫的邏輯設(shè)計_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、7.4 數(shù)據(jù)庫的邏輯設(shè)計數(shù)據(jù)庫的邏輯設(shè)計l邏輯結(jié)構(gòu)設(shè)計的任務(wù)把概念結(jié)構(gòu)設(shè)計階段設(shè)計好的基本E-R圖轉(zhuǎn)換為與選用DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)邏輯結(jié)構(gòu)設(shè)計的步驟7.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換圖向關(guān)系模型的轉(zhuǎn)換l要解決的問題聯(lián)系向模式轉(zhuǎn)化l一般地,實體均可轉(zhuǎn)化為關(guān)系模式確定模式的屬性和碼1:1聯(lián)系的轉(zhuǎn)化聯(lián)系的轉(zhuǎn)化轉(zhuǎn)換為一個獨立的關(guān)系模式,則與該聯(lián)系相關(guān)的實體的碼及其本身的屬性均轉(zhuǎn)化為關(guān)系的屬性lR1(k,a),R2(h,b),R3(k,h,s)與某一端實體對應(yīng)的關(guān)系模式合并,則在關(guān)系中加入另一關(guān)系的碼和聯(lián)系的屬性lR1(k,a,h,s),R2(h,b)KaE1rE2hbs1:1

2、聯(lián)系轉(zhuǎn)化例聯(lián)系轉(zhuǎn)化例病人入住病床病號姓名性別病因床號長度高度?111:1聯(lián)系轉(zhuǎn)化中存在的問題聯(lián)系轉(zhuǎn)化中存在的問題l理論上,理論上,1:1聯(lián)系可以向任意一方合并,但是聯(lián)系可以向任意一方合并,但是但在一些情況下,與不同的關(guān)系模式合并效率但在一些情況下,與不同的關(guān)系模式合并效率會大不一樣。因此究竟應(yīng)該與哪端的關(guān)系模式會大不一樣。因此究竟應(yīng)該與哪端的關(guān)系模式合并需要依應(yīng)用的具體情況而定。由于連接操合并需要依應(yīng)用的具體情況而定。由于連接操作是最費時的操作,所以一般應(yīng)以盡量減少連作是最費時的操作,所以一般應(yīng)以盡量減少連接操作為目標。接操作為目標。例如:上例中,如何經(jīng)常要查詢某病人的入院時例如:上例中,如何

3、經(jīng)常要查詢某病人的入院時間(用于結(jié)賬),若將聯(lián)系并入病床方顯然會間(用于結(jié)賬),若將聯(lián)系并入病床方顯然會降低效率。降低效率。1:n聯(lián)系的轉(zhuǎn)化聯(lián)系的轉(zhuǎn)化l轉(zhuǎn)化為一個獨立的關(guān)系模式轉(zhuǎn)化為一個獨立的關(guān)系模式, ,與該聯(lián)系相連的各實體的與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為的碼為n n端實體的碼端實體的碼l與與n n端的關(guān)系模式合并端的關(guān)系模式合并R1(k,a),R2(h,b,k,s)KaE1rE2hbs1n1:n聯(lián)系轉(zhuǎn)化例聯(lián)系轉(zhuǎn)化例學(xué)生屬于班級學(xué)號姓名性別出生班號班名人數(shù)職務(wù)n1m:n聯(lián)系的轉(zhuǎn)化聯(lián)系的轉(zhuǎn)化l直接轉(zhuǎn)化為一

4、個關(guān)系,包括與聯(lián)系相關(guān)的實體的碼以及直接轉(zhuǎn)化為一個關(guān)系,包括與聯(lián)系相關(guān)的實體的碼以及本身的屬性本身的屬性 R(k,h,s)KaE1rE2hbsmnm:n聯(lián)系轉(zhuǎn)化例聯(lián)系轉(zhuǎn)化例學(xué)生選秀課程學(xué)號姓名性別出生課號課名學(xué)分?nm三個或三個以上實體間的一個多元聯(lián)系轉(zhuǎn)三個或三個以上實體間的一個多元聯(lián)系轉(zhuǎn)換為一個關(guān)系模式,包含了相關(guān)實體的碼換為一個關(guān)系模式,包含了相關(guān)實體的碼及其自身的屬性及其自身的屬性多元聯(lián)系的轉(zhuǎn)化教師課程班級教授具有相同碼的關(guān)系模式可以合并具有相同碼的關(guān)系模式可以合并l例如例如班級(班級(班號班號,班名班名,人數(shù))人數(shù)) 班主任(班主任(班號班號,姓名姓名,性別)性別)l課本第223頁提問

5、7.4.2 數(shù)據(jù)模型的優(yōu)化數(shù)據(jù)模型的優(yōu)化l得到初步數(shù)據(jù)模型后,還應(yīng)該適當?shù)匦薷摹⒄{(diào)整數(shù)據(jù)模型的結(jié)構(gòu),以進一步提高數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能,這就是數(shù)據(jù)模型的優(yōu)化l關(guān)系數(shù)據(jù)模型的優(yōu)化通常以規(guī)范化理論為指導(dǎo)數(shù)據(jù)模型優(yōu)化的步驟數(shù)據(jù)模型優(yōu)化的步驟l確定函數(shù)依賴關(guān)系確定函數(shù)依賴關(guān)系l消除冗余消除冗余l(xiāng)確定范式確定范式l對于不滿足要求的范式進行分解對于不滿足要求的范式進行分解一般要求第三范式一般要求第三范式l對關(guān)系模式進行必要的分解,提高數(shù)據(jù)操作的對關(guān)系模式進行必要的分解,提高數(shù)據(jù)操作的效率和存儲空間的利用率效率和存儲空間的利用率(?)例:在關(guān)系模式例:在關(guān)系模式 學(xué)生成績單學(xué)生成績單(學(xué)號學(xué)號,英語英語,數(shù)學(xué)

6、數(shù)學(xué),語文語文,平均成績平均成績) 中存在下列函數(shù)依賴:中存在下列函數(shù)依賴: 學(xué)號學(xué)號英語英語 學(xué)號學(xué)號數(shù)學(xué)數(shù)學(xué) 學(xué)號學(xué)號語文語文 學(xué)號學(xué)號平均成績平均成績 (英語英語, 數(shù)學(xué)數(shù)學(xué), 語文語文)平均成績平均成績提問7.4.3 設(shè)計用戶子模式(視圖)設(shè)計用戶子模式(視圖)定義用戶外模式時應(yīng)該注意的問題定義用戶外模式時應(yīng)該注意的問題 包括三個方面:包括三個方面: (1) 使用更符合用戶習(xí)慣的別名使用更符合用戶習(xí)慣的別名 (2) 針對不同級別的用戶定義不同的針對不同級別的用戶定義不同的View ,以滿足,以滿足系統(tǒng)對安全性的要求系統(tǒng)對安全性的要求 (3) 簡化用戶對系統(tǒng)的使用簡化用戶對系統(tǒng)的使用為一

7、般顧客建立視圖:為一般顧客建立視圖: 產(chǎn)品產(chǎn)品1(產(chǎn)品號,產(chǎn)品名,規(guī)格,單價)(產(chǎn)品號,產(chǎn)品名,規(guī)格,單價)為產(chǎn)品銷售部門建立視圖:為產(chǎn)品銷售部門建立視圖: 產(chǎn)品產(chǎn)品2(產(chǎn)品號,產(chǎn)品名,規(guī)格,單價,車間,生產(chǎn)負責(zé)人)(產(chǎn)品號,產(chǎn)品名,規(guī)格,單價,車間,生產(chǎn)負責(zé)人)l顧客視圖中只包含允許顧客查詢的屬性顧客視圖中只包含允許顧客查詢的屬性l銷售部門視圖中只包含允許銷售部門查詢的屬性銷售部門視圖中只包含允許銷售部門查詢的屬性l生產(chǎn)部門則可以查詢?nèi)慨a(chǎn)品數(shù)據(jù)生產(chǎn)部門則可以查詢?nèi)慨a(chǎn)品數(shù)據(jù)l可以防止用戶訪問不允許他們查詢的數(shù)據(jù),保證系統(tǒng)的可以防止用戶訪問不允許他們查詢的數(shù)據(jù),保證系統(tǒng)的安全性安全性例例 關(guān)

8、系模式產(chǎn)品(產(chǎn)品號,產(chǎn)品名,規(guī)格,單價,生產(chǎn)車間,生產(chǎn)負責(zé)人,產(chǎn)品成本,產(chǎn)品合格率,質(zhì)量等級)7.5 數(shù)據(jù)庫的物理設(shè)計數(shù)據(jù)庫的物理設(shè)計l數(shù)據(jù)庫的物理設(shè)計數(shù)據(jù)庫的物理設(shè)計數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)與存取方法稱為數(shù)據(jù)數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)與存取方法稱為數(shù)據(jù)庫的物理結(jié)構(gòu),它依賴于選定的數(shù)據(jù)庫管理系統(tǒng)庫的物理結(jié)構(gòu),它依賴于選定的數(shù)據(jù)庫管理系統(tǒng)為一個給定的邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境為一個給定的邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)的過程,就是數(shù)據(jù)庫的物理設(shè)計的物理結(jié)構(gòu)的過程,就是數(shù)據(jù)庫的物理設(shè)計7.5.1數(shù)據(jù)庫物理設(shè)計的內(nèi)容和方法數(shù)據(jù)庫物理設(shè)計的內(nèi)容和方法l設(shè)計數(shù)據(jù)庫物理結(jié)構(gòu)的準備

9、工作設(shè)計數(shù)據(jù)庫物理結(jié)構(gòu)的準備工作對要運行的事務(wù)進行詳細分析,獲得選擇物理對要運行的事務(wù)進行詳細分析,獲得選擇物理設(shè)計所需參數(shù)設(shè)計所需參數(shù)充分了解所用充分了解所用RDBMS的內(nèi)部特征,特別是系的內(nèi)部特征,特別是系統(tǒng)提供的存取方法和存儲結(jié)構(gòu)統(tǒng)提供的存取方法和存儲結(jié)構(gòu)l數(shù)據(jù)庫查詢事務(wù)數(shù)據(jù)庫查詢事務(wù)l查詢的關(guān)系查詢的關(guān)系l 查詢條件所涉及的屬性查詢條件所涉及的屬性l 連接條件所涉及的屬性連接條件所涉及的屬性l 查詢的投影屬性查詢的投影屬性 選擇物理數(shù)據(jù)庫設(shè)計所需參數(shù)選擇物理數(shù)據(jù)庫設(shè)計所需參數(shù)選擇物理數(shù)據(jù)庫設(shè)計所需參數(shù)選擇物理數(shù)據(jù)庫設(shè)計所需參數(shù)數(shù)據(jù)更新事務(wù)數(shù)據(jù)更新事務(wù)l被更新的關(guān)系被更新的關(guān)系l每個關(guān)系

10、上的更新操作條件所涉及的屬性每個關(guān)系上的更新操作條件所涉及的屬性l 修改操作要改變的屬性值修改操作要改變的屬性值 每個事務(wù)在各關(guān)系上運行的頻率和性能要求每個事務(wù)在各關(guān)系上運行的頻率和性能要求7.5.2 關(guān)系模式存取方法的選擇關(guān)系模式存取方法的選擇lDBMS常用存取方法常用存取方法索引方法索引方法l目前主要是目前主要是B+樹索引方法樹索引方法l經(jīng)典存取方法,使用最普遍經(jīng)典存取方法,使用最普遍 聚簇(聚簇(Cluster)方法)方法HASH方法方法索引方法一定優(yōu)于無索引的方法?l選擇索引存取方法的一般規(guī)則選擇索引存取方法的一般規(guī)則如果一個如果一個(或一組或一組)屬性經(jīng)常在查詢條件中出現(xiàn),則屬性經(jīng)常

11、在查詢條件中出現(xiàn),則考慮在這個考慮在這個(或這組或這組)屬性上建立索引屬性上建立索引(或組合索引或組合索引)如果一個屬性經(jīng)常作為最大值和最小值等聚集函數(shù)如果一個屬性經(jīng)常作為最大值和最小值等聚集函數(shù)的參數(shù),則考慮在這個屬性上建立索引的參數(shù),則考慮在這個屬性上建立索引?如果一個如果一個(或一組或一組)屬性經(jīng)常在連接操作的連接條件屬性經(jīng)常在連接操作的連接條件中出現(xiàn),則考慮在這個中出現(xiàn),則考慮在這個(或這組或這組)屬性上建立索引屬性上建立索引l關(guān)系上定義的索引數(shù)過多會帶來較多的額外開關(guān)系上定義的索引數(shù)過多會帶來較多的額外開銷銷 維護索引的開銷維護索引的開銷 查找索引的開銷查找索引的開銷l聚簇聚簇為了提

12、高某個屬性(或?qū)傩越M)的查詢速度,把這個為了提高某個屬性(或?qū)傩越M)的查詢速度,把這個或這些屬性(稱為聚簇碼)上具有相同值的元組集中或這些屬性(稱為聚簇碼)上具有相同值的元組集中存放在存放在連續(xù)連續(xù)的物理塊稱為聚簇的物理塊稱為聚簇聚簇的用途聚簇的用途大大提高按聚簇碼進行查詢的效率大大提高按聚簇碼進行查詢的效率例:假設(shè)學(xué)生關(guān)系按所在系建有索引,現(xiàn)在要查詢信息系的例:假設(shè)學(xué)生關(guān)系按所在系建有索引,現(xiàn)在要查詢信息系的所有學(xué)生名單。所有學(xué)生名單。信息系的信息系的500名學(xué)生分布在名學(xué)生分布在500個不同的物理塊上時,至少個不同的物理塊上時,至少要執(zhí)行要執(zhí)行500次次I/O操作操作如果將同一系的學(xué)生元組

13、集中存放,則每讀一個物理塊可得如果將同一系的學(xué)生元組集中存放,則每讀一個物理塊可得到多個滿足查詢條件的元組,從而顯著地減少了訪問磁盤到多個滿足查詢條件的元組,從而顯著地減少了訪問磁盤的次數(shù)的次數(shù)聚簇的用途聚簇的用途節(jié)省存儲空間 聚簇以后,聚簇碼相同的元組集中在一起了,因而聚簇碼值不必在每個元組中重復(fù)存儲,只要在一組中存一次就行了聚簇查詢方法一定優(yōu)于相同關(guān)鍵字設(shè)置的索引查詢?1.聚簇只能提高某些特定應(yīng)用的性能聚簇只能提高某些特定應(yīng)用的性能2. 建立與維護聚簇的開銷相當大建立與維護聚簇的開銷相當大l對已有關(guān)系建立聚簇,將導(dǎo)致關(guān)系中元組移動其物理存儲位對已有關(guān)系建立聚簇,將導(dǎo)致關(guān)系中元組移動其物理存

14、儲位置,并使此關(guān)系上原有的索引無效,必須重建置,并使此關(guān)系上原有的索引無效,必須重建l當一個元組的聚簇碼改變時,該元組的存儲位置也要做相應(yīng)當一個元組的聚簇碼改變時,該元組的存儲位置也要做相應(yīng)移動移動聚簇的局限性1. 既適用于單個關(guān)系獨立聚簇,也適用于多個關(guān)系既適用于單個關(guān)系獨立聚簇,也適用于多個關(guān)系組合聚簇組合聚簇例:假設(shè)用戶經(jīng)常要按系別查詢學(xué)生成績單,這一查詢例:假設(shè)用戶經(jīng)常要按系別查詢學(xué)生成績單,這一查詢涉及學(xué)生關(guān)系和選修關(guān)系的連接操作,即需要按學(xué)號涉及學(xué)生關(guān)系和選修關(guān)系的連接操作,即需要按學(xué)號連接這兩個關(guān)系,為提高連接操作的效率,可以把具連接這兩個關(guān)系,為提高連接操作的效率,可以把具有相

15、同學(xué)號值的學(xué)生元組和選修元組在物理上聚簇在有相同學(xué)號值的學(xué)生元組和選修元組在物理上聚簇在一起。這就相當于把多個關(guān)系按一起。這就相當于把多個關(guān)系按“預(yù)連接預(yù)連接”的形式存的形式存放,從而大大提高連接操作的效率。放,從而大大提高連接操作的效率。聚簇的適用范圍2. 當通過聚簇碼進行訪問或連接是該關(guān)系的主要應(yīng)用,當通過聚簇碼進行訪問或連接是該關(guān)系的主要應(yīng)用,與聚簇碼無關(guān)的其他訪問很少或者是次要的時,可以與聚簇碼無關(guān)的其他訪問很少或者是次要的時,可以使用聚簇。使用聚簇。l尤其當尤其當SQL語句中包含有與聚簇碼有關(guān)的語句中包含有與聚簇碼有關(guān)的ORDER BY,GROUP BY,UNION,DISTINCT

16、等子句或短語時,使用聚等子句或短語時,使用聚簇特別有利,可以省去對結(jié)果集的排序操作簇特別有利,可以省去對結(jié)果集的排序操作聚簇的適用范圍對經(jīng)常在一起進行連接操作的關(guān)系可以建立聚簇對經(jīng)常在一起進行連接操作的關(guān)系可以建立聚簇如果一個關(guān)系的一組屬性經(jīng)常出現(xiàn)在相等比較條如果一個關(guān)系的一組屬性經(jīng)常出現(xiàn)在相等比較條件中,則該單個關(guān)系可建立聚簇件中,則該單個關(guān)系可建立聚簇如果一個關(guān)系的一個如果一個關(guān)系的一個(或一組或一組)屬性上的值重復(fù)率很屬性上的值重復(fù)率很高,則此單個關(guān)系可建立聚簇。即對應(yīng)每個聚簇高,則此單個關(guān)系可建立聚簇。即對應(yīng)每個聚簇碼值的平均元組數(shù)不太少。太少了,聚簇的效果碼值的平均元組數(shù)不太少。太少

17、了,聚簇的效果不明顯不明顯設(shè)計候選聚簇設(shè)計候選聚簇從聚簇中刪除經(jīng)常進行全表掃描的關(guān)系;從聚簇中刪除經(jīng)常進行全表掃描的關(guān)系;從聚簇中刪除更新操作遠多于連接操作的關(guān)系;從聚簇中刪除更新操作遠多于連接操作的關(guān)系;不同的聚簇中可能包含相同的關(guān)系,不同的聚簇中可能包含相同的關(guān)系,一個關(guān)系可以在某一個關(guān)系可以在某一個聚簇中,但不能同時加入多個聚簇一個聚簇中,但不能同時加入多個聚簇 從這多個聚簇方案從這多個聚簇方案(包括不建立聚簇包括不建立聚簇)中選擇一個較優(yōu)的,中選擇一個較優(yōu)的,即在這個聚簇上運行各種事務(wù)的總代價最小即在這個聚簇上運行各種事務(wù)的總代價最小優(yōu)化聚簇設(shè)計優(yōu)化聚簇設(shè)計當一個關(guān)系滿足下列兩個條件時,可以選擇HASH存取方法l該關(guān)系的屬性主要出現(xiàn)在等值連接條件中或主要出現(xiàn)在相等比較選擇條件中l(wèi)該關(guān)系的大小可預(yù)知,而且不變; 或l 該關(guān)系的大小動態(tài)改變,但所選用的DBMS提供了動態(tài)HASH存取方法選擇選擇HASH存取方法的規(guī)則存取方法的規(guī)則7.5.3 確定數(shù)據(jù)庫的存儲結(jié)構(gòu)確定數(shù)據(jù)庫的存儲結(jié)構(gòu)l確定數(shù)據(jù)的存放位置l確定系統(tǒng)配置數(shù)據(jù)存放位置的設(shè)置原則數(shù)據(jù)存放位置的設(shè)置原則l基本原則根據(jù)應(yīng)用情況將l易變部分與穩(wěn)定部分分開存放l存取頻率較高部分與存取頻率較低部分,分開存放例:l

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論