天天看點

資料庫系統原理第三章

第三章 資料庫設計

**大家想一起學習交流的可以加群,WX:MrCroods。**
           
資料庫系統原理第三章

第一節 資料庫設計概述

一、資料庫的生命周期

(1)、資料庫的生命周期分為兩個階段:

1、資料庫分析與設計階段
第一個階段包括需求分析、概念設計、邏輯設計和實體設計。
2、資料庫實作與操作階段
第二個階段包括資料庫的實作、操作與監督、修改與調整。

二、資料庫設計的目标

(1)、資料庫設計的目标:

1、滿足應用功能需求
主要指使用者目前與可預知的将來應用所需要的資料及其聯系,準确存儲在資料庫中,滿足使用者所需要對資料進行存、取、删、改等操作。
2、良好的資料庫性能
指對資料的高效率存取和空間的節省,并具有良好的資料共享性、完整性、一緻性及安全保密性。

三、資料庫設計的内容

(1)、資料庫結構設計(

靜态

針對給定的應用環境進行資料庫的模式或子模式的設計,包括資料庫的概念結構設計、邏輯結構設計和實體結構設計

(2)、資料庫行為設計(

動态

确定資料庫使用者的行為和動作,而使用者的行為和動作是對資料庫的操作,通常是通過應用程式來實作的。

四、資料庫設計的方法

(1)、直覺設計法(

缺乏科學理論指導

是一類最原始的資料庫設計方法,它利用設計者的經驗和技巧來設計資料庫模式

(2)、規範設計法

是一類較為普遍、常用的資料庫設計方法

1)、新奧爾良設計方法:較為完整和權威的一種規範設計方法。

四個階段:需求分析、概念結構設計、邏輯結構設計和實體結構設計。

關注重點:注重資料庫的結構設計,不太考慮資料庫的行為設計。

2)、基于E-R模型的資料庫設計方法

3)、基于第三範式的設計方法:一類結構化設計方法

在需求分析的基礎上首先确定資料庫的模式、屬性及屬性間的依賴關系。

(3)、計算機輔助設計法

是指在資料庫設計過程中,以領域專家的知識或經驗為主導,通常通過人機互動的方式來完成設計的某些過程。計算機輔助軟體工具稱為

CASE工具

五、資料庫設計的方法

資料庫系統原理第三章

第二節 資料庫設計的基本步驟

資料庫設計的基本步驟:需求分析、概念結構設計、邏輯結構設計、實體結構設計、資料庫實施、資料庫的運作和維護。

一、需求分析

需求分析的目标:了解與分析使用者的資訊及應用處理的要求,并将結果按一定格式整理,形成需求分析報告。報告将作為後續概念設計、邏輯設計、實體設計、資料庫建立與維護的依據。

需求分析的四個步驟:确定資料庫範圍、分析資料應用過程、收集與分析資料、編寫需求分析報告。

(1)、确定資料庫範圍

确定資料庫應支援哪些應用功能,首先考慮的是支援使用者工作需要所必須的應用要求。

(2)、應用過程分析

指了解并分析資料與資料處理間的關系。應用過程分析的結果是

資料庫結構設計

的重要依據。

資料應用過程可以借助

資料流程圖

或其他資訊及應用結構圖形表示。

(3)、收集與分析資料

其任務是了解并分析資料的組成格式及操作特征,每個資料元素的語義及關系等,收集進行歸檔。

資料的收集與分析工作可從資料的靜态結構、動态結構及資料限制三方面展開。

1)、靜态結構:指不施加應用操作于其上時資料的原始狀況,可通過資料分類表和資料元素表繼續說明。

①資料分類表用于資料的總體描述。

②資料元素表指通常意義下的資料項或屬性。

2)、動态結構:指将應用操作施加于資料之上後資料的狀況,通過任務分類表和資料操作特征表進行說明。

①任務分類表:根據對資料流程圖的分析,将業務處理過程劃分成不同任務。

②資料操作特征表:用以描述任務和資料之間的關系,包括不同任務對資料執行不同操作的頻率

3)、資料限制:指使用資料是的特殊要求。

①資料的安全保密性:針對各種不同類資料,誰擁有操作的不同授權。

②資料的完整性:指資料正确性的限制範圍和驗證準則,以及一緻性保護的要求。

③響應時間:指某些特定應用要求的資料存取時間限制。

④資料恢複:指轉儲及恢複的時機與範圍等要求。

(4)、編寫需求分析報告

要求:可讀性強且無二義性

包含内容

1)、資料庫的應用功能目标

要求:标明資料庫的應用範圍及應達到的應用處理功能。
2)、标明不同使用者視圖範圍
根據機構與職能關系圖和資料流程圖,并參考任務分類表等,确定不同部門或功能的局部視圖範圍。
3)、應用處理過程需求說明

(選擇題)

①資料流程圖:反映應用部門原始業務處理的工作流程。

②任務分類表:标明不同任務的功能及使用狀況。

③資料操作特征表:标明任務和資料間的聯系及不同資料的不同操作特征與執行頻率。

④操作過程說明書:根據資料流程圖、任務分類表及資料操作特征表等,标明主要邏輯執行步驟。

4)、資料字典

是資料庫系統存儲三級結構定義的資料庫,通常指的是資料庫系統中各類資料較長的描述的集合。

功能:存儲和檢索各種資料描述。

包含:資料分類表、資料元素表和各類原始資料。

5)、資料量

根據資料分類表中的靜态資料量和操作特征表中的動态資料量,進行統計計算,求出總量。

6)、資料限制

二、概念結構設計

任務:在需求分析中産生的需求分析報告的基礎上,按照特定的方法設計滿足應用需求的使用者資訊結構(通常稱為概念模型,将需求分析中得到的使用者需求抽象為資訊結構的過程)。

常用方法:實體分析法和屬性綜合法,又分别稱為自頂向下法和自底向上法。

三、邏輯結構設計

目标:将概念模型轉換為等價的、并為特定DBMS所支援資料模型結構。

資料庫邏輯模型由:層次、網狀、關系資料模型表示。

(1)、邏輯結構設計的輸入資訊

1)、獨立于特定DBMS的概念模型

2)、有關響應時間、安全保密性、資料完整性及恢複方面的要求說明,包括保持資料一緻性的規則說明。

3)、資料量及使用頻率

4)、特定DBMS特性,包括DBMS支援的資料模型及資料定義語言的說明。

(2)、邏輯結構設計的輸出資訊

1)、一個特定DBMS支援的概念模式。

2)、一個或多個外部視圖,稱為子模式

3)、實體設計說明,其主要包括存入資料庫中的資料量、使用頻率及響應時間要求。

4)、程式設計說明(執行邏輯步、存取資料的名等的說明)

(3)、邏輯結構設計的步驟

1)、模型轉換

概念模型等價地轉換為特定DBMS支援的關系模型、網狀模型或層次模型

2)、子模式設計

目标:抽取或導出模式的子集,以構造不同使用者使用的局部資料邏輯結構。

3)、編制應用程式設計(

選擇題

目的:為可實際運作的應用程式設計提供依據與指導,并作為設計評價的基礎。

4)、設計評價

任務:分析并檢驗模式及子模式的正确性與合理性,其方法事通過程式設計指南中送出的程式執行邏輯步驟在子模式上的模拟執行來考核模式及子模式是否滿足應用需求,并進一步估計資料容量及存取效率,為實體設計提供參考資訊。

四、實體設計

對于一個給定的資料庫邏輯結構,研究并構造實體結構的過程,任務是确定資料庫在儲存設備上的存儲結構及存取方法。

五、資料庫實施

資料庫實施階段的工作:加載資料、應用程式設計、資料庫試運作。

(1)、加載資料

将符合要求的初始資料裝載到資料庫中(資料的收集、分類等過程)。

(2)、應用程式設計

邏輯設計階段和實體設計階段。

(3)、資料庫試運作

按生産環境運作應用程式,進行對資料庫的各種操作,檢驗其功能和性能,如有不當,或錯誤,根據實際情況或修改應用程式,修改資料庫實體模型等。

六、資料庫運作和維護

(1)、資料庫重組與重構

重組:空間使用率和存取效率下降時進行的,它不改變資料庫的邏輯結構和實體結構,隻利用DBMS提供的設施調整資料庫中的存儲位置,使有關聯的資料

盡可能靠近放,提高空間使用率和資料存取效率。

重構:修改部分資料的邏輯結構或實體結構。

第三節 關系資料庫設計方法

一、概念結構設計方法

采用自頂向下,通過兩個步驟:首先建立局部資訊結構,在将局部資訊結構合成全局資訊結構并優化,使用E-R圖作為概念模型的描述工具。

(1)、E-R圖表示方法

實體型,矩形表示

屬性,橢圓表示

聯系,菱形表示

(2)、局部資訊結構設計(

選擇題、填空題、簡答題

1)、局部資訊結構:根據需求分析報告中标明的不同

使用者視圖

範圍所建立的滿足該範圍内使用者需求的資訊結構
2)、局部資訊結構設計:确定局部範圍、選擇實體、選擇實體關鍵字、确定實體間聯系、确定實體的屬性。

①确定局部範圍

局部範圍主要依據需求分析報告中标明的使用者視圖範圍來确定。

範圍确定的基本準則是部門和功能相對獨立,其他局部範圍互相影響較少,并實體個數适量。

②選擇實體

任務:在确定的局部範圍内選擇一些合适的資訊機關作為局部資訊結構的基本實體。

③選擇實體的關鍵字屬性

④确定實體間聯系

常用分析實體間是否存在聯系的方法:

将局部範圍内的實體逐一取出來與該範圍内的其他實體試行比對,考察能否找到與兩個參加試比對的實體都有關的問題或同一任務同時使用到參與試比對的兩個實體。

⑤确定實體的屬性

屬性分為辨別屬性和說明屬性兩類。

辨別屬性

用作實體的關鍵字,

說明屬性

用作描述實體的一般特征。

說明屬性的基本原則:說明屬性的存在和使用通常依賴于辨別屬性。

(3)、全局資訊結構設計(

選擇題、填空題、簡答題

全局資訊結構必須是所有局部資訊結構的全面準确的映像,局部的應用需求,合并後仍能實作。将上述步驟中産生的所有局部資訊結構合并成為一個全局資訊結構。

各局部E-R圖之間的沖突主要表現在三個方面:屬性沖突、命名沖突和結構沖突。

1)、屬性沖突

屬性域沖突,即屬性值的類型、取值範圍、取值集合的不同。

屬性取值機關沖突。

2)、命名沖突

同名異義,不同意義的實體類型名或聯系類型名在不同的局部應用中具體的名字。

異名同義,同一意義的實體類型名或聯系類型名在不同的局部應用中具有不同的名字。

3)、結構沖突

同一對象在一個局部E-R圖中作為實體,而在另一個局部E-R圖中作為屬性。

同一實體在不同的E-R圖中屬性個數和類型不同。

實體之間的聯系在不同的E-R圖中是不同的類型。

一個好的E全局E-R圖模型,應滿足:實體類型個數盡可能少,實體類型聯系無餘,優化步驟:相關實體類型的合并、消除不必要的備援屬性、消除不必要的備援聯系

二、邏輯結構設計方法

任務:把概念結構設計産生的概念模型轉換為具體的DBMS所支援的邏輯資料模型。在關系資料庫設計中,就是把概念結構設計階段設計好的E-R圖轉換為關系資料庫管理系統所支援的關系模型,三項工作:将E-R圖轉換為關系模型、對關系資料模型進行優化、設計面向使用者的外模式。

(1)、E-R圖向關系模型的轉換

轉換原則:一個實體型轉換為一個關系模式。

實體額屬性作為關系的屬性,實體的碼作為關系的碼。

1)、一個一對一聯系可以轉換為一個獨立的關系模式,也可與任意一端進行合并。

2)、一個一對多聯系可以轉換為一個獨立的關系模式,也可與N端進行合并。

3)、一個多對多聯系轉換為一個關系模式。

4)、三個或三個以上實體間的一個多元聯系可以轉換為一個關系模式。

5)、具有相同碼的關系模式可以合并。

(2)、資料模型的優化通常以關系規範化理論為指導

1)、确定各屬性間的函數依賴關系

2)對于各個關系模式之間的資料依賴進行極小化處理,消除備援的聯系。

3)、判斷每個關系模式的範式,根據實際需要确定最合适的範式。

4)、按照需求分析階段得到的處理要求,分析這些模式對于這樣的應用環境是否合适,确定是否要對模式進行合并或分解。

5)、對關系模式進行必要的分解,提高資料操作的效率和存儲空間的使用率。

(3)、設計使用者子模式

1)、可以通過視圖機制在設計使用者視圖時,重新定義某些屬性的别名,使其更符合使用者的習慣,以友善使用。

2)、可以對不同級别的使用者定義不同視圖,保證系統的安全性。

3)、簡化使用者對系統的使用。

三、實體設計方法

關系資料庫系統的優點是:使用者通常不需要進行資料存儲結構和存取方法的設計。是以實體設計的任務是通過對關系建立索引和聚集來實作與應用相關資料的邏輯連接配接和實體聚集,以改善對資料庫的存取效率。

(1)、建立索引

建立索引的方式通常有靜态和動态兩種。

靜态建立索引是應用人員預先建立索引,一旦建立,後續的應用程式均可直接使用該索引存取資料,多适合使用者較多且使用周期相對較長的資料。

動态建立索是應用人員在程式内外臨時建立索引,多适合于單獨使用者或臨時性使用要求情況。

(2)、建立聚集

将相關資料集中存放的實體存儲技術,借以提高I/O的資料命中率而改善存取速度,其功能由具體的DBMS提供。

資料聚集結構的一種有效方式是塊結構方式,塊于塊之間由指針連接配接,一個塊對應于一個實體分區。