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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論