7.1 數據庫設計概述
定義
數據庫設計是指對于一個給定的應用環境,構造(設計) 優化的 數據庫模式、內模式和外模式,并據此建立數據庫及其 應用系統 ,使之能夠有效地存儲和管理數據,滿足各種用戶的應用需求,包括 信息管理要求 和 數據操作要求 。 信息管理要求 :在數據庫中應該存儲和管理哪些數據對象 。
數據操作要求 :對數據對象需要進行哪些操作,如查詢、增、 刪、改、統計等操作。
數據庫設計的目標
為用戶和各種應用系統提供 信息基礎設施和高效的運行環 境 。其中,高效的運行環境指數據庫數據的 高存取效率 、數據庫存儲空間的 高利用率 和數據庫系統運行維護的 高效率
數據庫設計分6個階段
需求分析
概念結構設計
邏輯結構設計
物理結構設計
數據庫實施
數據庫運行和維護
需求分析和概念設計 獨立于任何數據庫
管理系統
邏輯設計和物理設計 與選用的數據庫管
理系統密切相
7.2 需求分析
需求分析就是分析用戶的要求
是設計數據庫的起點
結果是否準確地反映了用戶的實際要求,將直接影響到后面各
個階段的設計,并影響到設計結果是否合理和實用
需求分析的任務
詳細調查現實世界要處理的對象(組織、部門、企業等)
充分了解原系統(手工系統或計算機系統)工作概況
明確用戶的各種需求
在此基礎上確定新系統的功能
新系統必須充分考慮今后可能的擴充和改變
調查的重點是“數據”和“處理”,獲得用戶對數據庫的要求
(1)信息要求
(2)處理要求
(3)安全性與完整性要求
確定用戶最終需求的難點
? 用戶缺少計算機知識,不能準確地表達自己的需求,他們所提出的需求往往不
斷地變化。
? 設計人員缺少用戶的專業知識,不易理解用戶的真正需求,甚至誤解用戶的需
求
解決方法
設計人員必須不斷深入地與用戶進行交流,才能逐步確定用戶的實際需求

7.3 概念結構設計
概念模型的工具: E-R模型
實體之間的聯系
兩個實體型之間的聯系:
①一對一聯系(1∶1)
②一對多聯系(1∶ n )
③多對多聯系( m ∶ n )
聯系的度: 參與聯系的實體型的數目
2個實體型之間的聯系度為2,也稱為二元聯系;
3個實體型之間的聯系度為3,稱為三元聯系;
N個實體型之間的聯系度為N,也稱為N元聯系
E-R圖 提供了表示實體型、屬性和聯系的方法 :
實體型:用 矩形 表示,矩形框內寫明實體名。
屬性:用 橢圓形 表示,并用無向邊將其與相應的實體型連接起來。
聯系:用 菱形 表示,菱形框內寫明聯系名,并用無向邊分別與有關實體型連接起來,同時在無向邊旁標上聯系的類型(1∶1, 1∶n或 m ∶ n )。
聯系可以具有屬性
為了簡化E-R圖的處置,現實世界的事物能作為屬性對待的,盡量
作為屬性對待。
兩條準則:
(1) 作為屬性,不能再具有需要描述的性質。 屬性必須是不可分
的數據項,不能包含其他屬性。
(2) 屬性不能與其他實體具有聯系,即E-R圖中所表示的聯系是
實體之間的聯系
E-R圖的集成一般需要分兩步
合并。 解決各分E-R圖之間的沖突,將分E-R圖合并起來生
成初步E-R圖。
修改和重構。 消除不必要的冗余,生成基本E-R圖。
(1)合并E-R圖,生成初步E-R圖
各個局部應用所面向的問題不同,各個子系統的E-R圖之間
必定會存在許多不一致的地方,稱之為 沖突 。
子系統E-R圖之間的沖突主要有三類:
①屬性沖突
②命名沖突
③結構沖突
(2)消除不必要的冗余,設計基本E-R圖
所謂 冗余的數據 是指可由 基本數據 導出的數據,冗余的聯系是指
可由其他聯系導出的聯系。
消除冗余主要 采用分析方法 ,即以數據字典和數據流圖為依據,
根據數據字典中關于數據項之間邏輯關系的說明來消除冗余。
用 規范化理論 來消除冗余
①確定分E-R圖實體之間的數據依賴。
實體之間一對一、一對多、多對多的聯系可以用實體碼之間的函數依
賴來表示。于是有函數依賴集F L 。
? E-R圖的集成
.3 概念結構設計
②求FL的最小覆蓋GL,差集為 D=FL-GL。
逐一考察D中的函數依賴,確定是否是冗余的聯系,若是,就把它去掉
7.4 邏輯結構設計
任務
把概念結構設計階段設計好的 基本E-R圖轉換為與選用數據庫管理
系統產品所支持的數據模型相符合的邏輯結構。
轉換內容:
E-R圖由實體型、實體的屬性和實體型之間的聯系三個要素組成
關系模型的邏輯結構是一組關系模式的集合
? 將E-R圖轉換為關系模型: 將實體型、實體的屬性和實體型之間的
聯系轉化為關系模式
實體集的轉換
1:1二元聯系的轉換
在某關系模式的屬性中加入另一個關系模式的碼和聯系本身的屬性
1:n二元聯系的轉換
可以轉換為一個獨立的關系模式。也可以與n端對應的關系模式S合并。即在關系模式S中加入聯 系本身的屬性和另一端實體的主碼,且該主碼作為S的外碼。
m:n二元聯系的轉換
轉換為一個新的關系模式S。把與該聯系相連的實體集的主碼以及聯系本身的屬性作為關系S的屬
性,各實體集的碼組合作為關系S的主碼或者主碼的一部分,且各實體集的主碼為關系S的外碼。
(4)三個或三個以上實體間的一個多元聯系轉換為一個關系模式。
關系的屬性:與該多元聯系相連的各實體的碼以及聯系本身的屬性
關系的碼:各實體碼的組合
(5)具有相同碼的關系模式可合并
減少系統中的關系個數
方法:
將其中一個關系模式的全部屬性加入到另一個關系模式中
然后去掉其中的同義屬性(可能同名也可能不同名)
適當調整屬性的次序
數據模型的優化: 數據庫邏輯設計的結果不是唯一的,得到初步數據
模型后,還應該適當地修改、調整數據模型的結構,以進一步提高數
據庫應用系統的性能。
關系數據模型的優化通常以 規范化理論 為指導。
(1)確定 數據依賴
? 按需求分析階段所得到的語義,分別寫出每個關系模式內部各屬性之間的
數據依賴以及不同關系模式屬性之間數據依賴。
(2)對于各個關系模式之間的數據依賴進行 極小化處理 ,消除冗余的聯系。
(3)按照 數據依賴的理論對關系模式 進行分析,考察是否存在部分函數依賴、
傳遞函數依賴、多值依賴等,確定各關系模式分別屬于第幾范式。
(4)按照需求分析階段得到的各種應用對數據處理的要求, 分析對于這樣的應
用環境這些模式是否合適 ,確定是否要對它們進行合并或分解。
7.4 邏輯結構設計
數據模型的優化方法
(5)對 關系模式進行必要分解 ,提高數據操作效率和存儲空間的利用率。
? 常用分解方法: 水平分解、垂直分解