第5章 数据库设计
以下圖片來自西安交通大學侯迪老師的ppt,僅供學習和復習使用,請勿轉載或他用
5.1 數據庫設計概述
概念:
-
數據庫設計是指對于一個給定的應用環境,構造(設計)優化的數據庫邏輯模式和物理結構,并據此建立數據庫及其應用系統,使之能夠有效地存儲和管理數據,滿足各種用戶的應用需求,包括信息管理要求和數據操作要求。
-
信息管理要求:在數據庫中應該存儲和管理哪些數據對象 。
-
數據操作要求:對數據對象需要進行哪些操作,如查 詢、增、刪、改、統計等操作。
目標:
數據庫設計的目標是為用戶和各種應用系統提供一個信息基礎設施和高效率的運行環境 。
高效率的運行環境:
-
數據庫數據的存取效率高
-
數據庫存儲空間的利用率高
-
數據庫系統運行管理的效率高
數據庫建設的基本規律:
三分技術,七分管理,十二分基礎數據
數據庫設計的六個階段(步驟):
-
需求分析
-
概念結構設計
-
邏輯結構設計
-
物理結構設計
-
數據庫實施
-
數據庫運行和維護
需求分析和概念設計獨立于DBMS
邏輯和物理設計與DBMS密切相關
5.2 需求分析
5.2.1 數據字典
數據字典的內容包括:
-
數據項
-
數據結構
-
數據流
-
數據存儲
-
處理過程
數據項是數據的最小組成單位。
數據項
是不可再分的數據單位
數據項描述={數據項名,數據項含義說明,別名,數據類型,長度,取值范圍,取值含義, 與其他數據項的邏輯關系,數據項之間的聯系}
“取值范圍”、“與其他數據項的邏輯關系”定義了數據的完整性約束條件,是設計數據檢驗功能的依據
可以用關系規范化理論為指導,用數據依賴的概念分析和表示數據項之間的聯系
數據結構
數據結構反映了數據之間的組合關系。
一個數據結構可以由若干個數據項組成,也可以由若干個數據結構組成,或由若干個數據項和數據結構混合組成。
數據結構描述 ={數據結構名,含義說明,組成:{數據項或數據結構}}
數據流
數據流是數據結構在系統內傳輸的路徑。
數據流描述={數據流名,說明,數據流來源,數據流去向,組成:{數據結構}, 平均流量,高峰期流量}
-
數據流來源:說明該數據流來自哪個過程
-
數據流去向:說明該數據流將到哪個過程去
-
平均流量:在單位時間(每天、每周、每月等)里的傳 輸次數
-
高峰期流量:在高峰時期的數據流量
數據存儲
數據存儲是數據結構停留或保存的地方,也是數據流的來源和去向之一。
數據存儲描述={數據存儲名,說明,編號,輸入的數據流 ,輸出的數據流, 組成:{數據結構},數據量, 存取頻度,存取方式}
-
存取頻度:每小時、每天或每周存取次數,每次存取的 數據量等信息
-
存取方法:批處理 / 聯機處理;檢索 / 更新;順序檢索 / 隨機檢索
-
輸入的數據流:數據來源
-
輸出的數據流:數據去向
處理過程
處理過程的具體處理邏輯一般用判定表或判定樹來描述。數據字典中只需要描述處理過程的說明性信息。
處理過程描述={處理過程名,說明,輸入:{數據流},輸出:{數據流},處理:{簡要說明}}
-
簡要說明:說明該處理過程的功能及處理要求
-
功能:該處理過程用來做什么
-
處理要求:處理頻度要求,如單位時間里處理多少事務,多少數據量、響應時間要求等
-
處理要求是后面物理設計的輸入及性能評價的標準
-
5.3 概念設計
工具:E-R模型
注意準則(2),如果屬性與實體有聯系,則不能再作為屬性,而應該作為一個實體。
5.3.1 實體與屬性的劃分原則
5.3.2 E-R圖的集成
例子:
5.4 邏輯結構設計
任務:
把概念結構設計階段設計好的基本E-R圖轉換為與選用數據庫管理系統產品所支持的數據模型相符合的邏輯結構。
即將概念模型用對應的數據模型轉化成邏輯結構
1:1聯系:
1:n聯系:
m:n聯系:
例子:
解釋:
每個實體都用一個關系模式表示
1:1的聯系,如領導,合并在部門表里(經理的職工號)
1:n的聯系,如職工屬于部門,合并在n的一端,將1端部門的鍵部門號合并到職工表里,注意只能將1端并入n端!
m:n的聯系,如職工工作,將2個實體的鍵的組合當作職工工作表的鍵,同時包括了聯系本身的屬性
三元以上的多元聯系,如供應,用一個關系模式表示,鍵為這幾個實體的鍵的組合。
數據模型的優化
重點:對關系模式進行分解
手段:水平分解和垂直分解,水平即元組,垂直即屬性
水平分解
將基本表的元組分為多個子集合
垂直分解
把關系模式R的屬性分解為若干子集合,形成若干子關系模式。
設計用戶子模式
使用更符合用戶習慣的別名
為不同級別的用戶定義不同的視圖
簡化用戶對系統的使用
5.5 數據庫的物理設計
關系模式存取方法選擇:
常用存取方法:
-
B+樹索引
-
hash索引
-
聚簇存取
B+樹索引
hash索引
需要關系大小是提前知道的,且不變或者提供動態hash存取
聚簇存取方法
聚簇:為了使得某些屬性(屬性組)查詢的效率提高,將在該屬性有相同的值的元組放在連續的物理塊中。
這樣的屬性稱為聚簇碼
什么時候選擇聚簇:
如何確定存儲結構(時間,空間,維護代價):
三者往往矛盾,需要選一個折中的方案。
確定數據的存放位置
經常變的和很少變的分開來
經常存取的和很少存取的分開
確定系統配置
評價物理結構:
5.6 數據庫的實施和維護
5.6.1 數據的載入和應用程序的調試
5.6.2 數據庫的試運行
測試包括:功能測試和性能測試
分期入庫:用小批量數據入庫進行測試,然后再將所有的數據都入庫
為了防止故障導致數據丟失,需要做好轉儲和恢復
5.6.3 數據庫的運行和維護
重組織的形式:全部重組織和部分重組織,部分的只對頻繁增刪的表進行重組織
重組織的目的是為了提高系統的性能
重構造:數據庫不能很好的滿足需求,需要增加或刪去應用,這時需要重構造
工作:調整模式和內模式
總結
- 上一篇: 海豚调度的安装和使用
- 下一篇: 学生3D作品---李自立---台式电脑加