本文最初由security發布於security的博客,禁止任何形式的剽竊行為
轉載原創文章請注明,轉載自:security的博客
數據庫設計
- 綜合性的技術
- 涉及信息技術
- 數據庫技術
- 軟件工程技術
數據庫設計概述
數據庫設計是指對於一個給定的應用環境,構造(設計)優化的數據庫邏輯模式和物理結構,並據此建立數據庫及其應用系統使之能夠有效的存儲和管理數據,滿足各種用戶的應用需求,包括信息管理要求和數據操作要求。
- 信息管理要求:在數據庫中應該存儲和管理哪些數據對象; 數據操作要求:對數據對象需要進行哪些操作,如查詢、增、刪、改、統計等操作;
- 數據庫設計目標
為用戶和各種應用系統提供一個信息基礎設施的高效率的運行環境;
- 高效率的運行環境
- 數據庫數據的存取效率高
- 數據庫存儲空間的利用率高
- 數據庫系統運行管理的效率高
- 數據庫設計的特點
- 數據庫建設的基本規律
三分技術,七分管理,十二分基礎數據
- 管理:
數據庫建設項目管理
企業(即應用部門)的業務管理- 基礎數據:
數據的收集、整理、組織和不斷更新
- 結構(數據)設計和行為(處理)設計相結合
將數據庫結構設計和數據處理設計密切結合
- 結構和行為分離的設計
- 傳統的軟件工程:重行為設計
忽視對應用中數據語義的分析和抽象,只要有可能就盡量推遲數據結構設計的決策- 早期的數據庫設計:重結構設計
致力於數據模型和數據庫建模方法的研究,忽視了行為設計對結構設計的影響;
- 大型數據庫的設計是涉及多學科的綜合性技術
- 要求設計人員具有以下多方面的知識和技能管理
- 計算機的基礎知識
- 數據庫的基本知識
- 軟件工程的原理和方法
- 數據庫設計的技術
- 序設計的方法和技巧
- 應用領域的專業知識
- 數據庫設計的基本步驟
- 需求分析
- 概念結構設計
- 邏輯結構設計
- 物理結構設計
- 數據庫實施
- 數據庫的運行和維護
注意:需求分析和概念設計獨立於任何數據庫管理系統 邏輯設計和物理設計與選用的數據庫管理系統密切相關
- 參加數據庫設計的人員
- 系統分析人員和數據庫設計人員
自始至終參與數據庫設計,其水平決定了數據庫系統的質量- 數據庫管理員和用戶代表
主要參加需求分析與和數據庫的運行和維護- 應用開發人員
包括程序員和操作員
- 總結
- 設計一個完善的數據庫應用系統,往往是上述6個階段的不斷反復,這個設計步驟既是數據庫設計的過程,也包括數據庫應用系統的設計過程
- 把數據的設計和對數據庫中數據處理的設計緊密結合起來,兩方面的各個階段同時進行,相互參照,相互補充,以完善兩方面的設計
需求分析
是否做得充分與准確,決定了構建數據庫的速度和質量
- 需求分析就是分析用戶的要求
- 是設計數據庫的起點
- 結果是否准確地反映了用戶的實際要求,將直接影響到后面各個階段的設計,並影響到設計結果是否合理和實用
- 需求分析的任務
- 詳細調查現實世界要處理的對象(組織、部門、企業等)
- 充分了解原系統的功能工作概況
- 明確用戶的各種需求
- 在此基礎上確定新系統的功能
- 新系統必須充分考慮今后可能的擴充和改變
- 調查的重點是“數據”和“處理”,獲得用戶對數據庫的要求
-
信息要求
-
處理要求
-
安全性和完整性要求
-
確定用戶最終需求的難點
-
解決方法:不斷深入和用戶進行交流
-
調查用戶需求的步驟
- 調查組織機構的情況
- 調查各部門的業務活動情況
- 協助用戶明確對新系統的各種要求
- 確定新系統的邊界
- 常用調查方法
- 跟班作業
- 開調查會
- 請專人介紹
- 詢問
- 調查表
- 查閱記錄
- 分析方法
- 結構化分析方法
- SA方法
采用自頂向下,逐層分解的方法分析系統
- 需求分析的過程
- 數據字典
- 數據字典是關於數據庫中數據的描述,即元數據,不是數據本身
- 數據字典是在需求分析階段監理,在數據庫設計過程中不斷修改、充實、完善
- 數據字典是進行詳細的數據收集和數據分析所獲得的主要結果
- 總結
- 把需求收集和分析作為數據庫設計的第一階段是十分重要的
- 第一階段收集的基礎數據(用數據字典表達)是下一步進行概念設計的基礎
- 強調兩點
- 設計人員應充分考慮到可能的擴充和改變,使設計易於更改,系統易於擴充
- 必須強調用戶的參與
概念結構設計
綜合、歸納、抽象形成一個獨立於具體DBMS的概念模型,常用E-R圖表示
-
概念模型:將需求分析得到的用戶需求抽象為信息結構(即概念模型)的過程就是概念結構設計
-
概念模型的特點
- 能真實、充分地反映現實世界
- 易於理解
- 易於更改
- 易於向關系等轉換
- 描述概念模型的工具
E-R圖
- E-R模型
- 實體之間的聯系
1對1
1對多
多對多- 提供了表示實體型、屬性和聯系的方法
實體型(矩形)屬性(橢圓形)聯系(菱形)
E-R圖的集成
- 合並各E-R圖,並消除沖突(屬性沖突、命名沖突、結構沖突)
- 修改和重構
邏輯結構設計
將概念模型轉換為某個數據庫管理系統所支持的數據模型,並對其進行優化
- 轉換內容
- E-R圖由實體型、實體的屬性和實體型之間的聯系三個要素組成
- 關系模型的邏輯結構是一組關系模式的集合
- 將E-R圖轉換為關系模型:將實體型、實體的屬性和實體型之間的聯系轉換為關系模式
- 數據模型的優化
- 數據庫邏輯設計的結果不是唯一的
- 得到初步數據模型后,還應該適當的修改,調整數據模型的結構
- 關系數據模型的優化通常以規范化理論為指導
物理結構設計
為邏輯數據結構選取一個最適合應用環境的物理結構 包括存儲結構和存取方法
- 數據庫管理系統常用存取方法
- B+樹索引存取方法的選擇
關系上定義的索引數過多會帶來較多的額外開銷- HASH存取方法的選擇
該關系大小動態改變- 聚簇存取方法的選擇
- 評價物理結構方法
- 存儲空間
- 存取時間
- 維護代價
數據庫的實施和維護
根據邏輯設計和物理設計結果構建數據庫 編寫與調試應用程序 組織數據入庫並進行試運行
- 數據的載入
組織數據入庫是數據庫實施階段最主要的工作
- 數據裝載方法
- 人工方法
- 計算機輔助數據入庫
- 應用程序的調試
- 數據庫應用程序的設計應該與數據設計並行進行
- 組織數據入庫的同時還要調試應用程序
- 應用程序的設計、編碼、調試的方法,需要具體學習軟件工程課程
- 數據庫的運行和維護
- 數據庫的轉儲和恢復
- 數據庫的安全性和完整性控制
- 數據庫性能的監督、分析和改進
- 數據庫的重組織與重構造
本文最初由security發布於security的博客,禁止任何形式的剽竊行為
轉載原創文章請注明,轉載自:security的博客