




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、中國人民大學信息學院 數據庫系統概論An Introduction to Database System第七章 數據庫設計(續2)An Introduction to Database System第七章 數據庫設計7.1 數據庫設計概述7.2 需求分析7.3 概念結構設計7.4 邏輯結構設計7.5 數據庫的物理設計7.6 數據庫的實施和維護7.7 小結An Introduction to Database System7.4 邏輯結構設計邏輯結構設計的任務把概念結構設計階段設計好的基本E-R圖轉換為與選用DBMS產品所支持的數據模型相符合的邏輯結構邏輯結構設計的步驟將概念結構轉化為一般的關系
2、、網狀、層次模型將轉換來的關系、網狀、層次模型向特定DBMS支持下的數據模型轉換對數據模型進行優化An Introduction to Database System 邏輯結構設計(續)邏輯結構設計時的3個步驟 An Introduction to Database System7.4 邏輯結構設計7.4.1 E-R圖向關系模型的轉換7.4.2 數據模型的優化7.4.3 設計用戶子模式An Introduction to Database System7.4.1 E-R圖向關系模型的轉換轉換內容轉換原則An Introduction to Database SystemE-R圖向關系模型的轉換
3、(續)E-R圖向關系模型的轉換要解決的問題 如何將實體型和實體間的聯系轉換為關系模式如何確定這些關系模式的屬性和碼 轉換內容將E-R圖轉換為關系模型:將實體、實體的屬性和實體之間的聯系轉換為關系模式。An Introduction to Database SystemE-R圖向關系模型的轉換(續)實體型間的聯系有以下不同情況 :(1)一個1:1聯系可以轉換為一個獨立的關系模式,也可以與任意一端對應的關系模式合并。轉換為一個獨立的關系模式 與某一端實體對應的關系模式合并(2)一個1:n聯系可以轉換為一個獨立的關系模式,也可以與n端對應的關系模式合并。 轉換為一個獨立的關系模式與n端對應的關系模式
4、合并An Introduction to Database SystemE-R圖向關系模型的轉換(續)(3) 一個m:n聯系轉換為一個關系模式。例,“選修”聯系是一個m:n聯系,可以將它轉換為如下關系模式,其中學號與課程號為關系的組合碼:選修(學號,課程號,成績)An Introduction to Database SystemE-R圖向關系模型的轉換(續)(4)三個或三個以上實體間的一個多元聯系轉換為一個關系模式。例,“講授”聯系是一個三元聯系,可以將它轉換為如下關系模式,其中課程號、職工號和書號為關系的組合碼:講授(課程號,職工號,書號)An Introduction to Databa
5、se SystemE-R圖向關系模型的轉換(續)(5)具有相同碼的關系模式可合并目的:減少系統中的關系個數合并方法:將其中一個關系模式的全部屬性加入到另一個關系模式中,然后去掉其中的同義屬性(可能同名也可能不同名),并適當調整屬性的次序An Introduction to Database SystemE-R圖向關系模型的轉換(續)注意:從理論上講,1:1聯系可以與任意一端對應的關系模式合并但在一些情況下,與不同的關系模式合并效率會大不一樣。因此究竟應該與哪端的關系模式合并需要依應用的具體情況而定。由于連接操作是最費時的操作,所以一般應以盡量減少連接操作為目標。 例如,如果經常要查詢某個班級的
6、班主任姓名,則將管理聯系與教師關系合并更好些。An Introduction to Database SystemE-R圖向關系模型的轉換(續)例 把圖7.30中虛線上部的E-R圖轉換為關系模型 部門實體對應的關系模式 部門(部門號,部門名,經理的職工號,) 此關系模式已包含了聯系“領導”所對應的關系模式 經理的職工號是關系的候選碼 職工實體對應的關系模式 職工(職工號、部門號,職工名,職務,) 該關系模式已包含了聯系“屬于”所對應的關系模式 An Introduction to Database SystemE-R圖向關系模型的轉換(續)例 把圖7.30中虛線上部的E-R圖轉換為關系模型(續
7、) 產品實體對應的關系模式 產品(產品號,產品名,產品組長的職工號,)供應商實體對應的關系模式 供應商(供應商號,姓名,) 零件實體對應的關系模式 零件(零件號,零件名,) An Introduction to Database SystemE-R圖向關系模型的轉換(續)例 把圖7.30中虛線上部的E-R圖轉換為關系模型(續) 聯系“參加”所對應的關系模式 職工工作(職工號,產品號,工作天數,) 聯系“供應”所對應的關系模式 供應(產品號,供應商號,零件號,供應量) An Introduction to Database System7.4 邏輯結構設計7.4.1 E-R圖向關系模型的轉換7.
8、4.2 數據模型的優化7.4.3 設計用戶子模式An Introduction to Database System7.4.2 數據模型的優化得到初步數據模型后,還應該適當地修改、調整數據模型的結構,以進一步提高數據庫應用系統的性能,這就是數據模型的優化關系數據模型的優化通常以規范化理論為指導An Introduction to Database System數據模型的優化(續)優化數據模型的方法確定數據依賴按需求分析階段所得到的語義,分別寫出每個關系模式內部各屬性之間的數據依賴以及不同關系模式屬性之間數據依賴消除 冗余的聯系對于各個關系模式之間的數據依賴進行極小化處理,消除 冗余的聯系。確定
9、所屬范式按照數據依賴的理論對關系模式逐一進行分析考查是否存在部分函數依賴、傳遞函數依賴、多值依賴等確定各關系模式分別屬于第幾范式An Introduction to Database System數據模型的優化(續)按照需求分析階段得到的各種應用對數據處理的要求,分析對于這樣的應用環境這些模式是否合適, 確定是否要對它們進行合并或分解。注意:并不是規范化程度越高的關系就越優,一般說來,第三范式就足夠了An Introduction to Database System數據模型的優化(續)例:在關系模式 學生成績單(學號,英語,數學,語文,平均成績) 中存在下列函數依賴: 學號英語 學號數學 學
10、號語文 學號平均成績 (英語, 數學, 語文)平均成績An Introduction to Database System數據模型的優化(續) 顯然有: 學號(英語,數學,語文)因此該關系模式中存在傳遞函數信賴,是2NF關系 雖然平均成績可以由其他屬性推算出來,但如果應用中需要經常查詢學生的平均成績,為提高效率,仍然可保留該冗余數據,對關系模式不再做進一步分解An Introduction to Database System數據模型的優化(續)按照需求分析階段得到的各種應用對數據處理的要求,對關系模式進行必要的分解,以提高數據操作的效率和存儲空間的利用率常用分解方法水平分解垂直分解An In
11、troduction to Database System數據模型的優化(續)水平分解什么是水平分解把(基本)關系的元組分為若干子集合,定義每個子集合為一個子關系,以提高系統的效率水平分解的適用范圍滿足“80/20原則”的應用并發事務經常存取不相交的數據An Introduction to Database System數據模型的優化(續)垂直分解什么是垂直分解把關系模式R的屬性分解為若干子集合,形成若干子關系模式垂直分解的適用范圍取決于分解后R上的所有事務的總效率是否得到了提高An Introduction to Database System7.4 邏輯結構設計7.4.1 E-R圖向關系模
12、型的轉換7.4.2 數據模型的優化7.4.3 設計用戶子模式An Introduction to Database System7.4.3 設計用戶子模式定義用戶外模式時應該注重的問題 包括三個方面: (1) 使用更符合用戶習慣的別名 (2) 針對不同級別的用戶定義不同的View ,以 滿足系統對安全性的要求。 (3) 簡化用戶對系統的使用An Introduction to Database System設計用戶子模式(續)例 關系模式產品(產品號,產品名,規格,單價,生產車間,生產負責人,產品成本,產品合格率,質量等級),可以在產品關系上建立兩個視圖: 為一般顧客建立視圖: 產品1(產品號
13、,產品名,規格,單價) 為產品銷售部門建立視圖: 產品2(產品號,產品名,規格,單價,車間,生產負責人)顧客視圖中只包含允許顧客查詢的屬性銷售部門視圖中只包含允許銷售部門查詢的屬性生產領導部門則可以查詢全部產品數據可以防止用戶非法訪問不允許他們查詢的數據,保證系統的安全性An Introduction to Database System邏輯結構設計小結任務將概念結構轉化為具體的數據模型邏輯結構設計的步驟將概念結構轉化為一般的關系、網狀、層次模型將轉化來的關系、網狀、層次模型向特定DBMS支持下的數據模型轉換對數據模型進行優化設計用戶子模式An Introduction to Database
14、 System邏輯結構設計小結E-R圖向關系模型的轉換內容E-R圖向關系模型的轉換原則An Introduction to Database System邏輯結構設計小結優化數據模型的方法 1. 確定數據依賴 2. 對于各個關系模式之間的數據依賴進行極小化處理,消除冗余的聯系。 3. 確定各關系模式分別屬于第幾范式。 4. 分析對于應用環境這些模式是否合適,確定是否要對它們進行合并或分解。 5. 對關系模式進行必要的分解或合并An Introduction to Database System邏輯結構設計小結設計用戶子模式 1. 使用更符合用戶習慣的別名 2. 針對不同級別的用戶定義不同的外模
15、式,以滿足系統對安全性的要求。 3. 簡化用戶對系統的使用An Introduction to Database System第七章 數據庫設計7.1 數據庫設計概述7.2 需求分析7.3 概念結構設計7.4 邏輯結構設計7.5 數據庫的物理設計7.6 數據庫的實施和維護7.7 小結An Introduction to Database System7.5 數據庫的物理設計數據庫的物理設計數據庫在物理設備上的存儲結構與存取方法稱為數據庫的物理結構,它依賴于選定的數據庫管理系統為一個給定的邏輯數據模型選取一個最適合應用環境的物理結構的過程,就是數據庫的物理設計An Introduction to
16、 Database System數據庫的物理設計(續)數據庫物理設計的步驟確定數據庫的物理結構,在關系數據庫中主要指存取方法和存儲結構 對物理結構進行評價,評價的重點是時間和空間效率 如果評價結果滿足原設計要求,則可進入到物理實施階段,否則,就需要重新設計或修改物理結構,有時甚至要返回邏輯設計階段修改數據模型An Introduction to Database System數據庫的物理設計(續)數據庫物理設計確定數據庫的物理結構評價數據庫的物理結構邏輯結構設計數據庫實施物理模型邏輯模型An Introduction to Database System7.5 數據庫的物理設計7.5.1 數據
17、庫物理設計的內容和方法7.5.2 關系模式存取方法選擇7.5.3 確定數據庫的存儲結構7.5.4 評價物理結構An Introduction to Database System7.5.1 數據庫物理設計的內容和方法設計物理數據庫結構的準備工作對要運行的事務進行詳細分析,獲得選擇物理數據庫設計所需參數充分了解所用RDBMS的內部特征,特別是系統提供的存取方法和存儲結構An Introduction to Database System數據庫的物理設計的內容和方法(續)選擇物理數據庫設計所需參數 數據庫查詢事務查詢的關系 查詢條件所涉及的屬性 連接條件所涉及的屬性 查詢的投影屬性 An Intr
18、oduction to Database System數據庫的物理設計的內容和方法(續)選擇物理數據庫設計所需參數(續)數據更新事務被更新的關系每個關系上的更新操作條件所涉及的屬性 修改操作要改變的屬性值 每個事務在各關系上運行的頻率和性能要求An Introduction to Database System數據庫的物理設計的內容和方法(續)關系數據庫物理設計的內容為關系模式選擇存取方法(建立存取路徑) 設計關系、索引等數據庫文件的物理存儲結構An Introduction to Database System7.5 數據庫的物理設計7.5.1 數據庫物理設計的內容和方法7.5.2 關系模式
19、存取方法選擇7.5.3 確定數據庫的存儲結構7.5.4 評價物理結構An Introduction to Database System7.5.2 關系模式存取方法選擇數據庫系統是多用戶共享的系統,對同一個關系要建立多條存取路徑才能滿足多用戶的多種應用要求物理設計的任務之一就是要確定選擇哪些存取方法,即建立哪些存取路徑An Introduction to Database System關系模式存取方法選擇(續)DBMS常用存取方法索引方法目前主要是B+樹索引方法經典存取方法,使用最普遍 聚簇(Cluster)方法HASH方法An Introduction to Database System一
20、、索引存取方法的選擇根據應用要求確定 對哪些屬性列建立索引 對哪些屬性列建立組合索引 對哪些索引要設計為唯一索引An Introduction to Database System索引存取方法的選擇(續)選擇索引存取方法的一般規則如果一個(或一組)屬性經常在查詢條件中出現,則考慮在這個(或這組)屬性上建立索引(或組合索引)如果一個屬性經常作為最大值和最小值等聚集函數的參數,則考慮在這個屬性上建立索引如果一個(或一組)屬性經常在連接操作的連接條件中出現,則考慮在這個(或這組)屬性上建立索引關系上定義的索引數過多會帶來較多的額外開銷 維護索引的開銷 查找索引的開銷An Introduction t
21、o Database System二、聚簇存取方法的選擇聚簇為了提高某個屬性(或屬性組)的查詢速度,把這個或這些屬性(稱為聚簇碼)上具有相同值的元組集中存放在連續的物理塊稱為聚簇An Introduction to Database System聚簇存取方法的選擇(續)聚簇的用途1. 大大提高按聚簇碼進行查詢的效率 例:假設學生關系按所在系建有索引,現在要查詢信息系的所有學生名單。信息系的500名學生分布在500個不同的物理塊上時,至少要執行500次I/O操作如果將同一系的學生元組集中存放,則每讀一個物理塊可得到多個滿足查詢條件的元組,從而顯著地減少了訪問磁盤的次數An Introductio
22、n to Database System聚簇存取方法的選擇(續)2. 節省存儲空間聚簇以后,聚簇碼相同的元組集中在一起了,因而聚簇碼值不必在每個元組中重復存儲,只要在一組中存一次就行了An Introduction to Database System聚簇存取方法的選擇(續)聚簇的局限性1. 聚簇只能提高某些特定應用的性能2. 建立與維護聚簇的開銷相當大對已有關系建立聚簇,將導致關系中元組移動其物理存儲位置,并使此關系上原有的索引無效,必須重建當一個元組的聚簇碼改變時,該元組的存儲位置也要做相應移動An Introduction to Database System聚簇存取方法的選擇(續)聚簇
23、的適用范圍1. 既適用于單個關系獨立聚簇,也適用于多個關系組合聚簇例:假設用戶經常要按系別查詢學生成績單,這一查詢涉及學生關系和選修關系的連接操作,即需要按學號連接這兩個關系,為提高連接操作的效率,可以把具有相同學號值的學生元組和選修元組在物理上聚簇在一起。這就相當于把多個關系按“預連接”的形式存放,從而大大提高連接操作的效率。An Introduction to Database System聚簇存取方法的選擇(續)2. 當通過聚簇碼進行訪問或連接是該關系的主要應用,與聚簇碼無關的其他訪問很少或者是次要的時,可以使用聚簇。尤其當SQL語句中包含有與聚簇碼有關的ORDER BY,GROUP B
24、Y,UNION,DISTINCT等子句或短語時,使用聚簇特別有利,可以省去對結果集的排序操作An Introduction to Database System聚簇存取方法的選擇(續)設計候選聚簇對經常在一起進行連接操作的關系可以建立聚簇如果一個關系的一組屬性經常出現在相等比較條件中,則該單個關系可建立聚簇如果一個關系的一個(或一組)屬性上的值重復率很高,則此單個關系可建立聚簇。即對應每個聚簇碼值的平均元組數不太少。太少了,聚簇的效果不明顯An Introduction to Database System聚簇存取方法的選擇(續)優化聚簇設計從聚簇中刪除經常進行全表掃描的關系;從聚簇中刪除更新
25、操作遠多于連接操作的關系;不同的聚簇中可能包含相同的關系,一個關系可以在某一個聚簇中,但不能同時加入多個聚簇 從這多個聚簇方案(包括不建立聚簇)中選擇一個較優的,即在這個聚簇上運行各種事務的總代價最小An Introduction to Database System三、HASH存取方法的選擇選擇HASH存取方法的規則當一個關系滿足下列兩個條件時,可以選擇HASH存取方法該關系的屬性主要出現在等值連接條件中或主要出現在相等比較選擇條件中該關系的大小可預知,而且不變; 或 該關系的大小動態改變,但所選用的DBMS提供了動態HASH存取方法An Introduction to Database S
26、ystem7.5 數據庫的物理設計7.5.1 數據庫物理設計的內容和方法7.5.2 關系模式存取方法選擇7.5.3 確定數據庫的存儲結構7.5.4 評價物理結構An Introduction to Database System7.5.3 確定數據庫的存儲結構確定數據庫物理結構的內容1. 確定數據的存放位置和存儲結構 關系 索引 聚簇 日志 備份2. 確定系統配置An Introduction to Database System1. 確定數據的存放位置確定數據存放位置和存儲結構的因素存取時間存儲空間利用率維護代價 這三個方面常常是相互矛盾的 例:消除一切冗余數據雖能夠節約存儲空間和減少維護代
27、價,但往往會導致檢索代價的增加 必須進行權衡,選擇一個折中方案An Introduction to Database System確定數據的存放位置(續)基本原則根據應用情況將易變部分與穩定部分分開存放存取頻率較高部分與存取頻率較低部分,分開存放An Introduction to Database System確定數據的存放位置(續)例:數據庫數據備份、日志文件備份等由于只在故障恢復時才使用,而且數據量很大,可以考慮存放在磁帶上如果計算機有多個磁盤或磁盤陣列 ,可以考慮將表和索引分別放在不同的磁盤上,在查詢時,由于磁盤驅動器并行工作,可以提高物理I/O讀寫的效率 An Introductio
28、n to Database System確定數據的存放位置(續)例(續):可以將比較大的表分別放在兩個磁盤上,以加快存取速度,這在多用戶環境下特別有效可以將日志文件與數據庫對象(表、索引等)放在不同的磁盤以改進系統的性能An Introduction to Database System2. 確定系統配置DBMS產品一般都提供了一些存儲分配參數 同時使用數據庫的用戶數 同時打開的數據庫對象數 內存分配參數 使用的緩沖區長度、個數 存儲分配參數 .An Introduction to Database System7.5 數據庫的物理設計7.5.1 數據庫物理設計的內容和方法7.5.2 關系模式
29、存取方法選擇7.5.3 確定數據庫的存儲結構7.5.4 評價物理結構An Introduction to Database System7.5.4 評價物理結構評價內容對數據庫物理設計過程中產生的多種方案進行細致的評價,從中選擇一個較優的方案作為數據庫的物理結構An Introduction to Database System評價物理結構(續)評價方法(完全依賴于所選用的DBMS )定量估算各種方案 存儲空間 存取時間 維護代價對估算結果進行權衡、比較,選擇出一個較優的合理的物理結構如果該結構不符合用戶需求,則需要修改設計An Introduction to Database System第
30、七章 數據庫設計7.1 數據庫設計概述7.2 需求分析7.3 概念結構設計7.4 邏輯結構設計7.5 數據庫的物理設計7.6 數據庫的實施和維護7.7 小結An Introduction to Database System7.6數據庫實施和維護7.6.1 數據的載入和應用程序的調試7.6.2 數據庫的試運行 7.6.3 數據庫的運行和維護 An Introduction to Database System7.6.1 數據的載入和應用程序的調試 數據的載入 應用程序的編碼和調試An Introduction to Database System 數據的載入 數據庫結構建立好后,就可以向數據庫
31、中裝載數據了。組織數據入庫是數據庫實施階段最主要的工作。數據裝載方法人工方法計算機輔助數據入庫An Introduction to Database System應用程序的編碼和調試數據庫應用程序的設計應該與數據設計并行進行在組織數據入庫的同時還要調試應用程序 An Introduction to Database System7.6數據庫實施和維護7.6.1 數據的載入和應用程序的調試7.6.2 數據庫的試運行 7.6.3 數據庫的運行和維護 An Introduction to Database System7.6.2 數據庫的試運行在原有系統的數據有一小部分已輸入數據庫后,就可以開始對數
32、據庫系統進行聯合調試,稱為數據庫的試運行 數據庫試運行主要工作包括:1)功能測試實際運行數據庫應用程序,執行對數據庫的各種操作,測試應用程序的功能是否滿足設計要求 如果不滿足,對應用程序部分則要修改、調整,直到達到設計要求2)性能測試測量系統的性能指標,分析是否達到設計目標如果測試的結果與設計目標不符,則要返回物理設計階段,重新調整物理結構,修改系統參數,某些情況下甚至要返回邏輯設計階段,修改邏輯結構 An Introduction to Database System數據庫的試運行(續)強調兩點:分期分批組織數據入庫 重新設計物理結構甚至邏輯結構,會導致數據重新入庫。由于數據入庫工作量實在太
33、大,費時、費力,所以應分期分批地組織數據入庫先輸入小批量數據供調試用待試運行基本合格后再大批量輸入數據逐步增加數據量,逐步完成運行評價An Introduction to Database System數據庫的試運行(續)數據庫的轉儲和恢復在數據庫試運行階段,系統還不穩定,硬、軟件故障隨時都可能發生系統的操作人員對新系統還不熟悉,誤操作也不可避免因此必須做好數據庫的轉儲和恢復工作,盡量減少對數據庫的破壞。An Introduction to Database System7.6數據庫實施和維護7.6.1 數據的載入和應用程序的調試7.6.2 數據庫的試運行 7.6.3 數據庫的運行和維護 An Introduction to Database System7.6.3 數
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 離婚撫養協議書模板
- 蘭考律師代寫協議書
- 養殖大棚用地協議書
- 平安退保協議書模板
- 農場租地協議書模板
- 民建建房安全協議書
- 商戶簽訂共建協議書
- 廈門就業協議書代簽
- 文具加工承包協議書
- 帳篷出租協議書范本
- 大數據時代企業會計信息化風險分析與防范探究-以中茂建筑為例1
- 退役士兵創業培訓課件模板
- 醫療器械的清潔與消毒指南
- 江西兄弟連水鉆有限公司年產14000t玻璃珠生產項且環境影響報告書
- 2024年江蘇建筑職業技術學院高職單招(英語/數學/語文)筆試歷年參考題庫含答案解析
- 中國煙草公司招聘筆試試題
- 【工商管理專業畢業綜合訓練報告2600字(論文)】
- 2024年浙江省財務開發有限責任公司招聘筆試參考題庫含答案解析
- 工作總結寫作培訓課件
- 活字印刷課件
- 消防安全隱患排查投標方案(技術標)
評論
0/150
提交評論