天天看點

資料庫設計

資料庫設計

資料庫設計就是設計資料庫的結構特性,即為特定應用環境構造出最優的資料模型。由于資料庫的結構特性是靜态的,一般不會輕易變動,是以又稱為資料庫的靜态結構設計。

資料庫設計的基本流程:先将客觀世界中的事物、事物間的聯系用 E-R圖 表示,彙總各個分 E-R圖 得到一個總的 E-R圖,在此基礎上得到 概念結構模型,最後将概念結構模型轉換為資料庫支援的 邏輯結構模型。

新奧爾良(New Orleans)方法 是設計資料庫的一種規範化的方法,它将資料庫設計分為四個階段:需求分析、概念結構設計、邏輯結構設計、實體結構設計。下面分别介紹這四個階段。

需求分析

需求分析是資料庫設計的第一步,也是最困難、應當投入最大精力的一步。需求分析要做的是了解、分析使用者對系統的需求,弄清系統要達到的目标、要實作的功能。需求分析的結果用 資料流程圖 和 資料字典表示。值得注意的是,要使一個系統具有較長的生命周期,除了要滿足使用者提出的需求外,還需要系統設計人員預測未來系統可能要支援的功能。

下方的 系統 是指整個資料庫系統(包括資料庫和資料庫應用系統)

系統需求調查的内容

資料庫中的資訊内容:資料庫中需要存儲哪些資料

資料處理内容:系統應該實作哪些功能

資料的安全性和完整性要求:資料的存取控制要求、限制限制

系統需求調查的步驟

從整體上,調查分析系統應該支援的單元有哪些

對每個單元單獨進行分析,明确該單元使用哪些資料、如何使用資料……

确定系統的邊界,即明确哪些功能由系統實作,哪些功能由其他方式如人工、其他已有系統等實作

系統需求調查的方法

跟班作業

咨詢專業人士

開調查會

請業務員填寫調查表

查閱賬本、檔案、文獻等文字資料

系統需求分析的方法

調查了使用者的需求之後,需要進一步分析調查結果,以更明了的方式表達使用者需求。分析、表達使用者需求的方法有很多,其中一種稱為 結構化分析方法(Structured Analysis,SA)。

結構化分析方法采用自頂向下,逐漸分解的方式分析系統。它把任何一個系統都抽象為下圖的形式:

資料流程圖表達了資料和處理過程之間的關系。資料的詳細資訊用資料字典表示。

資料字典

資料字典(Data Dictionary,DD)則是對系統中資料的較長的描述,它有以下 5 個部分:

資料項 = {資料項名,資料項含義說明,别名,類型,長度,取值範圍,與其他資料項的邏輯關系}

資料結構 = {資料結構名,含義說明,組成,{資料項或資料結構}}

資料流 = {資料流名,說明,流出過程,流入過程,組成:{資料結構},平均流量,高峰期流量}

資料存儲 = {資料存儲名,說明,編号,輸入的資料流,輸出的資料流,組成:{資料結構},資料量,存取頻度,存取方式}

處理過程= {處理過程名,說明,輸入:{資料流},輸出:{資料流},處理:{簡要說明}}

概念結構設計

概念結構設計是将系統需求分析得到的使用者需求 抽象為資訊結構的過程。概念結構即概念模型,用 E-R圖 對其進行描述。概念結構具有的特點:是現實世界的真實模型、易于了解、易于更改、易于向資料模型轉換。

概念結構的設計步驟

選擇局部應用,設計 分E-R圖

合并 分E-R圖,得到一個總的 E-R圖

視圖的內建

視圖的內建就是把設計好的各子系統的 分E-R圖 綜合成一個系統的 總E-R圖。視圖內建可以有兩種方法:①多個 分E-R圖 一次內建 ②逐漸內建,采用累加的方法一次內建兩個 分E-R圖。無論采用哪種方法內建視圖,都要分兩步進行:

消除不同 分E-R圖 之間的沖突問題,包括屬性沖突、命名沖突、結構沖突。

消除不必要的實體集備援和聯系備援,這裡有兩種方法:①直覺分析方法消除備援 ②用規範化理論消除備援

概念結構設計完成後,便得到了一個總的E-R圖,以及上一階段需求分析中得到的資料流程圖、資料字典。E-R圖、資料流程圖、資料字典均與特定的資料庫管理系統無關、反映客觀世界情況、易于普通使用者了解。我們需要向使用者确認這三個設計結構是否準确全面。待使用者确認無誤後,方可向下一階段繼續。

從下一階段開始,所作的工作都需要結合具體的系統應用環境,若此時才發現對現實世界的了解有所偏差,再進行修改,成本便高了。是以務必確定概念結構設計和需求分析階段得到的結果與客觀世界符合。

邏輯結構設計

邏輯結構設計的任務就是把概念模型轉換成某個具體的 DBMS 所支援的資料模型。通常概念模型向邏輯模型轉換過程分3步進行:

概念模型 轉換為 一般的資料模型

一般的資料模型 轉換為 特定DBMS支援的資料模型

優化資料模型

因為目前主流的資料庫大都是關系型資料庫,是以本文主要讨論概念模型向關系資料模型的轉換。

概念模型向關系模型的轉換

首先一個實體集(E-R圖中的矩形)對應一個關系;一個聯系(E-R圖中的橢圓)根據不同的類型分開讨論:

1:1 和 1:n 的聯系:聯系可單獨成為一個關系;也可以合并到 n 端的實體集對應的關系中,此時關系的碼不變

n:m 的聯系和多對多的多元聯系(三個及以上的實體集産生的聯系):聯系隻能單獨成為一個關系,該關系的碼是 與該聯系相連的各實體碼的組合

實體結構設計

資料庫的實體結構:資料庫在實體裝置上的存儲結構與存取方法,依賴于給定的計算機系統。

實體結構設計是對于給定的邏輯資料模型,選取一個最适合應用環境的實體結構。實體結構設計分為兩步:

确定資料庫的存取方法和存取結構

對實體結構進行評價(重點是時間和效率),若評價結構滿足原設計要求,則可以進行實體實施;否則要修改實體結構,甚至傳回邏輯設計階段修改資料模型

資料庫實體結構設計的任務之一:确定建立哪些存取路徑、選擇哪些資料存取方法。關系資料庫常用的存取方法有索引方法、聚簇方法、Hash方法等。

關系模式中索引存取方法的選擇

如果一個(一組)屬性經常出現在查詢條件中,則考慮在這一個(一組)屬性上建立索引

如果一個屬性經常作為最大值和最小值等聚集函數的參數,則考慮在這個屬性上建立索引

如果一個(一組)屬性經常在連接配接操作中出現,則考慮在這一個(一組)屬性上建立索引

注:索引并不是建立的越多越好,因為系統維護索引也要付出代價。例如一個屬性經常會更新,那麼就不适合在這個屬性上建立索引。

原文位址

https://www.cnblogs.com/gu13/p/db-design.html