資料庫設計 一、資料庫設計概述 資料庫的生命周期 從資料庫演變過程的角度來看,資料庫的生命周期可分為兩個階段: 資料庫分析與設計階段 需求分析 概念設計 邏輯設計 物理設計 資料庫實現與操作階段 資料庫的實現 操作與監督 修改與調整 資料庫設計的目標 滿足應用功能需求:主要是指用戶當前與可預知的將來 ...
資料庫設計
一、資料庫設計概述
資料庫的生命周期
從資料庫演變過程的角度來看,資料庫的生命周期可分為兩個階段:
- 資料庫分析與設計階段
- 需求分析
- 概念設計
- 邏輯設計
- 物理設計
- 資料庫實現與操作階段
- 資料庫的實現
- 操作與監督
- 修改與調整
資料庫設計的目標
- 滿足應用功能需求:主要是指用戶當前與可預知的將來應用所需要的數據及其聯繫,應全部準確地存儲在資料庫之中,從而可滿足用戶應用中所需求的對數據進行的存、取、刪、改等操作。
- 良好的資料庫性能:主要是指對數據的高效率存取和空間的節省,並具有良好的數據共用性、完整性、一致性及安全保密性。
資料庫設計的內容
- 資料庫結構設計
- 針對給定的應用環境進行資料庫的模式或子模式的設計,包括資料庫的概念結構設計、邏輯結構設計和物理結構設計
- 模式定義並給出各應用程式共用的結構,是靜態的,一經形成通常不會改變
- 資料庫行為設計
- 確定資料庫用戶的行為和動作,而用戶的行為和動作是對資料庫的操作,它們通常是通過應用程式來實現的
- 由於用戶的行為會使資料庫的內容發生變化,所以行為設計是動態的
數據設計的方法
- 直觀設計法
- 一類最原始的資料庫設計方法,它利用設計者的經驗和技巧來設計資料庫模式
- 由於缺乏科學理論的指導,設計的質量很難保證,因此這種方法已不適應如今信息系統的開發
- 規範設計法
- 一類較為普遍、常用的資料庫設計方法
- 新奧爾良(New Orleans)設計方法
- 1978年提出,是目前公認的較為完整和權威的一種規範設計方法
- 將資料庫設計分為四個階段,分別是需求分析、概念結構設計、邏輯結構設計和物理結構設計,它註重資料庫的結構設計、而不太考慮資料庫的行為設計
- 基於E-R模型的資料庫設計方法
- P.P.SChen於1976年提出的
- 基本思想是在需求分析的基礎上用E-R圖構造一個反映現實世界實體之間聯繫的企業模式,然後將此模式轉換成某一特定DBMS下的概念模式
- 基於第三範式的設計方法
- 一類結構化設計方法
- 其思想是在需求分析的基礎上首先確定資料庫的模式、屬性及屬性間的依賴關係,然後將它們組織在一個單一的關係模式中,再分析模式中不符合第三範式的約束條件,進行模式分解,規範成若幹個第三範式關係模式的集合
- 電腦輔助設計法
- 在資料庫設計過程中,以領域專家的知識或經驗為主導,模擬某一規範化設計的方法,通常通過人機交互的方式來完成設計的某些過程
- 目前,許多電腦輔助軟體工程工具(俗稱CASE工具),可以用來幫助資料庫設計人員完成資料庫設計的一些工作,如此可減輕資料庫設計人員的工作量,加快資料庫設計的進度,例如Rational公司的Rational Rose等
資料庫設計的過程
- 需求分析階段
- 結構設計階段
- 概念結構設計
- 邏輯結構設計
- 物理結構設計
- 行為設計階段
- 功能設計
- 事務設計
- 程式設計
- 資料庫實施階段
- 載入資料庫數據
- 調試運行應用程式
- 資料庫運行和維護階段
資料庫設計過程實際上是一個反覆修改、反覆設計的迭代過程
二、資料庫設計的基本步驟
1 需求分析
- 需求分析的目標是瞭解與分析用戶的信息及應用處理的要求,並將結果按一定格式整理而形成需求分析報告。
- 資料庫設計人員進行需求分析的基本方法是聽取資料庫應用部門工作人員的報告,並與之座談。同時,需求分析人員可提交一份需求調查表,該表內容主要包括調查的內容和要求提供資料的格式,應用部門的業務人員則可根據該表進行準備和提交材料。此外,資料庫設計人員還需查閱原始資料,以及跟班作業等。
-
確定資料庫範圍
-
應用過程分析
-
收集與分析數據
- 靜態結構
- 數據分類表:用於數據的總體描述
- 數據元素表:通常意義下的數據項或屬性
- 動態結構:概念設計和物理設計的重要依據
- 任務分類表
- 數據操縱特征表
- 數據約束
- 數據的安全保密性
- 數據的完整性
- 響應時間
- 數據恢復
- 靜態結構
-
編寫需求分析報告
- 實際上,需求分析報告是在需求分析的過程中逐漸整理而形成的,是隨著該過程的不斷深入而反覆修改與完善的。
- 需求分析報告通常包含如下內容
- 資料庫的應用功能目標(功能、性能)
- 標明不同用戶視圖範圍(許可權、用戶、角色)
- 應用處理過程需求說明
- 數據流程圖
- 任務分類表
- 數據操縱特征表
- 操作過程說明書
- 數據字典
- 數據字典(Data Dictionary, DD)是資料庫系統中存儲三級結構定義的資料庫,通常指的是資料庫系統中各類數據詳細描述的集合。
- 功能是存儲和檢索各種數據描述,即元數據(Metadata)
- 通常包括數據分類表、數據元素表和各類原始資料
- 數據量
- 數據約束
2 概念結構設計
- 概念結構設計的任務是在需求分析中產生的需求分析報告的基礎上,按照特定的方法設計滿足應用需求的用戶信息結構,該信息結構通常稱為概念模型。
- 概念模型獨立於任何軟體與硬體,其設計的主要目標是最大限度地滿足應用需求,可完全不顧及具體的硬體和軟體的限制,特別是DBMS的限制,因而它是一個符合用戶要求的趨於理想化的信息結構。
- 概念結構設計的常用方法有實體分析法和屬性綜合法兩種,它們也分別稱為自頂向下法和自底向上法。
3 邏輯結構設計
邏輯結構設計的目標是講概念模型轉換為等價的、併為特定DBMS所支持數據模型的結構。資料庫邏輯模型一般由層次、網狀、關係數據模型表示。
- 邏輯結構設計的輸入與輸出信息
- 輸入信息
- 獨立於特定DBMS的概念模型
- 有關響應時間、安全保密性、數據完整性及恢復方面的要求說明,包括保持數據一致性的規則說明
- 數據量及使用頻率
- 特定DBMS特性,包括DBMS支持的數據模型及數據定義語言的說明
- 輸出信息
- 一個特定DBMS支持的概念模型,或稱之為模型
- 一個或多個外部視圖,或稱之為子模式
- 物理設計說明,其主要包括存入資料庫中的數據量、使用頻率及響應時間要求
- 程式設計說明,其是在需求分析的基礎上,根據已完成的邏輯模型,編製各程式名、執行邏輯步、存取數據的名、順序及操作特征(讀、寫、刪、改)的說明
- 輸入信息
- 邏輯結構設計的步驟
start=>start: 概念設計
operation1=>operation: 模型轉換
operation2=>operation: 子模式設計(左)
operation3=>operation: 應用程式設計說明(右)
operation4=>operation: 設計評價
end=>end: 物理設計
start->operation1->operation2->operation3->operation4->end
其中:
- 模型轉換是指將概念模型等價地轉換為特定DBMS支持的關係模型、網狀模型或層次模型。對於一個特定的應用環境,通常只轉換為用戶要求的某個特定DBMS所支持的一種模型表示。
- 子模式設計的目標是抽取或導出模式的子集,以構造不同用戶使用的局部數據邏輯結構。具體的規則在DBMS的使用指南中通常會有明確的說明。
- 編製應用程式設計說明的目的是為可實際運行的應用程式設計提供依據與指導,並作為設計評價的基礎。
- 設計評價的任務是分析並檢驗模型及子模式的正確性與合理性,其方法是通過程式設計指南中提交的程式執行邏輯步驟在子模式上的模擬執行來考核模型及子模式是否滿足應用需求,有無遺漏,併進一步估計數據容量及存取效率,為物理設計提供參考信息。評價分析中,如若發現不合理之處,則返回到模型轉換處重新執行,如此反覆,直至滿足要求為止。
4 物理設計
- 物理設計是指對於一個給定的資料庫邏輯結構,研究並構造物理結構的過程,其具體任務主要是確定資料庫在存儲設備上的存儲結構及存取方法,因DBMS的不同還可能包括建立索引和聚集,以及物理塊大小、緩衝區個數和大小、數據壓縮的選擇等。
5 資料庫實施
- 載入數據
- 數據的收集(人工)
- 分類(人工)
- 整理(人工)
- 校驗(程式)
- 輸入(程式)
- 應用程式設計
- 資料庫試運行
6 資料庫運行和維護
- 資料庫系統投入實際運行標志著資料庫設計和應用開發的基本完成,但絕不意味著設計和應用開發工作的終止。
- 系統維護中最困難的工作是資料庫重組與重構
- 重組是當空間利用率和存取效率下降時進行的,它並不改變資料庫的邏輯結構和物理結構,只是利用DBMS提供的設施調整資料庫中數據的存儲位置,從而回收“碎片”,使有關聯的數據儘可能靠近存放,達到提高空間利用率和數據存取效率的目的。
- 重構是指部分修改資料庫的邏輯結構或物理結構,這往往因應用需求的改變與拓展或發現當初的設計欠妥而引起的,例如增、刪、改數據類型,增、刪、改索引和聚集等。
三、關係資料庫設計方法
關係資料庫是一類採用關係模型作為邏輯數據模型的資料庫系統,它的設計過程遵從資料庫設計的基本步驟,即同樣包含需求分析、概念結構設計、邏輯結構設計、物理結構設計、資料庫實施、資料庫的運行和維護等這樣一些階段,其中關係資料庫的概念結構設計與邏輯結構設計是關係資料庫整個設計過程的關鍵。
1 關係資料庫設計過程與各級模式
2 概念結構設計方法
- E-R圖的表示方法
- 實體型,其用矩形表示,矩形框內寫明實體的名稱
- 屬性,其用橢圓形表示,並用無向邊將其與相應的實體連接起來
- 聯繫,其用菱形表示,菱形框內寫明聯繫的名稱,並用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯繫的類型(1:1、 1:N、 M:N),如果一個聯繫具有屬性,則這些屬性也要用無向邊與該聯繫連接起來。
實體之間的聯繫:
(1)兩個實體型之間的聯繫
- 一對一聯繫(1:1)
- 一對多聯繫(1:N)
- 多對多聯繫(M:N)
一對一聯繫是一對多聯繫的特例,一對多聯繫是多對多聯繫的特例
(2)兩個以上的實體型之間的聯繫
(3)單個實體型內的聯繫
- 局部信息結構設計
- 確定局部範圍
- 選擇實體
- 數據分類表是選擇實體的直接依據
- 在同一局部信息結構中的實體名稱應具有唯一性
- 選擇實體的關鍵字屬性
- 確定實體間的聯繫
- 確定實體的屬性
- 標識屬性:實體的關鍵字
- 說明屬性:描述實體的一般特征 (單值的)
- 全局信息結構設計
- 各局部E-R圖之間的衝突
- 屬性衝突
- 屬性域衝突,即屬性值的類型、取值範圍、取值集合的不同
- 屬性取值單位衝突
- 命名衝突
- 同名異義
- 異名同義
- 結構衝突
- 同一對象在一個局部E-R圖中作為實體,而在另一局部E-R圖中作為屬性
- 同一實體在不同的E-R圖中屬性個數和類型不同
- 實體之間的聯繫在不同的E-R圖中是不同的類型
- 屬性衝突
- 一個好的全局E-R模型除能反映用戶功能需求之外,還應滿足下列條件:
- 實體類型個數儘可能少
- 實體類型所含屬性儘可能少
- 實體類型間聯繫無冗餘
- 各局部E-R圖之間的衝突
3 邏輯結構設計方法
- E-R圖向關係模型的轉換
- 一個實體型轉換為一個關係模式。實體的屬性作為關係的屬性,實體的碼作為關係的碼
- 一個一對一(1:1)聯繫可以轉換為一個獨立的關係模式,也可以與任意一端對應的關係模式合併
- 一個一對多(1:N)聯繫可以轉換為一個獨立的關係模式,也可以與N端對應的關係模式合併
- 一個多對多(M:N)聯繫轉換為一個關係模式
- 三個或三個以上實體間的一個多元聯繫可以轉換為一個關係模式
- 具有相同碼的關係模式可合併
- 數據模型的優化(方法)
- 確定各屬性間的函數依賴關係
- 對於各個關係模式之間的數據依賴進行極小化處理,消除冗餘的聯繫
- 判斷每個關係模式的範式,根據實際需要確定最合適的範式
- 按照需求分析階段得到的處理要求,分析這些模式對於這樣的應用環境是否合適,確定是否要對某些模式進行合併或分解
- 對關係模式進行必要的分解,提高數據操作的效率和存儲空間的利用率
- 設計用戶子模式
- 可以通過視圖機制在設計用戶視圖時,重新定義某些屬性的別名,使其更符合用戶的習慣,以方便使用
- 可以對不同級別的用戶定義不同的視圖,以保證系統的安全性
- 簡化用戶的對系統的使用
4 物理設計方法
物理設計的任務主要是通過對關係建立索引和聚集來實現與應用相關數據的邏輯連接和物理聚集,以改善對資料庫的存取效率
- 建立索引
- 靜態 (用戶較多且使用周期相對較長的數據)
- 動態 (單獨用戶或臨時性使用)
- 建立聚集
- 聚集是將相關數據集中存放的物理存儲技術,藉以提高I/O的數據命中率而改善存取速度,其功能由具體的DBMS所提供,如MySQL。
- 集中存放時指將相關數據儘可能地存放於一個物理塊中,或一個磁軌中,或一個柱面中,或相鄰區域(塊、磁軌、柱面)中。
- 數據聚集結構的一種有效方式是塊結構方式,塊與塊之間由指針連接,一個塊對應於一個物理分區。
- 數據聚集可在一個或多個關係式建立。
本文來自博客園,作者:QIAOPENGJUN,轉載請註明原文鏈接:https://www.cnblogs.com/QiaoPengjun/p/17250280.html