- 數據庫原理及應用(Access版)第3版
- 吳靖
- 1581字
- 2020-04-07 16:33:28
1.4 數據庫設計的基本步驟
數據是一個組織機構的重要資源之一,是組織積累的寶貴財富,通過對數據的分析,可以了解組織的過去,把握今天,預測未來。但這些數據通常是大量的、甚至是雜亂無章的,如何合理、有效地組織這些數據,是數據庫設計的重要任務之一。
正如前面所述,數據庫是企業或組織所積累的數據的聚集,除了每一個具體數據以外,這些數據是邏輯相關的,即數據之間是有聯系的。數據庫是組織和管理這些數據的常用工具。數據庫設計討論的問題是:根據業務管理和決策的需要,應該在數據庫中保存什么數據;這些數據之間有什么聯系;如何將所需要的數據劃分到表格的列,并且建立表之間的關系。
數據的三個范疇分為:現實世界、信息世界和計算機世界。數據庫設計的過程,就是將數據的表示從現實世界抽象到信息世界(概念模型),再從信息世界轉換到計算機世界(數據模型)。
數據庫設計的目的在于提供實際問題的計算機表示,在于獲得支持高效存取數據的數據結構。數據庫中用數據模型這個工具來抽象和描述現實世界中的對象(人或事物)。數據庫設計分為4個步驟,如圖1-5所示。

圖1-5 數據庫設計步驟
1.需求分析
對需要使用數據庫系統來進行管理的現實世界中對象(人或事物)的業務流程、業務規則和所涉及的數據進行調查、分析和研究,充分理解現實世界中的實際問題和需求。需求分析的策略一般有兩種:自下向上的方法和自上向下的方法。
(1)自下向上的方法
對事物進行了解,理解實際問題的業務規則和業務流程。在此基礎上,歸納出該事物處理過程中需要存放在數據庫中的數據。
例如,一個產品銷售數據庫,需要保存客戶的哪些數據?可以做出一個二維表格,每一列是一個數據項,每一行是一個客戶信息,可能包括:客戶姓名、地址、郵政編碼、手機號碼等等。
(2)自上向下的方法
從為描述事物最終提供的各種報表和經常需要查詢的信息著手,分析出應包含在數據庫中的數據。
例如,上述產品銷售數據庫的客戶信息,是否需要按客戶性別進行統計分析,如果需要,就應該增加一列“性別”數據項。
進行需求分析時,通常會同時使用上述兩種方法。自下向上的方法反映了實際問題的信息需求,是對數據及其結構的需求,是一種靜態需求;自上向下的方法側重于對數據處理的需求,即實際問題的動態需求。
2.數據庫概念設計
數據庫概念設計是在需求分析的基礎上,建立概念數據模型(Conceptual Data Model);用概念模型描述實際問題所涉及的數據以及數據之間的聯系;這種描述的內容和描述的詳細程度取決于期望得到的信息。一種較常用的概念模型是實體-聯系模型,又稱E-R(Entity-Relationship)模型。E-R模型用實體和實體之間的聯系來表達數據以及數據之間的聯系。
例如,產品銷售數據庫,供應商是實體、客戶是另一個實體,產品是實體,訂單是實體,并且它們之間是有聯系的;使用E-R模型描述這些實體以及它們之間的聯系。
3.數據庫邏輯設計
數據庫邏輯設計是根據概念數據模型建立邏輯數據模型(Logic Data Model)。邏輯數據模型是一種面向數據庫系統的數據模型,本節使用目前被廣泛使用的關系數據模型來描述數據庫邏輯設計:根據概念模型建立數據的關系模型(Relational Model);用關系模型描述實際問題在計算機中的表示。關系模型是一種數據模型,用二維表格的形式來表示數據以及數據之間的聯系。數據庫的邏輯設計實際是把E-R模型轉換為關系模型的過程。
E-R模型和關系模型分屬兩個不同的層次,E-R模型更接近于用戶,不需要用戶具有計算機知識,屬于現實世界范疇;而關系模型是從計算機的角度描述數據及數據之間的聯系,需要使用者具有一定計算機知識,屬于計算機范疇。
4.數據庫實現(數據庫物理設計)
依據關系模型,在數據庫管理系統環境中建立數據庫。如在Access中,Access把數據組織到表格,表格由行和列組成。簡單的數據庫可能只包含一個表格,但是大多數數據庫是包含多個表的,并且表之間有聯系。
例如產品銷售數據庫,就應該至少包含供應商表、客戶表、產品表、訂單表等,這些表通過主鍵建立聯系。
- OpenShift開發指南(原書第2版)
- Building Modern Web Applications Using Angular
- Dynamics 365 Application Development
- Python Geospatial Development(Second Edition)
- 名師講壇:Java微服務架構實戰(SpringBoot+SpringCloud+Docker+RabbitMQ)
- WordPress Plugin Development Cookbook(Second Edition)
- Unreal Engine 4 Shaders and Effects Cookbook
- WordPress 4.0 Site Blueprints(Second Edition)
- UVM實戰
- Building Machine Learning Systems with Python(Second Edition)
- .NET Standard 2.0 Cookbook
- C編程技巧:117個問題解決方案示例
- C++程序設計
- Laravel Design Patterns and Best Practices
- C語言程序設計實驗指導