「軟考高級系統架構師」-資料庫設計方法及基本步驟

數據庫設計的過程是數據庫系統和現實世界密切地、有機地、協調一致地結合起來的過程。數據庫的設計質量與設計者的知識、經驗和水平密切相關。作為數據庫系統的重要組成部分,數據庫設計的成敗往往直接關係到整個應用的成敗。以數據庫為基礎的數據庫應用系統與其他計算機應用系統相比往往具有數據量龐大、數據關係複雜、數據保存時間長、用戶要求多樣化等特點。

數據庫設計會面臨哪些困難和問題呢?

  1. 同時具備數據庫知識與應用業務知識的人太少。懂得計算機與數據庫的人一般都缺乏應用業務知識和實際經驗,而熟悉應用業務的人又往往不懂計算機和數據庫的知識;
  2. 項目初期往往不能確定應用系統的數據庫系統的目標;
  3. 缺乏完善的設計工具和設計方法;
  4. 需求的不確定性。用戶總會在系統的開發過程中不斷提出新的要求,甚至在數據庫建立之後還會要求修改數據庫結構或者增加新的應用;
  5. 應用業務系統的千差萬別,很難找到一種合適所有業務的工具和方法,這就增加了研究數據庫自動生成工具的難度。

數據設計的方法

目前已有的數據庫設計方法可分為四類:直觀設計法、自動化設計法、規範化設計法和計算機輔助設計法。直觀設計法又稱單步邏輯設計法,它依賴於設計者的知識、經驗和技巧,缺乏工程規範的支持和科學依據,設計的質量也不穩定,因此越來越不適應信息管理系統發展的需要。為了改變這種狀況,由來自30多個歐美國家的主要數據庫專家在美國專門討論了數據庫設計問題,1978年10月提出了數據庫設計規範,把數據庫設計分為需求分析、概念結構設計、邏輯結構設計和物理結構設計4個階段。目前,常用的規範設計方法大多起源於美國新奧爾良方法,如基於3NF的設計方法、LRA方法、面向對象的數據設計方法及基於視圖概念的數據庫誰方法等。

基於3NF的數據庫設計方法是由S.Atre提出的數據庫設計的結構化設計方,其基本思想是在需求分析的基礎上,識別並確認數據庫模式中的全部屬性和屬性間的依賴,將它們組織成一個單一的關係模型,然後再分析模式中不符合3NF的約束條件,用投影和連接的方法將其分解,使其達到3NF的條件。具體步驟分為5個階段,如下圖:

「軟考高級系統架構師」-數據庫設計方法及基本步驟

基於3NF的數據庫設計方法

1、設計企業概念模式,利用上述得到的3NF關係模型畫出的企業模式。具體包括:

  • 分析應用環境,並設定環境中所使用的各種資料;
  • 確保每一種報表各自所包含的數據元素;
  • 確定數據元素之間的關係,如確定主關鍵字和一般元素的關係;
  • 對一組或若干組數據元素推導出3NF的關係模型;
  • 在3NF的關係模型的基礎上畫出數據的企業模式。

2、設計數據庫邏輯模式,根據上一步得到企業概念模式選定數據模式,從而得到適用於某個DBMS的邏輯模式。根據邏輯模式導出各種報表和事務處理所使用的外模式。

3、設計數據庫物理模式(存儲模式),根據數據庫的邏輯模式和給定的計算機系統設計物理模式。

4、評價物理模式,對物理模式估算空間利用情況,並推算輸入輸出的概率。必要時根據物理模式調整各種報表和事務處理的外模式。對外模式進行存取時間的估算。

5、數據庫實現。具體實現數據庫。

數據庫設計的基本步驟

分佈設計法遵循自頂向下、逐步求精的原則,將數據庫設計過程分解為若干相互獨立又相互依存的階段,每一個階段採用不同的技術和工具,用來解決不同的問題,從而將問題局部化,減少局部問題對整體設計的影響。目前,此方法已經在數據庫設計中得到了廣泛的應用,並獲得了較好的效果。

在分佈設計法中,通常將數據庫設計分為需求分析、概念結構設計、邏輯結構設計和物理結構設計4個階段,如下圖所示:

「軟考高級系統架構師」-數據庫設計方法及基本步驟

分佈設計法的數據庫設計步驟

1、需求分析。是指收集和分析用戶對系統的信息需求和處理需求,得到系統設計所必須的需求信息,建立系統說明文檔。其目標是通過調查研究,瞭解用戶的數據要求和處理要求,並按一定整理形成需求說明書。需求說明書是需求分析階段的成果,也是今後設計的依據,它包括數據庫所涉及的數據、數據的特徵、使用頻率和數據量的估計,如數據名、屬性及其類型、主關鍵字屬性、完整性約束、保密要求、更改要求、數據量評估、使用頻率等。這些關於數據的數據稱為元數據。在設計大型數據庫時,這些數據通常用數據字典來管理。用數據字典管理元數據有利於避免數據的重複和重名,以保持數據的一致性及提供各種統計數據,因而有利於提高數據設計的質量,同時減輕設計者的負擔。

2、概念結構設計。它是數據設計的第二階段,其目標是對需求說明書提供的所有數據和處理要求進行抽象和綜合處理,按一定的方法構造反映用戶環境的數據及其相關的概念模型,即用戶的數據模型或企業模型。這種概念數據庫模型與DBMS無關,是面向現實世界的、極易被用戶所理解的數據模型。為保證設計概念模型能正確、完整的反映用戶的數據及其相互之間的關係,便於所要求的各種處理,在本階段設計中可吸收用戶參與和評價設計。在進行概念設計時,可先設計各個應用的視圖(view),即各個應用所看到的數據及其結構,然後再進行視圖集成,形成一個單一的概念數據模型。這樣形成的初步數據模型還要經過數據庫設計者和用戶的審查和修改,最後形成所需要的概念模型。

3、邏輯結構設計。這一階段的目標是把上一階段得到的與DBMS無關的概念數據模型轉換為等價的,併為某個特定的DBMS所接受的邏輯模型所表示的概念模式,同時將概念模式設計得到的應用視圖轉換為外部模式,即特定的DBMS下的應用視圖。在轉換過程中需要進一步落實需求說明,並滿足DBMS的各種限制。該階段的結果是用DBMS所提供的數據定義語言(DDL)寫成的數據模式。邏輯設計的具體方法與DBMS的邏輯數據模型有關。邏輯數據模型應滿足數據庫存取、一致性及運行等各方面的用戶要求。

4、數據庫物理設計。該階段的任務是邏輯設計階段得到的滿足用戶需求的已確定的邏輯模型在物理上加以實現,其主要內容是根據DBMS提供的各種手段,設計數據存儲形式和存取路徑,如文件結構、索引設計等,即設計數據庫的內模式或存儲模式。

實際上,數據庫設計的基本過程與任何複雜系統開發一樣,在每一個階段設計基本完成後,都需要進行認真的檢查,看是否滿足應用需求,是否符合前面已執行步驟的要求和滿足後續步驟的需要,並分析設計結果的合理性。在每一個階段設計中,都可能發現前面步驟的遺漏或處理不當之處,此時,往往需要返回去重新處理並修改設計和有關文檔。所以數據庫設計過程通常是一個反覆修改、反覆設計的迭代過程。

「軟考高級系統架構師」-數據庫設計方法及基本步驟

下一篇將會詳細說明需求分析、概念結構設計、邏輯結構設計以及物理結構設計。


分享到:


相關文章: