一、數據庫設計的步驟
新奧爾良法,四個主要階段:
1、用戶需求分析:手機用戶需求,確定系統邊界;
2、概念設計(概念結構設計):是抽象概念模型,較理想的是采用E-R方法。
3、邏輯設計:E-R圖——>關系模式,規范化(3NF、BCNF)
4、物理設計:邏輯模式在計算機中的具體實現。
1-1、需求分析階段
邏輯設計、物理設計均以需求分析的設計為依據。
需求分析階段的工作以及形成的相關文檔,作為概念結構設計階段的依據。
需求分析階段的結果文檔:
- 需求說明文檔;
- 數據字典(系統需求說明書)
- 數據流程圖(數據流圖)(系統需求說明書)
1-2、概念結構設計
1-2-1、E-R圖
1、E-R模型中的基本術語(概念模型、實體-聯系模型)
1、實體
用矩形表示,客觀存在并相互區別的事物,如:單位、職工、部門、項目。
2、聯系
用菱形表示,實體之間的對應關系。
2-1、兩個實體集之間的聯系有3種類型:
(1)、1對1的聯系(1:1)。如:班和班長之間的聯系。
(2)、一對多的聯系(1:n)。如:班和學生之間的聯系。
(3)、多對多的聯系(m:n)。如:課程和學生之間的聯系。
示例:
2-2、兩個以上實體集之間的聯系:
- 1:1:1;
- 1:1:n;
- 1:n:m;
- r:m:n;
示例:
2-2、同一實體集內的二元聯系:
同一實體集內的各個實體之間也存在1:1、1:n、n:m的聯系。
示例:
3、屬性
用橢圓表示,實體的特性,一個實體可以有若干屬性。
屬性的具體取值:屬性值;
屬性域:屬性值的取值范圍,如年齡的取值范圍是18~60。
如:學生實體的若干屬性(學號、姓名、性別、出生日期、班號)
3-1、屬性的分類:
1、簡單屬性、復合屬性
簡單屬性:原子的、不可再分的;
復合屬性:可以細分為別的屬性;例如:通信地址屬性,可以再分為:郵編、省、市、街道。
2、單值屬性、多值屬性
單值屬性:定義的屬性對于特定的實體,只有一個單獨的值;如:特定的職工,只對應一個職工號、職工姓名。
多值屬性:一個屬性對應一組值。如:職工可能有多個親屬,則職工的親屬姓名可能有多個數目。
3、NULL值屬性
4、派生屬性
從其他屬性得來;如:工作年限的值 = 當前時間 - 入職時間,工作年限就是派生屬性。
3-2、真題
真題1:
真題2:
2、E-R圖實例
3、E-R圖中的主要構建
4、弱實體
這種實體對另一些實體具有很強的依賴關系,即,一個實體的存在必須以另一個實體為前提。如:職工與家屬,家屬總是屬于職工。示例:
1-2-2、概念結構設計
用E-R方式建立概念模型:
對需求分析階段得到的數據進行分類、聚集、概括,確定:實體、屬性、聯系。
概念結構的具體工作步驟:選擇局部應用、逐一設計分析E-R圖、E-R圖合并。
局部E-R圖合并,示例:
合并:
沒什么特別的,只是兩個E-R圖的合并而已。
概念結構設計階段:
1、選擇局部應用;
2、逐一設計分E-R圖(局部E-R圖)
3、局部E-R圖的合并;
合并的過程中要解決分E-R圖之間存在的沖突。
1-2-2-1、分E-R圖之間的沖突,分類:
1、屬性沖突
如:分數屬性
學校考試的分數,取值范圍:0~100
四級英語考試的分數,取值范圍:0~600
2、命名沖突
- 異名同義
- 同名異義
示例:
3、結構沖突
- 同一實體,在不同的分E-R圖中有不同的屬性;
- 同一對象,在一個分E-R圖中被抽象為實體,,在另一個分E-R圖中被抽象為屬性。
示例:
1-2-2-2、真題
真題1:
真題2:
教師、職工屬于同一個實體。
結構沖突:
同一實體,在不同的分E-R圖中有不同的屬性;