書名: 數據庫系統原理及應用教程(第4版)作者名: 劉瑞新等本章字數: 3590字更新時間: 2020-05-28 17:16:19
3.1 數據庫系統設計概述
本節介紹數據庫系統設計的基本內容,介紹數據庫系統設計的基本方法和步驟,還介紹數據庫系統設計的特點和應注意的問題。
3.1.1 數據庫系統設計的內容
數據庫系統設計的目標是:對于給定的應用環境,建立一個性能良好的、能滿足不同用戶使用要求的、又能被選定的DBMS所接受的數據庫系統模式。按照該數據庫系統模式建立的數據庫系統,應當能夠完整地反映現實世界中信息及信息之間的聯系;能夠有效地進行數據存儲;能夠方便地執行各種數據檢索和處理操作;并且有利于進行數據維護和數據控制管理的工作。
數據庫系統設計的內容主要有:數據庫的結構特性設計,數據庫的行為特性設計,數據庫的物理模式設計。在數據庫系統設計過程中,數據庫結構特性的設計起著關鍵作用,行為特性設計起著輔助作用。將數據庫的結構特性設計和行為特性設計結合起來,相互參照,同步進行,才能較好地達到設計目標。
1.數據庫的結構特性設計
數據庫的結構特性是指數據庫的邏輯結構特征。由于數據庫的結構特性是靜態的,一般情況下不會輕易變動,因此數據庫的結構特性設計又稱為數據庫的靜態結構設計。
數據庫的結構特性設計過程是:先將現實世界中的事物、事物間的聯系用E-R圖表示,再將各個分E-R圖匯總,得出數據庫的概念結構模型,最后將概念結構模型轉化為數據庫的邏輯結構模型表示。
2.數據庫的行為特性設計
數據庫的行為特性設計是指確定數據庫用戶的行為和動作,并設計出數據庫應用系統的系統層次結構、功能結構和系統數據流程圖,確定數據庫的子模式。數據庫用戶的行為和動作是指數據查詢和統計、事物處理及報表處理等操作,這些都要通過應用程序表達和執行。由于用戶行為總是更新數據庫內容的存取數據操作,用戶行為特性是動態的,所以數據庫的行為特性設計也稱為數據庫的動態特性設計。
數據庫行為特性的設計步驟是:將現實世界中的數據及應用情況用數據流程圖和數據字典表示,并詳細描述其中的數據操作要求(即操作對象、方法、頻度和實時性要求);確定系統層次結構;確定系統的功能模塊結構;確定數據庫的子模式;確定系統數據流程圖。
3.數據庫的物理模式設計
數據庫的物理模式設計要求:根據庫結構的動態特性(即數據庫應用處理要求),在選定的DBMS環境下,把數據庫的邏輯結構模型加以物理實現,從而得出數據庫的存儲模式和存取方法。
3.1.2 數據庫系統設計應注意的問題
人們總是希望自己設計的數據庫系統簡單易用,具有安全性、可靠性、易維護性、易擴充性、最小冗余性等特點,并希望數據庫對不同用戶數據的存取都有較高的響應速度。為了能夠達到這樣的設計目標,設計者應當嚴格遵循數據庫設計的方法和規則。數據庫系統的設計是一項涉及多學科的綜合性技術。進行數據庫系統設計時,應當注意以下兩個問題。
1.進行數據庫系統設計時應考慮計算機硬件、軟件和干件的實際情況
在進行數據庫設計時,應當考慮3方面的內容。
(1)數據庫系統的硬件條件是基礎
數據庫系統必須適應計算機硬件環境,根據其數據存儲設備、網絡和通信設備、計算機性能等硬件條件設計數據庫的規模、數據存儲方式、分布結構以及數據通信方式。
(2)數據庫管理系統和數據庫應用系統開發軟件是軟件環境
在數據庫系統設計前,應當選擇合適的數據庫管理系統(DBMS)和數據庫應用系統開發軟件,使之適合數據庫系統的要求。應當了解選定的數據庫管理系統和數據庫應用系統開發軟件的特點,利用其數據操作和數據控制的優勢,適應其的特殊要求和限制,并使兩者能較好地配合。
(3)數據庫用戶的技術水平和管理水平是關鍵
為了提高數據庫用戶及數據庫管理員的應用和管理數據庫系統的水平,應當讓他們充分參與設計數據庫的工作,使之對數據庫設計過程的每個細節都了解得比較清楚。這樣,不但能夠提高設計效率,而且有助于數據庫用戶及數據庫管理員對數據庫進行管理、擴充和維護等日常工作。
2.數據庫系統設計時應使結構特性設計和行為特性設計緊密結合
數據庫設計過程是一種自上而下的、逐步逼近設計目標的過程。數據庫設計過程是結構設計和行為設計分離設計、相互參照、反復探尋的過程。
圖3-1是數據庫設計的過程圖。圖中說明:數據庫的邏輯模式設計要與事務設計結合起來,以支持全部事務處理的要求;為了更有效地支持事務處理,還需要進行數據庫的物理結構設計,以實現數據存取功能;數據庫的子模式則是根據應用程序的需要而設計的。

圖3-1 數據庫設計過程
在數據庫系統設計中,結構特性設計和行為特性設計必須緊密結合才能達到其設計目標。數據庫系統設計者應當具有戰略眼光,考慮到當前、近期和遠期三個時間段的用戶需求。設計的系統應當能完全滿足用戶當前和近期對系統的數據需求,并對遠期的數據需求有相應的處理方案。數據庫系統設計者應充分考慮到系統可能的擴充與改變,使設計出的系統有較長的生命力。
3.1.3 數據庫設計的基本方法
現實世界的信息結構復雜且應用環境多種多樣,在很長一段時間內,數據庫設計是采用手工試湊法進行的。用手工試湊法設計數據庫與設計人員的經驗和水平有直接關系,它更像是一種技藝而不是工程技術。這種方法缺乏科學的理論和工程方法支持,數據庫的質量很難得到保證,數據庫常常是在投入使用以后才發現問題,不得不進行修改,這樣就增加了系統維護的代價。十余年來,人們努力探索,提出了各種各樣的數據庫系統設計方法,并提出了多種數據庫系統設計的準則和規程,這些設計方法被稱為規范設計法。
新奧爾良(New Orleans)方法是規范設計法中的一種方法,它將數據庫設計分為4個階段:需求分析、概念設計、邏輯設計和物理設計。其后,許多科學家進行了改進,認為數據庫設計應分6個階段進行:需求分析、概念結構設計、邏輯結構設計、物理結構設計、數據庫實施和數據庫運行和維護。在數據庫設計的不同階段上,實現的具體方法有基于E-R模型的數據庫設計方法、基于3NF(第3范式)的設計方法、基于抽象語法規范的設計方法等。
3.1.4 數據庫系統設計的基本步驟
圖3-2中列出了數據庫設計的步驟和各個階段應完成的基本任務,下面介紹具體內容。

圖3-2 數據庫設計步驟
1.需求分析階段
需求分析是數據庫設計的第一步,也是最困難、最耗時間的一步。需求分析的任務是準確了解并分析用戶對系統的需要和要求,弄清系統要達到的目標和實現的功能。需求分析是否做得充分與準確,決定著在其上構建數據庫大廈的速度與質量。如果需求分析做得不好,會影響整個系統的性能,甚至會導致整個數據庫設計返工重做。
2.概念結構設計階段
概念結構設計是整個數據庫設計的關鍵。在概念結構的設計過程中,設計者要對用戶需求進行綜合、歸納和抽象,形成一個獨立于具體計算機和DBMS的概念模型。
3.邏輯結構設計階段
數據邏輯結構設計的主要任務是將概念結構轉換為某個DBMS所支持的數據模型,并將其性能進行優化。
4.物理設計階段
數據庫物理設計的主要任務是為邏輯數據模型選取一個最適合應用環境的物理結構,包括數據存儲位置、數據存儲結構和存取方法。
5.數據庫實施階段
在數據庫實施階段中,系統設計人員要運用DBMS提供的數據操作語言和宿主語言,根據數據庫的邏輯設計和物理設計的結果建立數據庫、編制與調試應用程序、組織數據入庫并進行系統試運行。
6.數據庫運行和維護階段
數據庫應用系統經過試運行后即可投入正式運行。在數據庫系統運行過程中,必須不斷地對其結構性能進行評價、調整和修改。
設計一個完善的數據庫應用系統是不可能一蹴而就的,它往往是上述6個階段的不斷反復。需要指出的是,這6個設計步驟既是數據庫設計的過程,也包括了數據庫應用系統的設計過程。在設計過程中,應把數據庫的結構設計和數據處理的操作設計緊密結合起來,這兩個方面的需求分析、數據抽象、系統設計及實現等各個階段應同時進行,相互參照和相互補充。如果不了解應用環境對數據的處理要求或沒有考慮如何去實現這些處理要求,是不可能設計出一個良好的數據庫結構的。
上述數據庫設計的原則和設計過程概括起來,可用表3-1進行描述。
表3-1 數據庫系統設計階段

表3-1中有關處理特性的設計描述、設計原理、設計方法、工具等具體內容,在軟件工程和信息系統設計等其他相關課程中有詳細介紹。這里主要討論有關數據特性的問題,包括數據特性的描述、如何參照處理特性、完善數據模型設計等問題。
在圖3-3中,描述了數據庫結構設計不同階段要完成的不同級別的數據模式。

圖3-3 數據庫的各級模式
數據庫設計過程中:需求分析階段,設計者的中心工作是弄清并綜合各個用戶的應用需求;概念設計階段,設計者要將應用需求轉換為與計算機硬件無關的、與各個數據庫管理系統產品無關的概念模型(即E-R圖);邏輯設計階段,要完成數據庫的邏輯模式和外模式的設計工作,即系統設計者要先將E-R圖轉換成具體的數據庫產品支持的數據模型,形成數據庫邏輯模式,然后根據用戶處理的要求、安全性的考慮建立必要的數據視圖,形成數據的外模式;在物理結構設計階段,要根據具體使用的數據庫管理系統的特點和處理的需要進行物理存儲安排,并確定系統要建立的索引,得出數據庫的內模式。
- ETL數據整合與處理(Kettle)
- 大數據可視化
- Enterprise Integration with WSO2 ESB
- 數據驅動:從方法到實踐
- Sybase數據庫在UNIX、Windows上的實施和管理
- 數據庫原理與應用(Oracle版)
- 一個64位操作系統的設計與實現
- Hands-On Mathematics for Deep Learning
- 重復數據刪除技術:面向大數據管理的縮減技術
- Visual FoxPro數據庫技術基礎
- 商業智能工具應用與數據可視化
- 數據庫原理與設計實驗教程(MySQL版)
- Node.js High Performance
- Arquillian Testing Guide
- AutoCAD基礎與應用精品教程(2008版)