資料庫設計就是設計資料庫的結構特性,即為特定應用環境構造出最優的資料模型。由於資料庫的結構特性是靜態的,一般不會輕易變動,因此又稱為資料庫的靜態結構設計。
資料庫設計的基本流程:先將客觀世界中的事物、事物間的聯絡用e-r圖表示,彙總各個分 e-r圖 得到乙個總的 e-r圖,在此基礎上得到概念結構模型,最後將概念結構模型轉換為資料庫支援的邏輯結構模型。
紐奧良(new orleans)方法是設計資料庫的一種規範化的方法,它將資料庫設計分為四個階段:需求分析、概念結構設計、邏輯結構設計、物理結構設計。下面分別介紹這四個階段。
需求分析是資料庫設計的第一步,也是最困難、應當投入最大精力的一步。需求分析要做的是了解、分析使用者對系統的需求,弄清系統要達到的目標、要實現的功能。需求分析的結果用 資料流程圖 和 資料字典表示。值得注意的是,要使乙個系統具有較長的生命週期,除了要滿足使用者提出的需求外,還需要系統設計人員**未來系統可能要支援的功能。
下方的 系統 是指整個資料庫系統(包括資料庫和資料庫應用系統)
資料庫中的資訊內容:資料庫中需要儲存哪些資料
資料處理內容:系統應該實現哪些功能
資料的安全性和完整性要求:資料的訪問控制要求、約束限制
從整體上,調查分析系統應該支援的單元有哪些
對每個單元單獨進行分析,明確該單元使用哪些資料、如何使用資料……
確定系統的邊界,即明確哪些功能由系統實現,哪些功能由其他方式如人工、其他已有系統等實現
跟班作業
諮詢專業人士
開調查會
請業務員填寫調查表
查閱賬本、檔案、文獻等文字資料
調查了使用者的需求之後,需要進一步分析調查結果,以更明了的方式表達使用者需求。分析、表達使用者需求的方法有很多,其中一種稱為 結構化分析方法(structured analysis,sa)。
結構化分析方法採用自頂向下,逐步分解的方式分析系統。它把任何乙個系統都抽象為下圖的形式:
資料流程圖表達了資料和處理過程之間的關係。資料的詳細資訊用資料字典表示。
資料字典(data dictionary,dd)則是對系統中資料的詳細描述,它有以下 5 個部分:
資料項 =
資料結構 = }
資料流 = ,平均流量,高峰期流量}
資料儲存 = ,資料量,訪問頻度,訪問方式}
處理過程= ,輸出:,處理:}
概念結構設計是將系統需求分析得到的使用者需求 抽象為資訊結構的過程。概念結構即概念模型,用 e-r圖 對其進行描述。概念結構具有的特點:是現實世界的真實模型、易於理解、易於更改、易於向資料模型轉換。
選擇區域性應用,設計 分e-r圖
合併 分e-r圖,得到乙個總的 e-r圖
檢視的整合就是把設計好的各子系統的 分e-r圖 綜合成乙個系統的 總e-r圖。檢視整合可以有兩種方法:①多個 分e-r圖 一次整合 ②逐步整合,採用累加的方法一次整合兩個 分e-r圖。無論採用哪種方法整合檢視,都要分兩步進行:
消除不同 分e-r圖 之間的衝突問題,包括屬性衝突、命名衝突、結構衝突。
消除不必要的實體集冗餘和聯絡冗餘,這裡有兩種方法:①直觀分析方法消除冗餘②用規範化理論消除冗餘
概念結構設計完成後,便得到了乙個總的e-r圖,以及上一階段需求分析中得到的資料流程圖、資料字典。e-r圖、資料流程圖、資料字典均與特定的資料庫管理系統無關、反映客觀世界情況、易於普通使用者理解。我們需要向使用者確認這三個設計結構是否準確全面。待使用者確認無誤後,方可向下一階段繼續。
從下一階段開始,所作的工作都需要結合具體的系統應用環境,若此時才發現對現實世界的理解有所偏差,再進行修改,成本便高了。因此務必確保概念結構設計和需求分析階段得到的結果與客觀世界符合。
邏輯結構設計的任務就是把概念模型轉換成某個具體的 dbms 所支援的資料模型。通常概念模型向邏輯模型轉換過程分3步進行:
概念模型 轉換為 一般的資料模型
一般的資料模型 轉換為 特定dbms支援的資料模型
優化資料模型
因為目前主流的資料庫大都是關係型資料庫,因此本文主要討論概念模型向關係資料模型的轉換。
首先乙個實體集(e-r圖中的矩形)對應乙個關係;乙個聯絡(e-r圖中的橢圓)根據不同的型別分開討論:
資料庫的物理結構:資料庫在物理裝置上的儲存結構與訪問方法,依賴於給定的計算機系統。
物理結構設計是對於給定的邏輯資料模型,選取乙個最適合應用環境的物理結構。物理結構設計分為兩步:
確定資料庫的訪問方法和訪問結構
對物理結構進行評價(重點是時間和效率),若評價結構滿足原設計要求,則可以進行物理實施;否則要修改物理結構,甚至返回邏輯設計階段修改資料模型
資料庫物理結構設計的任務之一:確定建立哪些訪問路徑、選擇哪些資料訪問方法。關聯式資料庫常用的訪問方法有索引方法、聚簇方法、hash方法等。
注:索引並不是建立的越多越好,因為系統維護索引也要付出代價。例如乙個屬性經常會更新,那麼就不適合在這個屬性上建立索引。
資料庫設計 設計資料庫之前
1.考察現有環境 在設計乙個新資料庫時,你不但應該仔細研究業務需求而且還要考察現有的系統。大多數資料庫 專案都不是從頭開始建立的 通常,機構內總會存在用來滿足特定需求的現有系統 可能沒有實 現自動計算 顯然,現有系統並不完美,否則你就不必再建立新系統了。但是對舊系統的研究 可以讓你發現一些可能會忽略...
資料庫設計 設計資料庫之前
1.考察現有環境 在設計乙個新資料庫時,你不但應該仔細研究業務需求而且還要考察現有的系統。大多數資料庫 專案都不是從頭開始建立的 通常,機構內總會存在用來滿足特定需求的現有系統 可能沒有實 現自動計算 顯然,現有系統並不完美,否則你就不必再建立新系統了。但是對舊系統的研究 可以讓你發現一些可能會忽略...
資料庫設計 設計資料庫之前
1.考察現有環境 在設計乙個新資料庫時,你不但應該仔細研究業務需求而且還要考察現有的系統。大多數資料庫 專案都不是從頭開始建立的 通常,機構內總會存在用來滿足特定需求的現有系統 可能沒有實 現自動計算 顯然,現有系統並不完美,否則你就不必再建立新系統了。但是對舊系統的研究 可以讓你發現一些可能會忽略...