結(jié)構(gòu)化分析與設(shè)計-塑模_第1頁
結(jié)構(gòu)化分析與設(shè)計-塑模_第2頁
結(jié)構(gòu)化分析與設(shè)計-塑模_第3頁
結(jié)構(gòu)化分析與設(shè)計-塑模_第4頁
結(jié)構(gòu)化分析與設(shè)計-塑模_第5頁
已閱讀5頁,還剩100頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、第六章 結(jié)構(gòu)化分析與設(shè)計資料塑模內(nèi)容大綱學(xué)習(xí)目標(biāo)第一節(jié) 導(dǎo)論第二節(jié) 資料塑模工具第三節(jié) 實體關(guān)係圖建構(gòu)指南第四節(jié) 實體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表第五節(jié) 正規(guī)化第六節(jié) 軟硬體環(huán)境設(shè)計與開發(fā)工具選擇第七節(jié) 系統(tǒng)分析與設(shè)計之文件樣板第八節(jié) 結(jié)論 學(xué)習(xí)目標(biāo)詳讀本章,你至少能瞭解:何謂實體關(guān)係圖。實體關(guān)係圖之種類與元件。實體關(guān)係圖、建構(gòu)策略與指南。實體關(guān)係圖轉(zhuǎn)成關(guān)聯(lián)表之法則。如何將實體關(guān)係圖轉(zhuǎn)成關(guān)聯(lián)表,並進行正規(guī)化以設(shè)計資料庫。 導(dǎo)論實體關(guān)係模式(以下稱E-R模式)是關(guān)聯(lián)式資料庫設(shè)計的重要工具之一。實體關(guān)係圖是 E-R 模式的一種圖形表示。這些工具對組織或商業(yè)領(lǐng)域的實體、關(guān)聯(lián)及資料元素提供概念性邏輯結(jié)構(gòu)的表示。 資

2、料塑模工具關(guān)聯(lián)式資料庫的整體邏輯結(jié)構(gòu)可以用實體關(guān)係圖表示,它包含了下列的組成元素:矩形:代表實體類型。菱形:代表實體類型與實體類型間之關(guān)係。橢圓形:代表實體類型或關(guān)係之屬性。直線:把屬性連結(jié)到實體類型或把實體類型連結(jié)到關(guān)係 ?;鶖?shù):代表實體類型與實體類型間之關(guān)係程度,關(guān)係程度可以是一對一、一對多(或多對一)或者多對多等。資料塑模工具(續(xù))以圖6-1為例,訂單與貨品均為實體;編號及訂購人為訂單之屬性;品名編號及單價為貨品之屬性;訂貨則為這兩個實體之關(guān)係。訂單與貨品所發(fā)生的訂貨關(guān)係中,左邊連結(jié)線上的數(shù)字代表以訂單角度敘述訂單和貨品的關(guān)係程度。同樣地,右邊之?dāng)?shù)字代表貨品實體與訂單之關(guān)係程度。因此,M

3、表示每張訂單可訂購多個貨品,而N表示每個貨品可以存在於多張訂單中,因數(shù)目不限故以M或N泛稱。 圖6-1 ERD範(fàn)例 編號訂購人數(shù)量品名編號單價貨品訂單訂貨MN資料塑模工具(續(xù)1)E-R Model 有關(guān)之元素及其相關(guān)之性質(zhì)包括:實體類型屬性關(guān)係基數(shù) 資料塑模工具(續(xù)2)實體類型實體類型有時稱為實體類別或簡稱實體,是一些具有共同性質(zhì)或特徵之實體案例或稱案例的集合。每個實體類型有一個名稱為其辨別物,常以矩形表示,並將實體的名稱標(biāo)示於矩形內(nèi)。資料塑模工具(續(xù)3)例如員工之實體類型可表示如下: 實體之種類很多,主要包括人、地方、物件、事件或使用者環(huán)境中之概念等。員工資料塑模工具(續(xù)4)屬性每個實體類型

4、都具有一些屬性,每個屬性是實體類型的一個性質(zhì)或特徵。 在 ERD 中,一個屬性有一名稱以茲辨別,且常以橢圓形表示,並將屬性名稱標(biāo)示於橢圓形中,且以線條與其實體類型連接。以學(xué)生實體類型為例,若其屬性包括學(xué)生之學(xué)號、姓名、地址、電話等,其表達(dá)方式如圖 6-2。 圖6-2 實體類型與其屬性學(xué)生學(xué)號姓名地址電話資料塑模工具(續(xù)5)當(dāng)一個實體案例之某一個屬性有一個以上的值,此情況稱為多值屬性。例如,眷屬是員工(實體類型)的屬性之一,其眷屬資料為眷屬姓名、年齡與關(guān)係(配偶、孩子、父母等),因一員工可能有多個眷屬,故眷屬是多值屬性。兩種常用的多值屬性表示法用雙線的橢圖形表示(如圖 6-3)。用另一實體類型表

5、示,並以線條與原實體類型相連(如圖6-4),此種實體類型稱弱或?qū)傩詫嶓w類型,例如眷屬,這些有邏輯關(guān)係之多值屬性的集合稱為重複群 。圖6-3 實體類型與多值屬性範(fàn)例員工員工代號眷屬-姓名眷屬-年齡眷屬-關(guān)係圖6-4 實體類型與弱實體類型範(fàn)例員工代號眷屬-性名眷屬-年齡眷屬-關(guān)係員工眷屬N資料塑模工具(續(xù)6)準(zhǔn)鍵和主鍵一個準(zhǔn)鍵 或稱為鍵是一個屬性或多個屬性的集合,它(們)可區(qū)別實體類型的每個實體案例。 若有多個鍵,設(shè)計者必須從中選一作為主鍵。主鍵常以底線表示之,如圖 6-3之員工代號。 資料塑模工具(續(xù)7)主鍵是準(zhǔn)鍵之一,它被用以區(qū)別實體類型中之案例。Bruce(1992)提出主鍵之選用準(zhǔn)則如下:

6、實體類型之每個案例在生命過程中應(yīng)不會改變其值。例如,用地址與名字當(dāng)作員工主鍵並不恰當(dāng),因為員工之地址可能會改變。必須具有有效值且不可以是空值。避免使用所謂的智慧鍵,也就是以該鍵之結(jié)構(gòu)表示分類或位置等。盡可能以單一屬性主鍵代替多屬性的組合鍵。資料塑模工具(續(xù)8)關(guān)係關(guān)係把 E-R 模式中之元素(例如實體類型)結(jié)合在一起,一個關(guān)係是一個或多個實體類型的案例間之關(guān)聯(lián),一個關(guān)聯(lián)經(jīng)常意味著事件已發(fā)生或存在一些案例間自然的連結(jié)。 關(guān)係的程度簡稱關(guān)係度,是參與在某個關(guān)係中之實體類型的數(shù)量。在 E-R 模式中,三種最常見之關(guān)係度為:單一關(guān)係二元關(guān)係三元 關(guān)係資料塑模工具(續(xù)9)單一關(guān)係單一關(guān)係又稱為遞迴關(guān)係,

7、此關(guān)係是建立在一實體類型之案例間。例如人是一實體類型,一個人(案例)可以與另一個人(案例)有婚姻關(guān)係,且是一對一的關(guān)係(如圖 6-5a)。另一可能的情況是,員工是一實體類型,許多員工(案例)向某一特定管理者(案例)報告或管理者可管理許多員工,這是一對多的關(guān)係(如圖6-5b)。圖6-5a 一對一之單一關(guān)係人結(jié)婚11圖6-5b 一對多之單一關(guān)係員工管理N1資料塑模工具(續(xù)10)此外,尚有其他可能之情況。圖6-5c表示組件有許多不同數(shù)量之零件。二元關(guān)係二元關(guān)係表示兩個實體類型其案例間之關(guān)係,此種關(guān)係之情況最常見。圖6-5c 多對多之單一關(guān)係員工管理MN組件有零件數(shù)量圖6-7a 二元之一對一關(guān)係員工分

8、配車位11圖6-7b 二元之一對多關(guān)係生產(chǎn)線包含產(chǎn)品N1圖6-7c 二元之多對多關(guān)係學(xué)生選修課程NM資料塑模工具(續(xù)11)三元關(guān)係三元關(guān)係表示三個實體類型其案例間之共同關(guān)係,此關(guān)係中每個實體類型可能有一或多個案例參與。例如零件、供應(yīng)商與批發(fā)商均是實體類型,三者間有輪船運送之關(guān)係,且數(shù)量為輪船運送之屬性(如圖6-8)。 圖6-8 三元關(guān)係供應(yīng)商船運送批發(fā)商NM零件數(shù)量N資料塑模工具(續(xù)12)關(guān)係基數(shù)關(guān)係基數(shù)表實體類型(如電影)之案例能與另一實體類型(如錄影帶)之案例關(guān)聯(lián)之?dāng)?shù)目,該關(guān)聯(lián)之?dāng)?shù)目可能會有最小或最大之限制,亦可能沒限制(如圖6-9a)。關(guān)聯(lián)數(shù)目若有最小或最大之限制,則分別稱之為最小基數(shù)與

9、最大基數(shù)。最小基數(shù)表示某實體類型之案例能與另一實體類型之案例關(guān)聯(lián)之最小數(shù)目。相對於最小基數(shù),最大基數(shù)表案例的最大數(shù)。 資料塑模工具(續(xù)13)例如,一部電影可被存成多捲錄影帶若一個關(guān)係之最小基數(shù)為0,則該實體類型如錄影帶,是一個選擇性的參與者。若最小基數(shù)為1,則稱強制性的參與者。最小基數(shù)為0,則以0表示(如圖6-9b);若為1,則以1表示。 圖6-9a 基數(shù)範(fàn)例一電影被存成錄影帶N1圖6-9b 基數(shù)範(fàn)例二電影被存成錄影帶0, N1資料塑模工具(續(xù)14)關(guān)聯(lián)實體一個關(guān)聯(lián)實體是一個一對一或多對多之關(guān)係,但設(shè)計者選擇用一種實體類型取代之,並表示與其他實體類型之一對多的關(guān)係。資料塑模工具(續(xù)15)例如,

10、某組織想記錄某員工在何時完成那一門課,其部分資料如下:員工代號 課程名稱完成日期549-23-1948 基礎(chǔ)代數(shù)1994.3629-16-8407軟體品質(zhì)1994.6816-30-0458軟體品質(zhì)1994.2549-23-1948C語言1994.5資料塑模工具(續(xù)16)上述之完成關(guān)係可被表示如圖6-10a 之二元關(guān)係。其中,完成日期並非員工之屬性,亦非課程之屬性,而是員工與課程關(guān)係之屬性。從完成到員工與完成到課程之線,並非兩個分離的二元關(guān)係,而是一個二元關(guān)係的兩個端點。若將完成視為關(guān)聯(lián)實體,則其主鍵是員工與課程之主鍵(分別是員工代號與課程名稱)的組合,此關(guān)聯(lián)實體可表示如圖6-10b。 圖6-1

11、0a 二元關(guān)係員工完成課程0, N0, N完成日期圖6-10b 關(guān)聯(lián)實體範(fàn)例員工完成課程0, N0, N完成日期實體關(guān)係圖建構(gòu)指南建立實體關(guān)係圖可依以下三階段進行:確認(rèn)實體及其屬性確認(rèn)實體間之關(guān)係與基數(shù)確認(rèn)實體關(guān)係之屬性確認(rèn)實體及其屬性確認(rèn)實體常用之原則有:整合與一般化。整合是將一些描述某物件或概念基本性質(zhì)的項目加以結(jié)合,以形成一個較高階之物件或概念。 實體關(guān)係圖建構(gòu)指南(續(xù))此物件或概念稱為實體,而描述該實體基本性質(zhì)之項目是其屬性。例如著作名稱、編號、作者、館藏、出版日期等項目,都可視為描述物件書的基本性質(zhì),這些項目可被整合成一實體,稱為書,而這些項目是書之屬性。實體的確認(rèn)可由需求分析中之藍(lán)

12、圖(包括輸入與輸出格式)及其資料詞彙找起。 由每個原始藍(lán)圖檢查每個項目或欄位,以訂出屬性或概念,將描述相同物件或概念之屬性整合成一實體(或稱為實體類型),或?qū)⒁恍┚哂心承再|(zhì)之項目集合,並將之一般化成一實體。 實體關(guān)係圖建構(gòu)指南(續(xù)1)分辨一藍(lán)圖中可能的實體之經(jīng)驗通常表單本身就是一個實體(衍生性表單除外),例如表6-1中,請購單即為一個請購單的實體,因為其為原始表單。表單欄位若為一相關(guān)聯(lián)的群組或格式欄位有共同字首者,也就是一些描述某物件或概念的基本性質(zhì)之項目,可能被整合成一實體,例如表 6-1中的明細(xì)資料,包括產(chǎn)品編號、品名、規(guī)格與單位等項目是一相關(guān)聯(lián)的群組,該群組描述產(chǎn)品的基本性質(zhì),即可形成一

13、個產(chǎn)品實體。實體關(guān)係圖建構(gòu)指南(續(xù)2)表單欄位若為一般認(rèn)定的關(guān)鍵詞(如姓名),則可能為一實體,例如表6-2中的經(jīng)手人及廠商名稱都可能形成員工與供應(yīng)商實體。若某表單為另一表單欄位的來源,則此表單可能為一實體,例如表6-2訂購單中的請購單編號來自於表6-1之請購單中,故請購單應(yīng)形成一個請購單實體。 表6-1 請購單 表6-2 訂購單 實體關(guān)係圖建構(gòu)指南(續(xù)3)分辨出表單中可能的實體及其屬性後,可經(jīng)由所蒐集之資料進一步歸納,依專業(yè)知識之判斷,或採用下列經(jīng)驗法則以確認(rèn)實體與實體間之關(guān)係: 以相關(guān)聯(lián)群組形成的實體,其相關(guān)聯(lián)群組所包含的欄位皆為其屬性;例如,表6-1中的明細(xì)資料(包括產(chǎn)品編號、品名、規(guī)格與

14、單位)即可能形成一個產(chǎn)品實體。 實體關(guān)係圖建構(gòu)指南(續(xù)4)如果一個表單欄位的來源是直接參照其他實體中之屬性,則這些屬性不需重複出現(xiàn)在該表單所屬之實體;如表6-1之請購單,因其產(chǎn)品相關(guān)之欄位已形成產(chǎn)品實體的屬性,故這些欄位不需包含在請購單實體裡,故請購單實體僅包含請購單編號、請購人、請購日期、需求日期與製單等屬性。 實體關(guān)係圖建構(gòu)指南(續(xù)5)表單欄位與之前確認(rèn)的實體間位置距離相近者,例如在同一區(qū)域或結(jié)構(gòu)中,則亦可能形成該實體之屬性,因為人們設(shè)計表單時,常將相關(guān)之項目放在一起。如表6-1請購單中,請購日期、請購人、製單、請購單編號、需求日期等皆為請購單實體之屬性。實體關(guān)係圖建構(gòu)指南(續(xù)6)在表單分

15、析之過程中,每個實體及其屬性可用一張表來記載,它有助於實體與屬性之紀(jì)錄,更有助於不同表單可能產(chǎn)生相同實體之整合等。以請購單處理為例,請購單為原始表單,逐一檢查訂單項目可知請購日期、請購人、製單、請購單編號、需求日期等項目都是用來描述一個實體稱為請購單,也就是可將之整合成請購單實體(如表6-3)。 表6-3 實體屬性表範(fàn)例實體名稱:請購單屬性名稱是否為鍵請購單編號是請購日期請購人需求日期製單實體關(guān)係圖建構(gòu)指南(續(xù)7)確認(rèn)實體間之關(guān)係與基數(shù)依專業(yè)知識之判斷或採用下列規(guī)則,以確認(rèn)實體與實體間之關(guān)係: 若一表單中之欄位為另一表單欄位的參考來源,則這兩個表單分別形成的實體之間應(yīng)有一關(guān)係存在;例如,表6-

16、1請購單的請購單編號是表6-2訂購單中參考的來源,故請購單和訂購單之間應(yīng)有一申請的對應(yīng)關(guān)係。 實體關(guān)係圖建構(gòu)指南(續(xù)8)若一實體是由表單欄位中一個相關(guān)聯(lián)的群組所形成,則該實體和原表單之間應(yīng)形成一關(guān)係;例如,表6-1的產(chǎn)品明細(xì)資料由請購單獨立出來,並形成一個產(chǎn)品實體,所以產(chǎn)品和請購單之間有一關(guān)係。實體關(guān)係圖建構(gòu)指南(續(xù)9)形成實體間之關(guān)係後,可經(jīng)由所蒐集之資料進一步歸納,依專業(yè)知識之判斷或採用下列規(guī)則,以確定實體間各關(guān)係的基數(shù): 若一表單中含有多個相同的欄位參考到另一表單,則其關(guān)係可能為1:N或M:N;例如表6-2,一張訂購單中包含多筆的產(chǎn)品資料,所以訂購單與產(chǎn)品間之關(guān)係為M:N。若一表單中含有

17、唯一的欄位參考到另一表單,則其關(guān)係可能為1:1或N:1;例如,表6-2訂購單中僅包含一個廠商編號,所以訂購單與供應(yīng)商間之關(guān)係為N:1。實體關(guān)係圖建構(gòu)指南(續(xù)10)除了以上規(guī)則外,有時亦可配合企業(yè)規(guī)則以判定各實體關(guān)係間的基數(shù);例如表6-2中,訂購單和供應(yīng)商間的關(guān)係可能為1:1或N:1。經(jīng)由企業(yè)規(guī)則判斷得知,一張訂購單上僅有一供應(yīng)商,且可向同一個供應(yīng)商下很多張訂購單,故其關(guān)係應(yīng)為N:1。以表6-1與表6-2為例,其實體關(guān)係可表示如表6-4。表6-4 實體關(guān)係矩陣請購單訂購單產(chǎn)品供應(yīng)商請購單1:1M:N訂購單M:NN:1產(chǎn)品M:N供應(yīng)商實體關(guān)係圖建構(gòu)指南(續(xù)11)確認(rèn)實體關(guān)係之屬性絕大部分的屬性項目

18、可歸在實體中,但有些屬性並不單獨屬於任一實體,而是屬於某些實體之關(guān)係。假設(shè)有三個實體:訂單、成品與客戶。某企業(yè)之經(jīng)營規(guī)則對貨品之單價可能不是固定的,而是依對該貨品訂貨量大小而定。在此情況,數(shù)量與單價都不單獨屬於訂單或成品實體,而是屬於這兩實體之關(guān)係。有關(guān)實體關(guān)係屬性之判斷,一般來說,可依專業(yè)知識、企業(yè)規(guī)則等歸納或推演之。 實體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表當(dāng)一個E-R模式建立完成之後,除了可瞭解資料庫的概念性架構(gòu)外,最主要的是可以根據(jù)一定的轉(zhuǎn)換規(guī)則,將實體關(guān)係圖轉(zhuǎn)換成關(guān)聯(lián)表 (或稱Table)。本節(jié)以圖6-11為例說明之。 圖6-11 ERD範(fàn)例 MinitFnameLnameAddressNameSsnSa

19、larySexBdateStartDateHoursNameNumberLacationsNumber Of EmployeeNameNumberLocationRelationshipBirthdaySexEMPLOYEEDEPARTMENTPROFECTSUPERVISIONMANAGESCONTROLSWORKS_ONWORKS_FORSUPERVISORSUPERVISEE1N111NNMN11NNameDEPENDENTDEPENDENTS_OF 實體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù))對每一個一般性實體類型建立一個關(guān)聯(lián)表實體關(guān)係圖上之每一實體類型建立一個關(guān)聯(lián)表,其屬性是所有的簡單屬性與合成屬性之集

20、合,且可依6.2 節(jié)之主鍵選取原則,從準(zhǔn)鍵中選擇一個主鍵。以圖6-11的 EMPLOYEE 實體類型為例,該實體可被轉(zhuǎn)成一關(guān)聯(lián)表,原來實體上之屬性為該關(guān)聯(lián)表之屬性,並可選擇SSN(身分證字號)屬性為其主鍵。該關(guān)聯(lián)表可表達(dá)如下:SSNBDATEFNAMEMNAMELNAMESEXADDRESSSALARY實體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)1)對每一個弱實體類型建立一個關(guān)聯(lián)表將實體關(guān)係圖上之每一弱實體類型建立一個關(guān)聯(lián)表,其屬性是所有的簡單屬性、合成屬性與擁有者實體類型之主鍵的集合,且該關(guān)聯(lián)表之主鍵是由擁有者實體之主鍵與弱實體類型的不完全鍵所構(gòu)成。以圖6-11的DEPENDENT 實體類型為例,該實體可被轉(zhuǎn)成一

21、關(guān)聯(lián)表,原來實體上之屬性為該關(guān)聯(lián)表之屬性,而 DEPENDENT 之 NAME 及EMPLOYEE 之 SSN 合併為 DEPENDENT 之主鍵。為便於區(qū)別,EMPLOYEE 之 SSN 在此可表示成 ESSN,該關(guān)聯(lián)表可表達(dá)如下:實體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)2)SSNBDATEFNAMEMINITLNAMESEXADDRESSSALARYEMPLOYEE(擁有者實體類型)DEPENDENTEESNNAMESEXBIRTHDAYRELATIONSHIP實體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)3)對每一個多值屬性建立一個關(guān)聯(lián)表將實體關(guān)係圖上的每一個多值屬性建立一個關(guān)聯(lián)表,其屬性是該多值屬性與擁有者實體類型之主鍵的集合

22、,且其主鍵是由該關(guān)聯(lián)表之所有屬性所構(gòu)成。以圖6-11中的 LOCATIONS 為例,該屬性是多值屬性,故可被轉(zhuǎn)成一關(guān)聯(lián)表,稱為DEPT_LOCATIONS。因Locations之擁有者為DEPARTMENT,且DEPARTMENT之主鍵為DNUMBER,故DEPT_LOCATIONS之屬性為DNUMBER與 LOCATIONS,且兩者合併為主鍵。實體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)4)為便於區(qū)別,特將DEPT_LOCATIONS之LOCATIONS更名為 DLOCATION。該關(guān)聯(lián)表可表達(dá)如下:DNAMEDNUMBERMGRSSNMGRSTARTDATEDEPARTMENTDEPT_LOCATIONSDNU

23、MBERDLOCATION實體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)5)對M:N (多對多)關(guān)係建立一個關(guān)聯(lián)表將實體關(guān)係圖上之每一個 M:N 關(guān)係建立一個關(guān)聯(lián)表,其屬性是該關(guān)係上之所有屬性與兩個實體類型之主鍵的集合,且其主鍵為兩外鍵之集合。 實體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)6)以圖6-11中,實體類型 EMPLOYEE與 PROJECT的關(guān)係 WORKS_ON 為例,該關(guān)係為多對多,故可轉(zhuǎn)成一關(guān)聯(lián)表稱WORKS_ON。因WORKS_ON上有一屬性 HOURS,且實體類型 EMPLOYEE與 PROJECT 的主鍵分別為 SSN 與 PNUMBER,故 WORKS_ON 之屬性為 SSN、PNUMBER 與HOURS,且主鍵

24、為前兩者之集合。為便於區(qū)別,特將 WORKS_ON 之 SSN 更名為 ESSN,PNUMBER 更名為 PNO。該關(guān)聯(lián)表可表達(dá)如下:實體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)7)EMPLOYEEPROJECTPNAMEPNUMBERPLOCATIONDNUMESSNPNOHOURSWORKS_ONSSNBDATEFNAMEMINITLNAMESEXADDRESSSALARYDNO實體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)8)對兩實體類型間之1:1關(guān)係作以下之處理選擇任一實體類型,例如 S,將另一實體類型,例如 R 的主鍵包含進中當(dāng)成外鍵。S 端最好選擇具有完全參與關(guān)係的一端。將關(guān)係上之所有屬性包含入 S 端。以圖6-11中,實體類

25、型EMPLOYEE與DEPARTMENT的關(guān)係 MANAGES為例,該關(guān)係為 一對一(1:1),因為實體類型DEPARTMENT為完全參與關(guān)係端(也就是S端),EMPLOYEE為R端且其主鍵為SSN,故應(yīng)把SSN及MANAGES上之 STARTDATE加入實體類型DEPARTMENT之屬性中。實體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)9)為便於區(qū)別,特把SSN更名為MGRSSN,STARTDATE更名為MGRSTARTDATE,該關(guān)聯(lián)表可表達(dá)如下:SSNBDATEFNAMEMINITLNAMESEXADDRESSSALARYEMPLOYEE(R端,擁有者實體類型)DEPARTMENT(S端)DNAMEDNUMBE

26、RMGRSSNMGRSTARTDATE實體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)10)對兩實體類型間之1:N關(guān)係作以下之處理選擇N端當(dāng)作S端,將R端的主鍵包含進S端中當(dāng)成外鍵。將關(guān)係上之所有屬性包含入S端。 以圖6-11中,實體類型DEPARTMENT與EMPLOYEE的關(guān)係 WORKS_FOR 為例,該關(guān)係為一對多,EMPLOYEE為N端(也就是S端),DEPARTMENT為R端,且關(guān)係WORKS_FOR上並無屬性,故僅把DEPARTMENT之主鍵(也就是DNUMBER)加入EMPLOYEE之屬性中。 實體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)11)為便於區(qū)別,特把DNUMBER更名為DNO,該關(guān)聯(lián)表可表達(dá)如下:DEPARTMEN

27、T (R端)EMPLOYEE(S端)DNAMEDNUMBERMGRSSNMGRSTARTDATESSNBDATEFNAMEMINITLNAMESEXADDRESSSALARYDNO實體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)12)對N元關(guān)係建立一個關(guān)聯(lián)表將實體關(guān)係圖上之每一個N元關(guān)係建立一個關(guān)聯(lián)表,其屬性是該關(guān)係上之所有屬性與所有參與的實體類型之主鍵的集合,且其主鍵為所有外鍵的集合。實體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)13)以圖6-12之實體關(guān)係圖為例,實體類型 PROJECT (專案)、SUPPLIER(供應(yīng)商)與 PART(零件)之關(guān)係為SUPPLY(供應(yīng)),SUPPLIER 之主鍵為 SNAME,PROJECT 之主鍵為

28、PROJNAME,PART 之主鍵為PARTNO,且關(guān)係 SUPPLY上有一屬性為 QUANTITY,該三元關(guān)係可轉(zhuǎn)成一關(guān)聯(lián)表稱 SUPPLY。SUPPLY之屬性為 PROJECT 、SUPPLIER 與 PART之主鍵與關(guān)係SUPPLY 上之屬性之集合,也就是PROJNAME、 SNAME、 PARTNO 與 QUANTITY 等。該關(guān)聯(lián)表可表達(dá)如下:SUPPLYSNAMEPARTNOPROJNAMEQUANTITY圖6-12 三元關(guān)係範(fàn)例SNameQuantityProjNamePartNoSUPPLIERPROJECTPARTSUPPLY正規(guī)化建構(gòu)實體關(guān)係圖及將實體關(guān)係圖轉(zhuǎn)成關(guān)聯(lián)表的設(shè)計

29、步驟,必須包含正規(guī)化的處理,否則關(guān)聯(lián)表中可能存在一些重複的資料。正規(guī)化是將資料屬性組合成為一個具有良好結(jié)構(gòu)的關(guān)聯(lián)表的過程。雖然正規(guī)化常與關(guān)聯(lián)式模式相結(jié)合,但它也是一種邏輯設(shè)計的技術(shù),可以獨立於關(guān)聯(lián)式資料庫管理系統(tǒng)之外而單獨被使用。表6-5 課程收費關(guān)聯(lián)表 學(xué)員學(xué)號課程代號學(xué)費(元)991309920099250994259950099575MIS200MIS300MIS200MIS400MIS300MIS5003,0005,0003,0006,0005,0002,500正規(guī)化(續(xù))課程收費關(guān)聯(lián)表並不是一個良好結(jié)構(gòu)化的關(guān)聯(lián)表,因為該表中含有重複的資料,可能會造成錯誤或不一致的情況,此現(xiàn)象稱異常。

30、三種可能的異常狀況插入異常:假設(shè)考慮加入一項新課程(例如MIS600),除非至少有一個學(xué)員登記了這門課程,否則這個課程將無法加入該表中,因為表中每一列至少要有一學(xué)員的學(xué)號。 正規(guī)化(續(xù)1)刪除異常:假設(shè)學(xué)員99425不再選擇MIS400的課程,由於該課程只有該學(xué)員登記,刪除後,便失去了MIS400課程收費是6,000元的資訊。更改異常:假設(shè)MIS200課程的學(xué)費由3,000元增加至5,000元,那麼在每一包含MIS200課程的列中都必須進行這項改變,否則資料便會不一致。採用正規(guī)化定理將課程收費關(guān)聯(lián)表分解為學(xué)員課程與課程收費兩項關(guān)聯(lián)表(參考表6-6),以避免上述的異常情形。 表6-6 將課程收費

31、化為兩個關(guān)聯(lián)表 學(xué)員學(xué)號課程代號991309920099250994259950099575MIS200MIS300MIS200MIS400MIS300MIS500課程代號學(xué)費MIS200MIS300MIS400MIS5003,0005,0006,0002,500學(xué)員課程關(guān)聯(lián)表課程收費關(guān)聯(lián)表正規(guī)化(續(xù)2)介紹正規(guī)化前須先瞭解功能相依、部分功能相依與遞移相依。功能相依假設(shè)有一關(guān)聯(lián)表 R,且 A 與 B 是 R 的屬性。B 功能相依於 A,或稱 A 在功能上決定 B,寫成 R.AR.B,若且唯若 A 屬性之值只會對應(yīng)到一個 B 屬性之值。其中,A 與 B 都可以是複合屬性。若屬性 B 功能相依於複

32、合屬性 A,但不功能相依於 A 的部分屬性,則稱 B完全功能相依於 A。正規(guī)化(續(xù)3)部分功能相依若 B 功能相依於 A 的某些部分,也就是說,若把 A 中之部分屬性刪除,而 B 仍然功能相依於 A,則R.AR.B 是部分功能相依。遞移相依關(guān)聯(lián)表中存在非鍵屬性功能相依於一個或多個非鍵屬性稱之(參考圖6-13)。圖6-13 部分功能相依與遞移相依範(fàn)例ABCDE主鍵正規(guī)化(續(xù)4)正規(guī)化型式有六種,其中依資料相依性所造成異?,F(xiàn)象之多寡及正規(guī)化步驟之順序可排列如下(參考圖6-14):第一正規(guī)化型式,主要除去關(guān)聯(lián)表中任何的重複群,使關(guān)聯(lián)表中任一行與任一列的交叉格上均只有一個值。第二正規(guī)化型式,符合第一正

33、規(guī)化型式,再除去資料的部分功能相依。正規(guī)化(續(xù)5)第三正規(guī)化型式,符合第二正規(guī)化型式,再除去資料的遞移相依;Boyce-Codd正規(guī)化型式,符合第三正規(guī)化型式,再除去任何因功能相依所造成的異常結(jié)果。第四正規(guī)化型式,符合Boyce-Codd正規(guī)化型式,再除去所有的多值相依。第五正規(guī)化型式,符合第四正規(guī)化型式,再除去剩餘的所有異常情況等。一般來說,在實務(wù)上常應(yīng)用至第三正規(guī)化型式,因此本書也將介紹至第三正規(guī)化型式。圖6-14 正規(guī)化的步驟未經(jīng)正規(guī)化的關(guān)聯(lián)表第一正規(guī)化型式第二正規(guī)化型式第三正規(guī)化型式Boyce-Codd正規(guī)化型式第四正規(guī)化型式第五正規(guī)化型式除去重複群除去部分相依除去遞移相依除去其他因功

34、能相依所造成的異常除去多值相依除去剩下所有的異常表6-8 未正規(guī)化的關(guān)聯(lián)表:成績單學(xué)生學(xué)號學(xué)生姓名通訊處主修課程代號課程名稱授課老師老師研究室成績00654301王大海蓮海路70號資管MIS350MIS465資料庫管理系統(tǒng)系統(tǒng)分析與設(shè)計黃山全莊慶宏R4504R4531AB00654302盧正映蓮海路85號企管MIS350企管201企管300資料庫管理系統(tǒng)會計學(xué)行銷學(xué)黃山全賴豐田王一名R4504R4310R4212CBA表6-9 第一正規(guī)化型式: 成績單關(guān)聯(lián)表學(xué)生學(xué)號學(xué)生姓名通訊處主修課程代號課程名稱授課老師老師研究室成績00654301王大海蓮海路70號資管MIS350資料庫管理系統(tǒng)黃山全R4

35、504A00654301王大海蓮海路70號資管MIS465系統(tǒng)分析與設(shè)計莊慶宏R4531B00654302盧正映蓮海路85號企管MIS350資料庫管理系統(tǒng)黃山全R4504C00654302盧正映蓮海路85號企管企管201會計學(xué)賴豐田R4310B00654302盧正映蓮海路85號企管企管300行銷學(xué)王一名R4212A正規(guī)化(續(xù)6)第二正規(guī)化型式第二正規(guī)化型式必須分析其資料之功能相依,並在資料中選出該關(guān)聯(lián)表之鍵(鍵之欄位應(yīng)加底線表示),鍵之選擇可參考6.2節(jié)之原則。對所有資料進行分析,其分析結(jié)果可表達(dá)如下(參考圖6-15):學(xué)生學(xué)號學(xué)生姓名、通訊處、主修課程代號課程名稱、授課老師、老師研究室學(xué)生學(xué)

36、號、課程代號成績授課老師老師研究室 圖6-15 成績關(guān)聯(lián)表中之部分功能相依 成績學(xué)生學(xué)號通訊處學(xué)生姓名課程代號主修課程名稱授課老師老師研究室主鍵正規(guī)化(續(xù)7)第二正規(guī)化型式必須去除成績關(guān)聯(lián)表中之部分功能相依。這三個關(guān)聯(lián)表(如表6-10)茲介紹如下:第一個關(guān)聯(lián)表稱學(xué)生,包括學(xué)生學(xué)號(鍵)、學(xué)生姓名、通訊處和主修等四項屬性。第二個關(guān)聯(lián)表稱課程老師,包括課程代號(鍵)、課程名稱、授課老師和老師研究室等四項屬性。第三個關(guān)聯(lián)表稱選課,包括組合鍵(學(xué)生學(xué)號、課程代號)和成績,成績完全相依於此鍵。表6-10a 學(xué)生關(guān)聯(lián)表(3NF)學(xué)生學(xué)生學(xué)號學(xué)生姓名通訊處主修0065430100654302王大海盧正映蓮海

37、路70號蓮海路85號資管企管表6-10b 課程老師關(guān)聯(lián)表(2NF) 課程老師課程代號課程名稱授課老師老師研究室MIS350MIS465MIS350企管201企管300資料庫管理系統(tǒng)系統(tǒng)分析與設(shè)計資料庫管理系統(tǒng)會計學(xué)行銷學(xué)黃山全莊慶宏黃山全賴豐田王一名R4504R4531R4504R4310R4212表6-10c 選課關(guān)聯(lián)表(3NF)學(xué)生學(xué)號課程代號成績0065430100654301006543020065430200654302MIS350MIS465MIS350企管201企管300ABCBA選課正規(guī)化(續(xù)8)第三正規(guī)型式學(xué)生和選課兩項關(guān)聯(lián)表(參考表6-10a與表6-10c)已經(jīng)符合第三正規(guī)

38、化型式,但課程老師關(guān)聯(lián)表(表6-10b)仍為第二正規(guī)化型式,因為老師研究室(非鍵屬性)也功能相依於授課老師(非鍵屬性)(參考圖6-16)。圖6-16 課程老師關(guān)聯(lián)表之遞移相依性 課程代號課程名稱授課老師老師研究室正規(guī)化(續(xù)9)課程老師關(guān)聯(lián)表(表6-10b)須去除其中之遞移相依,才能符合第三正規(guī)化型式。因此,可將課程老師關(guān)聯(lián)表分成課程和老師兩個關(guān)聯(lián)表(如表6-11a、表6-11b),其中課程關(guān)聯(lián)表包含課程代號(鍵)、課程名稱和授課老師等屬性,而老師關(guān)聯(lián)表則包含授課老師(鍵) 和老師研究室兩項屬性。 表6-11a 課程關(guān)聯(lián)表(3NF)課程代號課程名稱授課老師(FK) MIS350MIS465MIS350企管201企管300資料庫管理系統(tǒng)系統(tǒng)分析與設(shè)計資料庫管理系統(tǒng)會計學(xué)行銷學(xué)黃山全莊慶宏黃山全賴豐田王一名課程表6-11b 老師關(guān)聯(lián)表(3NF)授課老師老師研究室黃山全莊慶宏黃山全賴豐田王一名R4504R4531R4504R4310R4212老師正規(guī)化(續(xù)10)成績單資料經(jīng)過一連串正規(guī)化的步驟,已轉(zhuǎn)換成學(xué)生、選課、課程與老師等四個符合第三正規(guī)化型式的關(guān)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論