Presentation is loading. Please wait.

Presentation is loading. Please wait.

第六章 結構化分析與設計 ─資料塑模.

Similar presentations


Presentation on theme: "第六章 結構化分析與設計 ─資料塑模."— Presentation transcript:

1 第六章 結構化分析與設計 ─資料塑模

2 本章大綱 6.1 導論 6.2 資料塑模工具 6.3 實體關係圖建構指南 6.4 實體關係圖轉關聯表 6.5 正規化
6.6 軟硬體環境設計與開發工具選擇 6.7 系統分析與設計之文件樣板 6.8 結論

3 學習目標 瞭解: 何謂實體關係圖。 實體關係圖之種類與元件。 實體關係圖建構策略與指南。 實體關係圖轉成關聯表之法則。
如何將實體關係圖轉成關聯表,並進行正規化以設計資料庫。

4 6.1 導論 實體關係模式(Entity-Relationship Model, E-R Model,以下稱E-R 模式)是關聯式資料庫設計的重要工具之一。 實體關係圖(Entity-Relationship Diagram, E-R Diagram 或 ERD)是 E-R 模式的一種圖形表示。這些工具對組識或商業領域的實體(Entities)、關聯(Associations)及資料元素(Data elements)提供概念性邏輯結構的表示。

5 6.2 資料塑模工具 關聯式資料庫的整體邏輯結構可以用圖形表示,這個圖形稱為實體關係圖,它包含了下列的組成元素: 矩形
代表實體類型(Entity Type) 。 菱形 代表實體類型與實體類型間之關係 (Relationship) 。 橢圓 代表實體類型或關係之屬性(Attribute) 。

6 6.2 資料塑模工具(c.2) 直線 把屬性連結到實體類型或把實體類型連結到關係 。 基數(Cardinality)
代表實體類型與實體類型間之關係程度,關係程度可以是一對一、一對多(或多對一)或者多對多等。

7 6.2 資料塑模工具(c.3) 以圖6-1為例: (參考課本) 訂單與貨品均為實體。 編號及訂購人為訂單之屬性。
品名編號及單價為貨品之屬性。 訂貨則為這兩個實體之關係。 訂 單 貨 品 N M 編號 訂購人 品名 單 價 數 量 訂 貨

8 6.2 資料塑模工具(c.4) 訂單與貨品所發生的訂貨關係中,左邊的連結線上的數字代表以訂單角度敘述訂單和貨品的關係程度。同樣的,右邊之數字代表貨品實體與訂單之關係程度。因此,M表示每張訂單可訂購多個貨品,而N表示每個貨品可以存在於多張訂單中,因數目不限故以M或N泛稱。 訂 單 貨 品 N M 編號 訂購人 品名 單 價 數 量 訂 貨

9 6.2 資料塑模工具(c.6) E-R模式有關之元素及其相關之性質包括: 實體類型。 屬性。 關係。 基數。

10 6.2 資料塑模工具(c.7) 實體類型 實體類型,有時稱實體類別(Entity Class) 或簡稱實體,是一些具有共同性質(Properties)或特徵(Characteristics) 之實體案例(Entity instance )或稱案例 (Instance) 的集合。 每個實體類型有一個名稱為其辨別物(Identifier)且常以矩形表示,實體的名稱標示於矩形內。 (案例可以想像成一筆紀錄或是一筆資料)

11 6.2 資料塑模工具(c.8) 例如員工之實體類型可表示如下: 實體之種類很多,主要包括人、地方、物件、事件或使用者環境中之概念等。 員工

12 6.2 資料塑模工具(c.9) 屬性 每個實體類型都具有一些屬性,每個屬性是實體類型的一個性質或特徵。
在 ERD 中,一個屬性有一名稱以茲辨別,且常以橢圓形表示,並將屬性名稱標示於橢圓形中,且以線條與其實體類型連接。以學生實體類型為例,若其屬性包括學生之學號、姓名、地址、電話等,其表達方式如圖 6-2。 學號 姓名 地址 電話 學 生

13 6.2 資料塑模工具(c.11) 當一個實體案例之某一個屬性有一個以上的值,此情況稱為多值屬性(Multi-valued Attributes)。例如,眷屬是員工(是實體類型)的屬性之一,其眷屬資料為眷屬姓名、年齡與關係(配偶、孩子、父母等),因一員工可能有多個眷屬,故眷屬是多值屬性。

14 6.2 資料塑模工具(c.12) 兩種常用的多值屬性表示法: 一.用雙線的橢圖形表示(如圖 6-3)。
二.用另一實體類型表示,並以線條與原實體類型相連(如圖6-4),此種實體類型稱弱(Weak)或屬性(Attribute)實體類型,例如眷屬,這些有邏輯關係之多值屬性的集合稱為重複群 (Repeating Group)。 員 工 眷屬-姓名 眷屬-年齡 眷屬-關係 員工代號

15 圖6-4 實體類型與弱實體類型範例 重複 員 工 眷 屬 員工代號 眷屬-年齡 眷屬-姓名 眷屬-關係 N 若實體或 屬性實體
眷 屬 員工代號 眷屬-年齡 眷屬-姓名 眷屬-關係 N 若實體或 屬性實體 中間無關聯符號

16 6.2 資料塑模工具(c.15) 準鍵和主鍵 一個準鍵(Candidate Key)或稱鍵(Key)是一個屬性或多個屬性的集合,它(們)可區別實體類型的每個實體案例。 若有多個鍵,設計者必須從中選一當為主鍵(Primary Key),主鍵常以底線表示之,如圖 6-3之員工代號。 員 工 眷屬-姓名 眷屬-年齡 眷屬-關係 員工代號

17 6.2 資料塑模工具(c.16) 主鍵是準鍵之一,它被用以區別實體類型中之案例。Bruce(1992)提出主鍵之選用準則如下:
1.實體類型之每個案例在生命過程中應不會改變其值。例2.如,用地址與名字當做員工主鍵並不恰當,因為員工之地址可能會改變。 2.必須具有有效值且不可以是空值(Null)。 3.避免使用所謂的智慧鍵(Intelligent Keys),也就是該鍵之結構表示分類(Classifications)或位置(Locations)等。 (Ex.群組技術) 4.以單一屬性主鍵代替多屬性的組合鍵。

18 6.2 資料塑模工具(c.17) 關係 關係把 E-R 模式中之元素(例如實體類型)結合在一起,一個關係是一個或多個實體類型的案例間之關聯(Association),一個關聯經常意味著事件已發生或存在一些案例間自然的連結。 關係的程度 (Degree of a Relationship) 簡稱關係度,是參與在某個關係中之實體類型的數量。在 E-R 模式中,三種最常見之關係度為: 單一 (Unary, degree one)關係。 二元 (Binary, degree two)關係 。 三元 (Ternary, degree three) 關係。

19 6.2 資料塑模工具(c.18) 單一關係 單一關係又稱為遞迴關係(Recursive Relationship),此關係是建立在一實體類型之案例間。例如人是一實體類型,一個人(是一案例)可以與另一個人(是一案例)有婚姻關係,且是一對一的關係(如圖 6-5a)。 1 結 婚 Ex.資料表所列為 夫婦名及關係

20 6.2 資料塑模工具(c.20) 另一可能的情況是,員工是一實體類型,許多員工(是案例)向某一特定管理者(是一案例)報告或管理者可管理許多員工,這是一對多的關係(如圖6-5b)。 N 1 員 工 管 理

21 6.2 資料塑模工具(c.22) M 有零件 組 件 數 量 N 此外,尚有其他可能之情況。圖6-5c 表示組件有許多不同數量之零件。

22 6.2 資料塑模工具(c.24) 二元關係 二元關係表示兩個實體類型其案例間之關係,此種關係之情況最常見。 圖6-7a 二元之一對一關係
圖6-7b 二元之一對多關係 圖6-7c 二元之多對多關係 1 員 工 分 配 車 位 1 N 生產線 包 含 產 品 學 生 選 修 課 程 M N

23 6.2 資料塑模工具(c.27) 三元關係 三元關係表示三個實體類型其案例間之共同關係,此關係中每個實體類型可能有一或多個案例參與。例如零件、供應商與批發商均是實體類型,三者間有「輪船運送」之關係,且數量為輪船運送之屬性(如圖6-8)。 供應商 輪船運送 批發商 零 件 數 量 N

24 6.2 資料塑模工具(c.29) 關係基數 關係基數(Cardinalities in Relationships) 表實體類型(如電影)之案例能與另一實體類型(如錄影帶)之案例關聯之數目,該關聯之數目可能會有最小或最大之限制,亦可能沒限制(如圖6-9a)(A之一筆紀錄對應到B有幾筆紀錄)。 關聯數目若有最小或最大之限制,則分別稱之為最小基數(Minimum cardinality)與最大基數(Maximum cardinality)。最小基數表示某實體類型之案例能與另一實體類型之案例關聯之最小數目。相對於最小基數,最大基數表案例的最大數。 電 影 被存成 錄影帶 1 N

25 6.2 資料塑模工具(c.30) 例如,一部電影可被存成多捲錄影帶,
若一個關係之最小基數為0,則該實體類型,如錄影帶,是一個選擇性的參與者(Optional participant); 若最小基數為1,則稱強制性的參與者(Mandatory participant)。最小基數為0則以0表示(如圖6-9b),若為1則以1。 電 影 被存成 錄影帶 1 [ 0, N]

26 6.2 資料塑模工具(c.32) 關聯實體(參考) 一個關聯實體(Composite;Associative entity)是一個一對一或多對多之關係,但設計者選擇用一種實體類型取代之,並表示與其它實體類型之一對多的關係。 亦即,視關聯為一實體

27 6.2 資料塑模工具(c.33) 例如,某組織想記錄某員工在何時完成那一門課,其部份資料如下: 員工代號 課程名稱 完成日期
基礎代數 1994.3 軟體品質 1994.6 1994.2 C語言 1994.5

28 6.2 資料塑模工具(c.34) 上述之完成「關係」可被表示如圖6-10a 之二元關係。其中,完成日期並非員工之屬性,亦非課程之屬性,而是員工與課程關係之屬性。從完成到員工與完成到課程之線,並非兩個分離的二元關係,而是一個二元關係的兩個端點。 若將完成視為關聯實體,則其主鍵是員工與課程之主鍵(分別是員工代號與課程名稱)的組合,此關聯實體可表示如圖6-10b。

29 圖6-10a 二元關係 員 工 完 成 課 程 完成日期 [ 0, N ] 圖6-10b 關聯實體範例 員 工 完 成 課 程 完成日期 [ 0, N ]

30 6.3 實體關係圖建構指南 建立實體關係圖可依以下三階段進行: 確認實體及其屬性。 確認實體間之關係與基數。 確認實體關係之屬性。 1 2
M N

31 6.3 實體關係圖建構指南(c.2) 一.確認實體及其屬性
確認實體常用之原則有:整合(Aggregation)與一般化(Generalization)。 整合: 是將一些描述某物件或概念基本性質(Elementary Property)的項目加以結合,以形成一個較高階之物件或概念。 此物件或概念稱為實體,而描述該實體基本性質之項目是其屬性。例如著作名稱、編號、作者、館藏、出版日期等項目都可視為描述「書」之物件的基本性質,這些項目可被整合成一實體稱為「書」 ,而這些項目是書之屬性。

32 6.3 實體關係圖建構指南(c.3) 一般化: 實體的確認可由需求分析中之藍圖(包括輸入與輸出格式)及其資料辭彙找起。
由每個原始藍圖檢查每個項目或欄位以訂出屬性或概念,將描述相同物件或概念之屬性整合成一實體(或稱實體類型),或將一些具有某性質之項目集合,並將之一般化成一實體。

33 6.3 實體關係圖建構指南(c.4) 要分辨一藍圖中可能的實體,以下之經驗法則可供參考:
通常表單本身就是一個實體(衍生性表單除外),例如表6-1中請購單即為一個「請購單」的實體,因為其為原始表單。

34 6.3 實體關係圖建構指南(c.5) 表單欄位若為一相關聯的群組(Group)或格式欄位有共同字首者,也就是一些描述某物件或概念的基本性質之項目可能被整合成一實體,例如表6-1中的明細資料包括產品編號、品名、規格與單位等項目是一相關聯的群組,該群組描述產品的基本性質,即可形成一個「產品」實體。

35 6.3 實體關係圖建構指南(c.6) 表單欄位若為一般認定的關鍵詞(如姓名),則可能為一實體,例如表6-2中的經手人及廠商名稱都可能形成「員工」與「供應商」實體。 若某表單為另一表單欄位的來源,則此表單可能為一實體,例如表6-2訂購單中的「請購單編號」來自於表6-1之請購單中,故「請購單」應形成一個「請購單」實體。

36 6.3 實體關係圖建構指南(c.9) 分辨出表單中可能的實體及其屬性後,可經由所蒐集之資料進一步歸納,依專業知識之判斷,或採用下列規則以確認實體與實體間之關係: (以下參考) 以相關聯群組形成的實體,其相關聯群組所包含的欄位皆為其屬性;例如表6-1中的明細資料(包括產品編號、品名、規格與單位)即可能形成一個「產品」實體。

37 6.3 實體關係圖建構指南(c.10) 如果一個表單欄位的來源是直接參照其他實體中之屬性,則這些屬性不須重複出現在該表單所屬之實體;如表6-1之請購單,因其產品相關之欄位已形成產品實體的屬性,故這些欄位不須包含在請購單實體裡,故「請購單」實體僅包含請購單編號、請購人、請購日期、需求日期與製單等屬性。

38 6.3 實體關係圖建構指南(c.11) 表單欄位與之前確認的實體間位置距離相近者,例如在同一區域或結構中,則亦可能形成該實體之屬性,因為人們設計表單時,常將相關之項目放在一起。如表6-1請購單中,請購日期、請購人、製單、請購單編號、需求日期等,皆為「請購單」實體之屬性。

39 6.3 實體關係圖建構指南(c.12) 在表單分析之過程中,每個實體及其屬性可用一張表來記載,它有助於實體與屬性之紀錄,更有助於不同表單可能產生相同實體之整合等。以請購單處理為例,請購單為原始表單,逐一檢查訂單項目可知請購日期、請購人、製單、請購單編號、需求日期等項目都是用來描述一個實體稱為請購單,也就是可將之整合成請購單實體(如表6-3)。

40 6.3 實體關係圖建構指南(c.14) 二.確認實體間之關係與基數 A.依專業知識之判斷或採用下列規則,以確認實體與實體間之關係:
1.若一表單中之欄位為另一表單欄位的參考來源,則這兩個表單分別形成的實體之間應有一關係存在。 例如表6-1請購單的「請購單編號」是表6-2訂購單中參考的來源,故「請購單」和「訂購單」之間應有一「申請」的對應關係。

41 6.3 實體關係圖建構指南(c.15) 2.若一實體是由表單欄位中一個相關聯的群組所形成,則該實體和原表單之間應形成一關係
例如,表6-1的產品明細資料由請購單獨立出來,並形成一個產品實體,所以產品和請購單之間有一關係。

42 6.3 實體關係圖建構指南(c.16) B.形成實體間之關係後,可經由所蒐集之資料進一步歸納, 依專業知識之判斷或採用下列規則,以確定實體間各關 係的基數: 1.若一表單中含有多個相同的欄位參考到另一表單,則其關係可能為1:N或M:N. 例如表6-2 ,一張訂購單中包含多筆的產品資料,所以訂購單與產品間之關係為M:N。

43 6.3 實體關係圖建構指南(c.17) 2.若一表單中含有唯一的欄位參考到另一表單,則其關係可能為1:1或N:1.
(與資料表中的紀錄聯想在一起)

44 6.3 實體關係圖建構指南 4.以表6-1與表6-2為例,其實體關係可表示如表6-4。 表6-4 實體關係矩陣
3. 可配合企業規則(Business Rules)以判別各實體關係間的基數. 例如表6-2中,訂購單和供應商間的關係可能為1:1或N:1。經由企業規則判斷得知,一張訂購單上僅有一供應商,且可向同一個供應商下很多張訂購單,故其關係應為N:1。 4.以表6-1與表6-2為例,其實體關係可表示如表6-4。 表6-4 實體關係矩陣

45 6.3 實體關係圖建構指南(c.19) 三.確認實體關係之屬性
1.絕大部分的屬性項目可歸在實體中,但有些屬性並不單獨屬於任一實體,而是屬於某些實體之關係。 A.假設有三個實體:訂單、成品與客戶。某企業之經營規則對貨品之單價可能不是固定的,而是依對該貨品訂貨量大小而定。 B.在此情況數量與單價都不單獨屬於訂單或成品實體,而是屬於這兩實體之關係。 2.有關實體關係屬性之判斷,一般來說可依專業知識、企業規則等歸納或推演之。

46 6.4 實體關係圖轉關聯表 當一個E-R 模式建立完成之後,除了可瞭解資料庫的概念性架構外,最主要的是可以根據一定的轉換規則將實體關係圖轉換成關聯表(或稱Table)。 本節以圖6-11為例說明之。

47 圖6-11 ERD範例

48 6.4 實體關係圖轉關聯表(c.3) 一.對每一個一般性實體類型建立一個關聯表
實體關係圖上之每一實體類型建立一個關聯表,其屬性是所有的簡單屬性與合成屬性之集合,且可依6-2節之主鍵選取原則,從準鍵中選擇一個主鍵。 以圖6-11的 EMPLOYEE 實體類型為例,該實體可被轉成一關聯表,原來實體上之屬性為該關聯表之屬性,並可選擇SSN(也就是身分証字號)屬性為其主鍵。該關聯表可表達如下:

49 6.4 實體關係圖轉關聯表(c.4) 二.對於每一個弱實體類型建立一個關聯表
將實體關係圖上之每一弱實體類型建立一個關聯表,其屬性是所有的簡單屬性、合成屬性與擁有者實體類型之主鍵的集合,且該關聯表之主鍵是由擁有者實體之主鍵與弱實體類型的不完全鍵所構成。 以圖6-11的DEPENDENT 實體類型為例,該實體可被轉成一關聯表,原來實體上之屬性為該關聯表之屬性,而 DEPENDENT 之 NAME 及EMPLOYEE 之 SSN 合併為 DEPENDENT 之主鍵。為便於區別,EMPLOYEE 之 SSN 在此可表示成 ESSN,該關聯表可表達如下:

50 6.4 實體關係圖轉關聯表(c.6)

51 6.4 實體關係圖轉關聯表(c.7) 三.對於每一個多值屬性建立一個關聯表
將實體關係圖上的每一個多值屬性建立一個關聯表,其屬性是該多值屬性與擁有者實體類型之主鍵的集合,且其主鍵是由該關聯表之所有屬性所構成。

52 6.4 實體關係圖轉關聯表(c.8) 以圖6-11中的 LOCATIONS 為例,該屬性是多值屬性故可被轉成一關聯表,稱為 DEPT_LOCATIONS。因 LOCATIONS 之擁有者為 DEPARTMENT,且DEPARTMENT之主鍵為DNUMBER,故 DEPT_LOCATIONS 之屬性為 DNUMBER與 LOCATIONS,且兩者合併為主鍵。為便於區別,特將 DEPT_LOCATIONS 之 LOCATIONS 更名為 DLOCATION。該關聯表可表達如下:

53 6.4 實體關係圖轉 關聯表(c.10) 四.對M:N(多對多)關係建立一個關聯表

54 6.4 實體關係圖轉關聯表(c.11) 以圖6-11中,實體類型 EMPLOYEE與 PROJECT的關係WORKS_ON 為例,該關係為多對多,故可轉成一關聯表稱WORKS_ON。因WORKS_ON上有一屬性HOURS,且實體類型EMPLOYEE與 PROJECT 的主鍵分別為 SSN 與 PNUMBER,故 WORKS_ON之屬性為SSN、PNUMBER 與HOURS,且主鍵為前兩者之集合。為便於區別,特將WORKS_ON 之SSN更名為ESSN,PNUMBER 更名為 PNO。

55 6.4 實體關係圖轉關聯表(c.13) 五.對兩實體類型間之1:1關係作以下之處理:
選擇任一實體類型,例如 S,將另一實體類型,例如 R 的主鍵包含進S中,當成外鍵。 S 端最好選擇具有完全參與關係的一端。 將關係上之所有屬性包含入 S 端。

56 6.4 實體關係圖轉關聯表(c.14) 以圖6-11中,實體類型EMPLOYEE與DEPARTMENT 的關係 MANAGES 為例,該關係為 一對一(1:1),因為實體類型DEPARTMENT為完全參與關係端(也就是S端),EMPLOYEE 為R 端且其主鍵為 SSN,故應把SSN及MANAGES上之 STARTDATE加入實體類型 DEPARTMENT之屬性中。 為便於區別,特把SSN更名為MGRSSN,STARTDATE更名為MGRSTARTDATE,該關聯表可表達如下:

57 6.4 實體關係圖轉關聯表(c.16) 六.對兩實體類型間之1:N關係做以下之處理 選擇N端當作S端,將R端的主鍵包含進S端中當成外鍵。
以圖6-11中,實體類型DEPARTMENT與EMPLOYEE的關係 WORKS_FOR 為例,該關係為一對多,EMPLOYEE為N端(也就是S端),DEPARTMENT為R端,且關係WORKS_FOR上並無屬性,故僅把DEPARTMENT之主鍵(也就是DNUMBER)加入EMPLOYEE之屬性中。

58 6.4 實體關係圖轉關聯表(c.17) 為便於區別,特把DNUMBER更名為DNO,該關聯表可表達如下:

59 6.4 實體關係圖轉關聯表(c.18) 七.對N元關係建立一個關聯表

60 6.4 實體關係圖轉關聯表(c.19) 以圖6-12之實體關係圖為例,實體類型 PROJECT (專案)、SUPPLIER(供應商)與 PART(零件)之關係為SUPPLY(供應),SUPPLIER 之主鍵為 SNAME,PROJECT 之主鍵為 PROJNAME,PART 之主鍵為PARTNO,且關係 SUPPLY上有一屬性為 QUANTITY,該三元關係可轉成一關聯表稱 SUPPLY。SUPPLY之屬性為 PROJECT 、SUPPLIER 與 PART之主鍵與關係SUPPLY 上之屬性之集合,也就是PROJNAME、 SNAME、 PARTNO 與 QUANTITY 等。該關聯表可表達如下:

61 6.4 實體關係圖轉關聯表(c.20) 圖6-12 三元關係範例

62 6.5 正規化 建構實體關係圖及將實體關係圖轉成關聯表的設計步驟,必須包含正規化的處理,否則關聯表中可能存在一些重複的資料。
正規化是將資料屬性組合成為一個具有良好結構的關聯表的過程。 雖然正規化常與關聯式模式相結合,但它也是一種邏輯設計的技術,可以獨立於關聯式資料庫管理系統之外而單獨被使用。 以下以表6-5說明正規化。

63 表6-5 課程收費關聯表

64 6.5 正規化(c.3) 課程收費關聯表並不是一個良好結構化的關聯表,因為該表中含有重複的資料,可能會造成錯誤或不一致的情況,此現象稱為「異常」 (Anomalies) 。 有三種可能的異常狀況:插入、刪除和更改,茲分別說明如下: 插入異常 假設考慮加入一項新課程(例如MIS600),除非至少有一個學員登記了這門課程,否則這個課程將無法加入該表中,因為表中每一列至少要有一學員的學號。

65 6.5 正規化(c.4) 刪除異常 假設學員99425不再選擇MIS400的課程,由於該課程只有該學員登記,刪除後,便失去了MIS400課程收費是6,000元的資訊。 更改異常 假設MIS200課程的學費由3,000元增加至5,000元,那麼在每一包含MIS200課程的列中都必須進行這項改變,否則資料便會不一致。 採用正規化原理將課程收費關聯表分解為學員課程與課程收費兩項關聯表(參表6-6),以避免上述的異常情形。

66 表6-6 將課程收費化為兩個關聯表 學員課程關聯表 課程收費關聯表 學員學號 課程代號 課程代號 學費 99130 MIS 200
, 000 99200 MIS300 MIS300 5,000 99250 MIS200 MIS400 6,000 99425 MIS400 MIS500 2 ,5 99500 MIS300 99575 MIS500

67 6.5 正規化(c.6) 介紹正規化前須先瞭解功能相依與部分功能相依與遞移相依。 功能相依
假設有一關聯表 R,且 A 與 B 是 R 的屬性。B 功能相依於 A,或稱 A 在功能上決定 B,寫成 R.A→R.B,若且唯若 A 屬性之值只會對應到一個 B 屬性之值。其中,A 與 B 都可以是複合屬性。若屬性 B 功能相依於複合屬性 A,但不功能相依於 A 的部分屬性,則稱 B完全功能相依於 A。 若 B 功能相依於 A 的某些部分,也就是說,若把 A 中之部分屬性刪除,而 B 仍然功能相依於 A,則R.A→R.B 是部分功能相依。 部分功能相依

68 6.5 正規化(c.8) 遞移相依 關聯表中存在非鍵屬性功能相依於一個或多個非鍵屬性稱之(圖6-13)。 A C D E B 主 鍵
圖6-13 部分功能相依與遞移相依範例

69 6.5 正規化(c.10) 正規化型式有六種,其中依資料相依性所造成異常現象之多寡及正規化步驟之順序可排列如下(參圖6-14):
第一正規化型式(First Normal Form, 1NF),主要除去關聯表中任何的重複群,使關聯表中任一行與任一列的交叉格(Cell)上均只有一個值。 第二正規化型式(Second Normal Form, 2NF),符合第一正規化型式,再除去資料的部分功能相依。 第三正規化型式(Third Normal Form, 3NF),符合第二正規化型式,再除去資料的遞移相依;Boyce-Codd正規化型式(Boyce-Codd Normal Form, BCNF),符合第三正規化型式,再除去任何因功能相依所造成的異常結果。

70 6.5 正規化(c.11) 第四正規化型式(Fourth Normal Form, 4NF),符合Boyce-Codd正規化型式,再除去所有的多值相依。 第五正規化型式(Fifth Normal Form, 5NF),符合第四正規化型式,再除去剩餘的所有異常情況等。 一般來說,在實務上常應用至第三正規化型式,因此本書也將介紹至第三正規化型式。

71 圖6-14 正規化的步驟 未經正規化的關聯表 除去重複群 第一正規化型式 除去部分相依 第二正規化型式 除去遞移相依 第三正規化型式
Boyce-Codd 正規化型式 第四正規化型式 第五正規化型式 除去重複群 除去部分相依 除去遞移相依 除去其他因功能相 依所造成的異常  除去多值相依 除去剩下所有的異常

72 表6-8 未正規化的關聯表:成績單

73 表6-9 第一正規化型式:成績單關聯表

74 6.5 正規化(c.16) 第二正規化型式 第二正規化型式必須分析其資料之功能相依,並在資料中選出該關聯表之鍵(鍵之欄位應加底線表示),鍵之選擇可參考6.2節之原則。 對所有資料進行分析,其分析結果可表達如下(參圖6-15): 學生學號 學生姓名、通訊處、主修 課程代號 課程名稱、授課老師、老師研究室 學生學號、課程代號 成績 授課老師 老師研究室

75 圖6-15 成績關聯表中之部分功能相依 成 績 學生學號 課程代號 主 鍵 學生姓名 通 訊 處 主  修 課程名稱 授課老師 老師研究室

76 6.5 正規化(c.18) 第二正規化型式必須去除成績關聯表中之部分功能相依。這三個關聯表(如表6-10所示)茲介紹如下:
第一個關聯表稱學生,包括學生學號(鍵)、學生姓名、通訊處和主修等四項屬性。 第二個關聯表稱課程-老師,包括課程代號(鍵)、課程名稱、授課老師和老師研究室等四項屬性。 第三個關聯表稱選課,包括組合鍵(學生學號、課程代號)和成績,成績完全相依於此鍵。

77 表6-10a 學生關聯表(3NF)

78 表6-10b 課程-老師關聯表(2NF)

79 表6-10c 選課關聯表(3NF)

80 6.5 正規化(c.22) 第三正規化型式 學生和選課兩項關聯表(參表6-10a與表6-10c)已經符合第三正規化型式,但課程-老師關聯表(表6-10b)仍為第二正規化型式,因為老師研究室(非鍵屬性)也功能相依於授課老師(非鍵屬性)。

81 圖6-16 課程-老師關聯表之遞移相依性 課程代號 課程名稱 授課老師 老師 研究室

82 6.5 正規化(c.24) 課程-老師關聯表(表6-10b)需去除其中之遞移相依,才能符合第三正規化。因此,可將課程-老師關聯表分成課程和老師兩個關聯表(如表6-11a與6-11b),其中課程關聯表包含課程代號(鍵)、課程名稱和授課老師等屬性,而老師關聯表則包含授課老師(鍵)和老師研究室兩項屬性。

83 表6-11a 課程關聯表(3NF)

84 表6-11b 老師關聯表(3NF)

85 6.5 正規化(c.27) 成績單資料經過一連串正規化的步驟,已轉換成學生、選課、課程與老師等四個符合第三正規化型式的關聯表,此結果及其簡化之表達方式摘述如表6-12a至6-12d。這些符合第三正規化型式之關聯表不再有前述之異常現象。

86 6.6 軟硬體環境設計及開發工具選擇 RADT 評估準則被歸納成9大類(吳仁和、夏則智,1998) : 開發環境。 資料庫連結能力。
資料查詢與表達能力。 設定管理與應用程式。 擴充性。 價格。 速度/效率。 物件導向技術。 供應商能力與支援。

87 6.6 軟硬體環境設計及開發工具選擇(c.2) 以下列出每一大類,並在該類下逐一列出可能之考慮因素: 開發環境
考慮支援 Windows作業系統、可自制 Windows 元件並放入元件庫中、可包裝 Visual Basic 的自定控制元件(VBX)、有 OLE 自訂控制元件(OCX)之能力、分散式 OLE、援OLE, DDE, DLL, VBX, OCX 等項目與支援中文等。

88 6.6 軟硬體環境設計及開發工具選擇(c.3) 資料庫連結能力可能考慮支援 ODBC與支援高效率內建資料庫連結。
資料查詢與表達能力,可能考慮資料查詢能力、報表產生能力、圖形產生能力、應用程式設計儲存庫等。 設定管理與應用程式,可能考慮提供物件程式庫/程式碼管理、階層化的應用程式瀏覽器、可隨時重建應用程式的設與產生安裝磁片等。

89 6.7 系統分析與設計樣板 完成系統分析與設計之各項工作後,系統分析與設計之文件至少需包括該階段所屬重要工作結果之摘述,各項目分別介紹如下,而樣板如圖6-17。

90 6.7 系統分析與設計樣板(c.2) 環境圖 表示系統與外部實體之互動,此圖並非必要,若有流程圖,則環境圖可有可無。 流程塑模
以資料流程圖表達系統範圍內,所有外部實體與系統之互動,系統內部之處理程序及所需資料之輸出與輸入等。資料流程圖需從最高層(第零階)分解至最底層,並表達處理描述。

91 6.7 系統分析與設計樣板(c.3) 資料塑模 以實體關係圖表示資料與資料間之關係,進一步將實體關係圖轉成關聯表,並進行正規化精練以設計關聯式資料庫。 模組設計 將資料流程圖底層之處理進一步的加入例外狀況之處理、錯誤訊息與輔助訊息之處理等,並以程式設計語言描述該處理之程式邏輯。必要時,以結構圖表達新系統之所有模組及模組間之關係。

92 6.7 系統分析與設計樣板(c.4) 使用者介面塑模 以介面結構圖、介面藍圖與介面元件規格、介面狀態圖與轉換表等表達介面之展示、摘述與控制,並進一步表達進階之使用者介面設計。 軟硬體環境設計及開發工具選擇 表達新系統之硬體與網路架構、作業系統與應用系統架構之設計,此外,亦需決定開發工具之評估準則及評估之方案,並進一步摘述評估結果。

93 圖6-17 系統分析與設計文件樣板 系統分析與設計階段之文件樣板 一、環境模式 二、流程塑模 三、資料塑模 四、模組設計 五、使用者介面塑模
環境圖 二、流程塑模 資料流程圖(第 0 階至第 n 階) 三、資料塑模 實體關係圖 實體關係圖轉關聯表 正規化 關聯表資料字典 四、模組設計 結構圖或 HIPO 圖 PDL 模組描述 五、使用者介面塑模 介面結構圖 介面藍圖與元件規格 介面狀態圖與轉換表 六、軟硬體環境設計及開發工具選擇 硬體與網路架構 作業系統 應用系統架構 開發工具

94 6.8 結論 實體關係圖是系統分析與設計於企業資料塑模的主要工具,基本上,實體關係圖主要用予表示企業資料中實體類型間之關係。
本章已具體的描述企業表單分析以建構ERD之步驟與原則。


Download ppt "第六章 結構化分析與設計 ─資料塑模."

Similar presentations


Ads by Google