資料庫設計
一、資料庫設計概述
資料庫的生命周期
從資料庫演變程序的角度來看,資料庫的生命周期可分為兩個階段:
- 資料庫分析與設計階段
- 需求分析
- 概念設計
- 邏輯設計
- 物理設計
- 資料庫實作與操作階段
- 資料庫的實作
- 操作與監督
- 修改與調整
資料庫設計的目標
- 滿足應用功能需求:主要是指用戶當前與可預知的將來應用所需要的資料及其聯系,應全部準確地存盤在資料庫之中,從而可滿足用戶應用中所需求的對資料進行的存、取、刪、改等操作,
- 良好的資料庫性能:主要是指對資料的高效率存取和空間的節省,并具有良好的資料共享性、完整性、一致性及安全保密性,
資料庫設計的內容
- 資料庫結構設計
- 針對給定的應用環境進行資料庫的模式或子模式的設計,包括資料庫的概念結構設計、邏輯結構設計和物理結構設計
- 模式定義并給出各應用程式共享的結構,是靜態的,一經形成通常不會改變
- 資料庫行為設計
- 確定資料庫用戶的行為和動作,而用戶的行為和動作是對資料庫的操作,它們通常是通過應用程式來實作的
- 由于用戶的行為會使資料庫的內容發生變化,所以行為設計是動態的
資料設計的方法
- 直觀設計法
- 一類最原始的資料庫設計方法,它利用設計者的經驗和技巧來設計資料庫模式
- 由于缺乏科學理論的指導,設計的質量很難保證,因此這種方法已不適應如今資訊系統的開發
- 規范設計法
- 一類較為普遍、常用的資料庫設計方法
- 新奧爾良(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
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/547985.html
標籤:MySQL
上一篇:MySQL基礎:事務
