版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第六章 結(jié)構(gòu)化分析與設(shè)計(jì)─資料塑模,,內(nèi)容大綱,學(xué)習(xí)目標(biāo)第一節(jié) 導(dǎo)論第二節(jié) 資料塑模工具第三節(jié) 實(shí)體關(guān)係圖建構(gòu)指南第四節(jié) 實(shí)體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表第五節(jié) 正規(guī)化第六節(jié) 軟硬體環(huán)境設(shè)計(jì)與開發(fā)工具選擇第七節(jié) 系統(tǒng)分析與設(shè)計(jì)之文件樣板第八節(jié) 結(jié)論,學(xué)習(xí)目標(biāo),詳讀本章,你至少能瞭解:何謂實(shí)體關(guān)係圖。實(shí)體關(guān)係圖之種類與元件。實(shí)體關(guān)係圖、建構(gòu)策略與指南。實(shí)體關(guān)係圖轉(zhuǎn)成關(guān)聯(lián)表之法則。如何將實(shí)體關(guān)係圖轉(zhuǎn)成關(guān)聯(lián)表,並進(jìn)行正規(guī)化以設(shè)計(jì)
2、資料庫(kù)。,導(dǎo)論,實(shí)體關(guān)係模式(以下稱E-R模式)是關(guān)聯(lián)式資料庫(kù)設(shè)計(jì)的重要工具之一。實(shí)體關(guān)係圖是 E-R 模式的一種圖形表示。這些工具對(duì)組織或商業(yè)領(lǐng)域的實(shí)體、關(guān)聯(lián)及資料元素提供概念性邏輯結(jié)構(gòu)的表示。,資料塑模工具,關(guān)聯(lián)式資料庫(kù)的整體邏輯結(jié)構(gòu)可以用實(shí)體關(guān)係圖表示,它包含了下列的組成元素:矩形:代表實(shí)體類型。菱形:代表實(shí)體類型與實(shí)體類型間之關(guān)係。橢圓形:代表實(shí)體類型或關(guān)係之屬性。直線:把屬性連結(jié)到實(shí)體類型或把實(shí)體類型連結(jié)到關(guān)係 。
3、基數(shù):代表實(shí)體類型與實(shí)體類型間之關(guān)係程度,關(guān)係程度可以是一對(duì)一、一對(duì)多(或多對(duì)一)或者多對(duì)多等。,資料塑模工具(續(xù)),以圖6-1為例,訂單與貨品均為實(shí)體;編號(hào)及訂購(gòu)人為訂單之屬性;品名編號(hào)及單價(jià)為貨品之屬性;訂貨則為這兩個(gè)實(shí)體之關(guān)係。訂單與貨品所發(fā)生的訂貨關(guān)係中,左邊連結(jié)線上的數(shù)字代表以訂單角度敘述訂單和貨品的關(guān)係程度。同樣地,右邊之?dāng)?shù)字代表貨品實(shí)體與訂單之關(guān)係程度。因此,M表示每張訂單可訂購(gòu)多個(gè)貨品,而N表示每個(gè)貨品可以存在於多張訂
4、單中,因數(shù)目不限故以M或N泛稱。,圖6-1 ERD範(fàn)例,資料塑模工具(續(xù)1),E-R Model 有關(guān)之元素及其相關(guān)之性質(zhì)包括:實(shí)體類型屬性關(guān)係基數(shù),資料塑模工具(續(xù)2),實(shí)體類型實(shí)體類型有時(shí)稱為實(shí)體類別或簡(jiǎn)稱實(shí)體,是一些具有共同性質(zhì)或特徵之實(shí)體案例或稱案例的集合。每個(gè)實(shí)體類型有一個(gè)名稱為其辨別物,常以矩形表示,並將實(shí)體的名稱標(biāo)示於矩形內(nèi)。,,資料塑模工具(續(xù)3),例如員工之實(shí)體類型可表示如下: 實(shí)體之種類很多,主要包
5、括人、地方、物件、事件或使用者環(huán)境中之概念等。,員工,資料塑模工具(續(xù)4),屬性每個(gè)實(shí)體類型都具有一些屬性,每個(gè)屬性是實(shí)體類型的一個(gè)性質(zhì)或特徵。 在 ERD 中,一個(gè)屬性有一名稱以茲辨別,且常以橢圓形表示,並將屬性名稱標(biāo)示於橢圓形中,且以線條與其實(shí)體類型連接。以學(xué)生實(shí)體類型為例,若其屬性包括學(xué)生之學(xué)號(hào)、姓名、地址、電話等,其表達(dá)方式如圖 6-2。,圖6-2 實(shí)體類型與其屬性,資料塑模工具(續(xù)5),當(dāng)一個(gè)實(shí)體案例之某一個(gè)屬性有一個(gè)以上
6、的值,此情況稱為多值屬性。例如,眷屬是員工(實(shí)體類型)的屬性之一,其眷屬資料為眷屬姓名、年齡與關(guān)係(配偶、孩子、父母等),因一員工可能有多個(gè)眷屬,故眷屬是多值屬性。兩種常用的多值屬性表示法用雙線的橢圖形表示(如圖 6-3)。用另一實(shí)體類型表示,並以線條與原實(shí)體類型相連(如圖6-4),此種實(shí)體類型稱弱或?qū)傩詫?shí)體類型,例如眷屬,這些有邏輯關(guān)係之多值屬性的集合稱為重複群 。,圖6-3 實(shí)體類型與多值屬性範(fàn)例,圖6-4 實(shí)體類型與弱實(shí)體
7、類型範(fàn)例,,資料塑模工具(續(xù)6),準(zhǔn)鍵和主鍵一個(gè)準(zhǔn)鍵 或稱為鍵是一個(gè)屬性或多個(gè)屬性的集合,它(們)可區(qū)別實(shí)體類型的每個(gè)實(shí)體案例。 若有多個(gè)鍵,設(shè)計(jì)者必須從中選一作為主鍵。主鍵常以底線表示之,如圖 6-3之員工代號(hào)。,資料塑模工具(續(xù)7),主鍵是準(zhǔn)鍵之一,它被用以區(qū)別實(shí)體類型中之案例。Bruce(1992)提出主鍵之選用準(zhǔn)則如下:實(shí)體類型之每個(gè)案例在生命過程中應(yīng)不會(huì)改變其值。例如,用地址與名字當(dāng)作員工主鍵並不恰當(dāng),因?yàn)閱T工之地址可能
8、會(huì)改變。必須具有有效值且不可以是空值。避免使用所謂的智慧鍵,也就是以該鍵之結(jié)構(gòu)表示分類或位置等。盡可能以單一屬性主鍵代替多屬性的組合鍵。,資料塑模工具(續(xù)8),關(guān)係關(guān)係把 E-R 模式中之元素(例如實(shí)體類型)結(jié)合在一起,一個(gè)關(guān)係是一個(gè)或多個(gè)實(shí)體類型的案例間之關(guān)聯(lián),一個(gè)關(guān)聯(lián)經(jīng)常意味著事件已發(fā)生或存在一些案例間自然的連結(jié)。 關(guān)係的程度簡(jiǎn)稱關(guān)係度,是參與在某個(gè)關(guān)係中之實(shí)體類型的數(shù)量。在 E-R 模式中,三種最常見之關(guān)係度為:?jiǎn)我魂P(guān)
9、係二元關(guān)係三元 關(guān)係,資料塑模工具(續(xù)9),單一關(guān)係單一關(guān)係又稱為遞迴關(guān)係,此關(guān)係是建立在一實(shí)體類型之案例間。例如人是一實(shí)體類型,一個(gè)人(案例)可以與另一個(gè)人(案例)有婚姻關(guān)係,且是一對(duì)一的關(guān)係(如圖 6-5a)。另一可能的情況是,員工是一實(shí)體類型,許多員工(案例)向某一特定管理者(案例)報(bào)告或管理者可管理許多員工,這是一對(duì)多的關(guān)係(如圖6-5b)。,圖6-5a 一對(duì)一之單一關(guān)係,圖6-5b 一對(duì)多之單一關(guān)係,資料塑模工具(續(xù)
10、10),此外,尚有其他可能之情況。圖6-5c表示組件有許多不同數(shù)量之零件。二元關(guān)係二元關(guān)係表示兩個(gè)實(shí)體類型其案例間之關(guān)係,此種關(guān)係之情況最常見。,圖6-5c 多對(duì)多之單一關(guān)係,圖6-7a 二元之一對(duì)一關(guān)係,圖6-7b 二元之一對(duì)多關(guān)係,圖6-7c 二元之多對(duì)多關(guān)係,資料塑模工具(續(xù)11),三元關(guān)係三元關(guān)係表示三個(gè)實(shí)體類型其案例間之共同關(guān)係,此關(guān)係中每個(gè)實(shí)體類型可能有一或多個(gè)案例參與。例如零件、供應(yīng)商與批發(fā)商均是實(shí)體類型,三者間有「
11、輪船運(yùn)送」之關(guān)係,且數(shù)量為輪船運(yùn)送之屬性(如圖6-8)。,圖6-8 三元關(guān)係,資料塑模工具(續(xù)12),關(guān)係基數(shù)關(guān)係基數(shù)表實(shí)體類型(如電影)之案例能與另一實(shí)體類型(如錄影帶)之案例關(guān)聯(lián)之?dāng)?shù)目,該關(guān)聯(lián)之?dāng)?shù)目可能會(huì)有最小或最大之限制,亦可能沒限制(如圖6-9a)。關(guān)聯(lián)數(shù)目若有最小或最大之限制,則分別稱之為最小基數(shù)與最大基數(shù)。最小基數(shù)表示某實(shí)體類型之案例能與另一實(shí)體類型之案例關(guān)聯(lián)之最小數(shù)目。相對(duì)於最小基數(shù),最大基數(shù)表案例的最大數(shù)。,資料塑模
12、工具(續(xù)13),例如,一部電影可被存成多捲錄影帶若一個(gè)關(guān)係之最小基數(shù)為0,則該實(shí)體類型如錄影帶,是一個(gè)選擇性的參與者。若最小基數(shù)為1,則稱強(qiáng)制性的參與者。最小基數(shù)為0,則以0表示(如圖6-9b);若為1,則以1表示。,圖6-9a 基數(shù)範(fàn)例一,圖6-9b 基數(shù)範(fàn)例二,資料塑模工具(續(xù)14),關(guān)聯(lián)實(shí)體一個(gè)關(guān)聯(lián)實(shí)體是一個(gè)一對(duì)一或多對(duì)多之關(guān)係,但設(shè)計(jì)者選擇用一種實(shí)體類型取代之,並表示與其他實(shí)體類型之一對(duì)多的關(guān)係。,資料塑模工具(續(xù)15),
13、例如,某組織想記錄某員工在何時(shí)完成那一門課,其部分資料如下:,資料塑模工具(續(xù)16),上述之「完成」關(guān)係可被表示如圖6-10a 之二元關(guān)係。其中,完成日期並非員工之屬性,亦非課程之屬性,而是員工與課程關(guān)係之屬性。從完成到員工與完成到課程之線,並非兩個(gè)分離的二元關(guān)係,而是一個(gè)二元關(guān)係的兩個(gè)端點(diǎn)。若將完成視為關(guān)聯(lián)實(shí)體,則其主鍵是員工與課程之主鍵(分別是員工代號(hào)與課程名稱)的組合,此關(guān)聯(lián)實(shí)體可表示如圖6-10b。,圖6-10a 二元關(guān)係,圖
14、6-10b 關(guān)聯(lián)實(shí)體範(fàn)例,實(shí)體關(guān)係圖建構(gòu)指南,建立實(shí)體關(guān)係圖可依以下三階段進(jìn)行:確認(rèn)實(shí)體及其屬性確認(rèn)實(shí)體間之關(guān)係與基數(shù)確認(rèn)實(shí)體關(guān)係之屬性確認(rèn)實(shí)體及其屬性確認(rèn)實(shí)體常用之原則有:整合與一般化。整合是將一些描述某物件或概念基本性質(zhì)的項(xiàng)目加以結(jié)合,以形成一個(gè)較高階之物件或概念。,實(shí)體關(guān)係圖建構(gòu)指南(續(xù)),此物件或概念稱為實(shí)體,而描述該實(shí)體基本性質(zhì)之項(xiàng)目是其屬性。例如著作名稱、編號(hào)、作者、館藏、出版日期等項(xiàng)目,都可視為描述物件「書」的基
15、本性質(zhì),這些項(xiàng)目可被整合成一實(shí)體,稱為「書」,而這些項(xiàng)目是書之屬性。實(shí)體的確認(rèn)可由需求分析中之藍(lán)圖(包括輸入與輸出格式)及其資料詞彙找起。 由每個(gè)原始藍(lán)圖檢查每個(gè)項(xiàng)目或欄位,以訂出屬性或概念,將描述相同物件或概念之屬性整合成一實(shí)體(或稱為實(shí)體類型),或?qū)⒁恍┚哂心承再|(zhì)之項(xiàng)目集合,並將之一般化成一實(shí)體。,實(shí)體關(guān)係圖建構(gòu)指南(續(xù)1),分辨一藍(lán)圖中可能的實(shí)體之經(jīng)驗(yàn)通常表單本身就是一個(gè)實(shí)體(衍生性表單除外),例如表6-1中,請(qǐng)購(gòu)單即為一
16、個(gè)「請(qǐng)購(gòu)單」的實(shí)體,因?yàn)槠錇樵急韱?。表單欄位若為一相關(guān)聯(lián)的群組或格式欄位有共同字首者,也就是一些描述某物件或概念的基本性質(zhì)之項(xiàng)目,可能被整合成一實(shí)體,例如表 6-1中的明細(xì)資料,包括產(chǎn)品編號(hào)、品名、規(guī)格與單位等項(xiàng)目是一相關(guān)聯(lián)的群組,該群組描述產(chǎn)品的基本性質(zhì),即可形成一個(gè)「產(chǎn)品」實(shí)體。,實(shí)體關(guān)係圖建構(gòu)指南(續(xù)2),表單欄位若為一般認(rèn)定的關(guān)鍵詞(如姓名),則可能為一實(shí)體,例如表6-2中的經(jīng)手人及廠商名稱都可能形成「員工」與「供應(yīng)商」實(shí)
17、體。若某表單為另一表單欄位的來源,則此表單可能為一實(shí)體,例如表6-2訂購(gòu)單中的「請(qǐng)購(gòu)單編號(hào)」來自於表6-1之請(qǐng)購(gòu)單中,故「請(qǐng)購(gòu)單」應(yīng)形成一個(gè)「請(qǐng)購(gòu)單」實(shí)體。,,表6-1 請(qǐng)購(gòu)單,,表6-2 訂購(gòu)單,實(shí)體關(guān)係圖建構(gòu)指南(續(xù)3),分辨出表單中可能的實(shí)體及其屬性後,可經(jīng)由所蒐集之資料進(jìn)一步歸納,依專業(yè)知識(shí)之判斷,或採(cǎi)用下列經(jīng)驗(yàn)法則以確認(rèn)實(shí)體與實(shí)體間之關(guān)係: 以相關(guān)聯(lián)群組形成的實(shí)體,其相關(guān)聯(lián)群組所包含的欄位皆為其屬性;例如,表6-1中的明
18、細(xì)資料(包括產(chǎn)品編號(hào)、品名、規(guī)格與單位)即可能形成一個(gè)「產(chǎn)品」實(shí)體。,實(shí)體關(guān)係圖建構(gòu)指南(續(xù)4),如果一個(gè)表單欄位的來源是直接參照其他實(shí)體中之屬性,則這些屬性不需重複出現(xiàn)在該表單所屬之實(shí)體;如表6-1之請(qǐng)購(gòu)單,因其產(chǎn)品相關(guān)之欄位已形成產(chǎn)品實(shí)體的屬性,故這些欄位不需包含在請(qǐng)購(gòu)單實(shí)體裡,故「請(qǐng)購(gòu)單」實(shí)體僅包含請(qǐng)購(gòu)單編號(hào)、請(qǐng)購(gòu)人、請(qǐng)購(gòu)日期、需求日期與製單等屬性。,實(shí)體關(guān)係圖建構(gòu)指南(續(xù)5),表單欄位與之前確認(rèn)的實(shí)體間位置距離相近者,例如在
19、同一區(qū)域或結(jié)構(gòu)中,則亦可能形成該實(shí)體之屬性,因?yàn)槿藗冊(cè)O(shè)計(jì)表單時(shí),常將相關(guān)之項(xiàng)目放在一起。如表6-1請(qǐng)購(gòu)單中,請(qǐng)購(gòu)日期、請(qǐng)購(gòu)人、製單、請(qǐng)購(gòu)單編號(hào)、需求日期等皆為「請(qǐng)購(gòu)單」實(shí)體之屬性。,實(shí)體關(guān)係圖建構(gòu)指南(續(xù)6),在表單分析之過程中,每個(gè)實(shí)體及其屬性可用一張表來記載,它有助於實(shí)體與屬性之紀(jì)錄,更有助於不同表單可能產(chǎn)生相同實(shí)體之整合等。以請(qǐng)購(gòu)單處理為例,請(qǐng)購(gòu)單為原始表單,逐一檢查訂單項(xiàng)目可知請(qǐng)購(gòu)日期、請(qǐng)購(gòu)人、製單、請(qǐng)購(gòu)單編號(hào)、需求日期等項(xiàng)目
20、都是用來描述一個(gè)實(shí)體稱為請(qǐng)購(gòu)單,也就是可將之整合成請(qǐng)購(gòu)單實(shí)體(如表6-3)。,表6-3 實(shí)體屬性表範(fàn)例,實(shí)體關(guān)係圖建構(gòu)指南(續(xù)7),確認(rèn)實(shí)體間之關(guān)係與基數(shù)依專業(yè)知識(shí)之判斷或採(cǎi)用下列規(guī)則,以確認(rèn)實(shí)體與實(shí)體間之關(guān)係: 若一表單中之欄位為另一表單欄位的參考來源,則這兩個(gè)表單分別形成的實(shí)體之間應(yīng)有一關(guān)係存在;例如,表6-1請(qǐng)購(gòu)單的「請(qǐng)購(gòu)單編號(hào)」是表6-2訂購(gòu)單中參考的來源,故「請(qǐng)購(gòu)單」和「訂購(gòu)單」之間應(yīng)有一「申請(qǐng)」的對(duì)應(yīng)關(guān)係。,實(shí)體關(guān)係圖
21、建構(gòu)指南(續(xù)8),若一實(shí)體是由表單欄位中一個(gè)相關(guān)聯(lián)的群組所形成,則該實(shí)體和原表單之間應(yīng)形成一關(guān)係;例如,表6-1的產(chǎn)品明細(xì)資料由請(qǐng)購(gòu)單獨(dú)立出來,並形成一個(gè)產(chǎn)品實(shí)體,所以產(chǎn)品和請(qǐng)購(gòu)單之間有一關(guān)係。,實(shí)體關(guān)係圖建構(gòu)指南(續(xù)9),形成實(shí)體間之關(guān)係後,可經(jīng)由所蒐集之資料進(jìn)一步歸納,依專業(yè)知識(shí)之判斷或採(cǎi)用下列規(guī)則,以確定實(shí)體間各關(guān)係的基數(shù): 若一表單中含有多個(gè)相同的欄位參考到另一表單,則其關(guān)係可能為1:N或M:N;例如表6-2,一張訂購(gòu)單
22、中包含多筆的產(chǎn)品資料,所以訂購(gòu)單與產(chǎn)品間之關(guān)係為M:N。若一表單中含有唯一的欄位參考到另一表單,則其關(guān)係可能為1:1或N:1;例如,表6-2訂購(gòu)單中僅包含一個(gè)廠商編號(hào),所以訂購(gòu)單與供應(yīng)商間之關(guān)係為N:1。,實(shí)體關(guān)係圖建構(gòu)指南(續(xù)10),除了以上規(guī)則外,有時(shí)亦可配合企業(yè)規(guī)則以判定各實(shí)體關(guān)係間的基數(shù);例如表6-2中,訂購(gòu)單和供應(yīng)商間的關(guān)係可能為1:1或N:1。經(jīng)由企業(yè)規(guī)則判斷得知,一張訂購(gòu)單上僅有一供應(yīng)商,且可向同一個(gè)供應(yīng)商下很多張訂購(gòu)
23、單,故其關(guān)係應(yīng)為N:1。以表6-1與表6-2為例,其實(shí)體關(guān)係可表示如表6-4。,表6-4 實(shí)體關(guān)係矩陣,實(shí)體關(guān)係圖建構(gòu)指南(續(xù)11),確認(rèn)實(shí)體關(guān)係之屬性絕大部分的屬性項(xiàng)目可歸在實(shí)體中,但有些屬性並不單獨(dú)屬於任一實(shí)體,而是屬於某些實(shí)體之關(guān)係。假設(shè)有三個(gè)實(shí)體:訂單、成品與客戶。某企業(yè)之經(jīng)營(yíng)規(guī)則對(duì)貨品之單價(jià)可能不是固定的,而是依對(duì)該貨品訂貨量大小而定。在此情況,數(shù)量與單價(jià)都不單獨(dú)屬於訂單或成品實(shí)體,而是屬於這兩實(shí)體之關(guān)係。有關(guān)實(shí)體
24、關(guān)係屬性之判斷,一般來說,可依專業(yè)知識(shí)、企業(yè)規(guī)則等歸納或推演之。,實(shí)體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表,當(dāng)一個(gè)E-R模式建立完成之後,除了可瞭解資料庫(kù)的概念性架構(gòu)外,最主要的是可以根據(jù)一定的轉(zhuǎn)換規(guī)則,將實(shí)體關(guān)係圖轉(zhuǎn)換成關(guān)聯(lián)表 (或稱Table)。本節(jié)以圖6-11為例說明之。,圖6-11 ERD範(fàn)例,,實(shí)體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)),對(duì)每一個(gè)一般性實(shí)體類型建立一個(gè)關(guān)聯(lián)表實(shí)體關(guān)係圖上之每一實(shí)體類型建立一個(gè)關(guān)聯(lián)表,其屬性是所有的簡(jiǎn)單屬性與合成屬性之集合,且可依6
25、.2 節(jié)之主鍵選取原則,從準(zhǔn)鍵中選擇一個(gè)主鍵。以圖6-11的 EMPLOYEE 實(shí)體類型為例,該實(shí)體可被轉(zhuǎn)成一關(guān)聯(lián)表,原來實(shí)體上之屬性為該關(guān)聯(lián)表之屬性,並可選擇SSN(身分證字號(hào))屬性為其主鍵。該關(guān)聯(lián)表可表達(dá)如下:,實(shí)體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)1),對(duì)每一個(gè)弱實(shí)體類型建立一個(gè)關(guān)聯(lián)表將實(shí)體關(guān)係圖上之每一弱實(shí)體類型建立一個(gè)關(guān)聯(lián)表,其屬性是所有的簡(jiǎn)單屬性、合成屬性與擁有者實(shí)體類型之主鍵的集合,且該關(guān)聯(lián)表之主鍵是由擁有者實(shí)體之主鍵與弱實(shí)體類型
26、的不完全鍵所構(gòu)成。以圖6-11的DEPENDENT 實(shí)體類型為例,該實(shí)體可被轉(zhuǎn)成一關(guān)聯(lián)表,原來實(shí)體上之屬性為該關(guān)聯(lián)表之屬性,而 DEPENDENT 之 NAME 及EMPLOYEE 之 SSN 合併為 DEPENDENT 之主鍵。為便於區(qū)別,EMPLOYEE 之 SSN 在此可表示成 ESSN,該關(guān)聯(lián)表可表達(dá)如下:,實(shí)體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)2),EMPLOYEE(擁有者實(shí)體類型),DEPENDENT,實(shí)體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)3),對(duì)每
27、一個(gè)多值屬性建立一個(gè)關(guān)聯(lián)表將實(shí)體關(guān)係圖上的每一個(gè)多值屬性建立一個(gè)關(guān)聯(lián)表,其屬性是該多值屬性與擁有者實(shí)體類型之主鍵的集合,且其主鍵是由該關(guān)聯(lián)表之所有屬性所構(gòu)成。以圖6-11中的 LOCATIONS 為例,該屬性是多值屬性,故可被轉(zhuǎn)成一關(guān)聯(lián)表,稱為DEPT_LOCATIONS。因Locations之擁有者為DEPARTMENT,且DEPARTMENT之主鍵為DNUMBER,故DEPT_LOCATIONS之屬性為DNUMBER與 LOCA
28、TIONS,且兩者合併為主鍵。,實(shí)體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)4),為便於區(qū)別,特將DEPT_LOCATIONS之LOCATIONS更名為 DLOCATION。該關(guān)聯(lián)表可表達(dá)如下:,DEPARTMENT,DEPT_LOCATIONS,實(shí)體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)5),對(duì)M:N (多對(duì)多)關(guān)係建立一個(gè)關(guān)聯(lián)表將實(shí)體關(guān)係圖上之每一個(gè) M:N 關(guān)係建立一個(gè)關(guān)聯(lián)表,其屬性是該關(guān)係上之所有屬性與兩個(gè)實(shí)體類型之主鍵的集合,且其主鍵為兩外鍵之集合。,實(shí)體關(guān)係圖
29、轉(zhuǎn)關(guān)聯(lián)表(續(xù)6),以圖6-11中,實(shí)體類型 EMPLOYEE與 PROJECT的關(guān)係 WORKS_ON 為例,該關(guān)係為多對(duì)多,故可轉(zhuǎn)成一關(guān)聯(lián)表稱WORKS_ON。因WORKS_ON上有一屬性 HOURS,且實(shí)體類型 EMPLOYEE與 PROJECT 的主鍵分別為 SSN 與 PNUMBER,故 WORKS_ON 之屬性為 SSN、PNUMBER 與HOURS,且主鍵為前兩者之集合。為便於區(qū)別,特將 WORKS_ON 之 SSN 更名
30、為 ESSN,PNUMBER 更名為 PNO。該關(guān)聯(lián)表可表達(dá)如下:,實(shí)體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)7),EMPLOYEE,PROJECT,WORKS_ON,實(shí)體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)8),對(duì)兩實(shí)體類型間之1:1關(guān)係作以下之處理選擇任一實(shí)體類型,例如 S,將另一實(shí)體類型,例如 R 的主鍵包含進(jìn)S中當(dāng)成外鍵。S 端最好選擇具有完全參與關(guān)係的一端。將關(guān)係上之所有屬性包含入 S 端。以圖6-11中,實(shí)體類型EMPLOYEE與DEPARTMENT
31、的關(guān)係 MANAGES為例,該關(guān)係為 一對(duì)一(1:1),因?yàn)閷?shí)體類型DEPARTMENT為完全參與關(guān)係端(也就是S端),EMPLOYEE為R端且其主鍵為SSN,故應(yīng)把SSN及MANAGES上之 STARTDATE加入實(shí)體類型DEPARTMENT之屬性中。,實(shí)體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)9),為便於區(qū)別,特把SSN更名為MGRSSN,STARTDATE更名為MGRSTARTDATE,該關(guān)聯(lián)表可表達(dá)如下:,EMPLOYEE(R端,擁有者實(shí)體類型)
32、,DEPARTMENT(S端),實(shí)體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)10),對(duì)兩實(shí)體類型間之1:N關(guān)係作以下之處理選擇N端當(dāng)作S端,將R端的主鍵包含進(jìn)S端中當(dāng)成外鍵。將關(guān)係上之所有屬性包含入S端。 以圖6-11中,實(shí)體類型DEPARTMENT與EMPLOYEE的關(guān)係 WORKS_FOR 為例,該關(guān)係為一對(duì)多,EMPLOYEE為N端(也就是S端),DEPARTMENT為R端,且關(guān)係WORKS_FOR上並無屬性,故僅把DEPARTMENT之主鍵(
33、也就是DNUMBER)加入EMPLOYEE之屬性中。,實(shí)體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)11),為便於區(qū)別,特把DNUMBER更名為DNO,該關(guān)聯(lián)表可表達(dá)如下:,DEPARTMENT (R端),EMPLOYEE(S端),實(shí)體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)12),對(duì)N元關(guān)係建立一個(gè)關(guān)聯(lián)表將實(shí)體關(guān)係圖上之每一個(gè)N元關(guān)係建立一個(gè)關(guān)聯(lián)表,其屬性是該關(guān)係上之所有屬性與所有參與的實(shí)體類型之主鍵的集合,且其主鍵為所有外鍵的集合。,實(shí)體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表(續(xù)13),以圖6
34、-12之實(shí)體關(guān)係圖為例,實(shí)體類型 PROJECT (專案)、SUPPLIER(供應(yīng)商)與 PART(零件)之關(guān)係為SUPPLY(供應(yīng)),SUPPLIER 之主鍵為 SNAME,PROJECT 之主鍵為 PROJNAME,PART 之主鍵為PARTNO,且關(guān)係 SUPPLY上有一屬性為 QUANTITY,該三元關(guān)係可轉(zhuǎn)成一關(guān)聯(lián)表稱 SUPPLY。SUPPLY之屬性為 PROJECT 、SUPPLIER 與 PART之主鍵與關(guān)係SUPPLY
35、 上之屬性之集合,也就是PROJNAME、 SNAME、 PARTNO 與 QUANTITY 等。該關(guān)聯(lián)表可表達(dá)如下:,SUPPLY,圖6-12 三元關(guān)係範(fàn)例,,正規(guī)化,建構(gòu)實(shí)體關(guān)係圖及將實(shí)體關(guān)係圖轉(zhuǎn)成關(guān)聯(lián)表的設(shè)計(jì)步驟,必須包含正規(guī)化的處理,否則關(guān)聯(lián)表中可能存在一些重複的資料。正規(guī)化是將資料屬性組合成為一個(gè)具有良好結(jié)構(gòu)的關(guān)聯(lián)表的過程。雖然正規(guī)化常與關(guān)聯(lián)式模式相結(jié)合,但它也是一種邏輯設(shè)計(jì)的技術(shù),可以獨(dú)立於關(guān)聯(lián)式資料庫(kù)管理系統(tǒng)之外而單獨(dú)
36、被使用。,表6-5 課程收費(fèi)關(guān)聯(lián)表,…,…,…,正規(guī)化(續(xù)),課程收費(fèi)關(guān)聯(lián)表並不是一個(gè)良好結(jié)構(gòu)化的關(guān)聯(lián)表,因?yàn)樵摫碇泻兄匮}的資料,可能會(huì)造成錯(cuò)誤或不一致的情況,此現(xiàn)象稱「異?!?。三種可能的異常狀況插入異常:假設(shè)考慮加入一項(xiàng)新課程(例如MIS600),除非至少有一個(gè)學(xué)員登記了這門課程,否則這個(gè)課程將無法加入該表中,因?yàn)楸碇忻恳涣兄辽僖幸粚W(xué)員的學(xué)號(hào)。,正規(guī)化(續(xù)1),刪除異常:假設(shè)學(xué)員99425不再選擇MIS400的課程,由於該課程
37、只有該學(xué)員登記,刪除後,便失去了MIS400課程收費(fèi)是6,000元的資訊。更改異常:假設(shè)MIS200課程的學(xué)費(fèi)由3,000元增加至5,000元,那麼在每一包含MIS200課程的列中都必須進(jìn)行這項(xiàng)改變,否則資料便會(huì)不一致。採(cǎi)用正規(guī)化定理將課程收費(fèi)關(guān)聯(lián)表分解為學(xué)員課程與課程收費(fèi)兩項(xiàng)關(guān)聯(lián)表(參考表6-6),以避免上述的異常情形。,表6-6 將課程收費(fèi)化為兩個(gè)關(guān)聯(lián)表,…,…,…,…,學(xué)員課程關(guān)聯(lián)表,課程收費(fèi)關(guān)聯(lián)表,正規(guī)化(續(xù)2),介紹正規(guī)化
38、前須先瞭解功能相依、部分功能相依與遞移相依。功能相依假設(shè)有一關(guān)聯(lián)表 R,且 A 與 B 是 R 的屬性。B 功能相依於 A,或稱 A 在功能上決定 B,寫成 R.A→R.B,若且唯若 A 屬性之值只會(huì)對(duì)應(yīng)到一個(gè) B 屬性之值。其中,A 與 B 都可以是複合屬性。若屬性 B 功能相依於複合屬性 A,但不功能相依於 A 的部分屬性,則稱 B完全功能相依於 A。,正規(guī)化(續(xù)3),部分功能相依若 B 功能相依於 A 的某些部分,也就是說,
39、若把 A 中之部分屬性刪除,而 B 仍然功能相依於 A,則R.A→R.B 是部分功能相依。遞移相依關(guān)聯(lián)表中存在非鍵屬性功能相依於一個(gè)或多個(gè)非鍵屬性稱之(參考圖6-13)。,圖6-13 部分功能相依與遞移相依範(fàn)例,正規(guī)化(續(xù)4),正規(guī)化型式有六種,其中依資料相依性所造成異?,F(xiàn)象之多寡及正規(guī)化步驟之順序可排列如下(參考圖6-14):第一正規(guī)化型式,主要除去關(guān)聯(lián)表中任何的重複群,使關(guān)聯(lián)表中任一行與任一列的交叉格上均只有一個(gè)值。第二正
40、規(guī)化型式,符合第一正規(guī)化型式,再除去資料的部分功能相依。,正規(guī)化(續(xù)5),第三正規(guī)化型式,符合第二正規(guī)化型式,再除去資料的遞移相依;Boyce-Codd正規(guī)化型式,符合第三正規(guī)化型式,再除去任何因功能相依所造成的異常結(jié)果。第四正規(guī)化型式,符合Boyce-Codd正規(guī)化型式,再除去所有的多值相依。第五正規(guī)化型式,符合第四正規(guī)化型式,再除去剩餘的所有異常情況等。一般來說,在實(shí)務(wù)上常應(yīng)用至第三正規(guī)化型式,因此本書也將介紹至第三正規(guī)化型式
41、。,圖6-14 正規(guī)化的步驟,表6-8 未正規(guī)化的關(guān)聯(lián)表:成績(jī)單,表6-9 第一正規(guī)化型式: 成績(jī)單關(guān)聯(lián)表,正規(guī)化(續(xù)6),第二正規(guī)化型式第二正規(guī)化型式必須分析其資料之功能相依,並在資料中選出該關(guān)聯(lián)表之鍵(鍵之欄位應(yīng)加底線表示),鍵之選擇可參考6.2節(jié)之原則。對(duì)所有資料進(jìn)行分析,其分析結(jié)果可表達(dá)如下(參考圖6-15):學(xué)生學(xué)號(hào)→學(xué)生姓名、通訊處、主修課程代號(hào)→課程名稱、授課老師、老師研究室學(xué)生學(xué)號(hào)、課程代號(hào)→成績(jī)授課老師→老
42、師研究室,圖6-15 成績(jī)關(guān)聯(lián)表中之部分功能相依,正規(guī)化(續(xù)7),第二正規(guī)化型式必須去除成績(jī)關(guān)聯(lián)表中之部分功能相依。這三個(gè)關(guān)聯(lián)表(如表6-10)茲介紹如下:第一個(gè)關(guān)聯(lián)表稱學(xué)生,包括學(xué)生學(xué)號(hào)(鍵)、學(xué)生姓名、通訊處和主修等四項(xiàng)屬性。第二個(gè)關(guān)聯(lián)表稱課程-老師,包括課程代號(hào)(鍵)、課程名稱、授課老師和老師研究室等四項(xiàng)屬性。第三個(gè)關(guān)聯(lián)表稱選課,包括組合鍵(學(xué)生學(xué)號(hào)、課程代號(hào))和成績(jī),成績(jī)完全相依於此鍵。,表6-10a 學(xué)生關(guān)聯(lián)表(3NF)
43、,學(xué)生,表6-10b 課程─老師關(guān)聯(lián)表(2NF),課程-老師,表6-10c 選課關(guān)聯(lián)表(3NF),…,…,選課,…,正規(guī)化(續(xù)8),第三正規(guī)型式學(xué)生和選課兩項(xiàng)關(guān)聯(lián)表(參考表6-10a與表6-10c)已經(jīng)符合第三正規(guī)化型式,但課程-老師關(guān)聯(lián)表(表6-10b)仍為第二正規(guī)化型式,因?yàn)槔蠋熝芯渴遥ǚ擎I屬性)也功能相依於授課老師(非鍵屬性)(參考圖6-16)。,圖6-16 課程─老師關(guān)聯(lián)表之遞移相依性,正規(guī)化(續(xù)9),課程-老師關(guān)聯(lián)表(表6-
44、10b)須去除其中之遞移相依,才能符合第三正規(guī)化型式。因此,可將課程-老師關(guān)聯(lián)表分成課程和老師兩個(gè)關(guān)聯(lián)表(如表6-11a、表6-11b),其中課程關(guān)聯(lián)表包含課程代號(hào)(鍵)、課程名稱和授課老師等屬性,而老師關(guān)聯(lián)表則包含授課老師(鍵) 和老師研究室兩項(xiàng)屬性。,表6-11a 課程關(guān)聯(lián)表(3NF),課程,表6-11b 老師關(guān)聯(lián)表(3NF),老師,正規(guī)化(續(xù)10),成績(jī)單資料經(jīng)過一連串正規(guī)化的步驟,已轉(zhuǎn)換成學(xué)生、選課、課程與老師等四個(gè)符合第三正
45、規(guī)化型式的關(guān)聯(lián)表,此結(jié)果及其簡(jiǎn)化之表達(dá)方式摘述如表6-12a至表6-12d。這些符合第三正規(guī)化型式之關(guān)聯(lián)表不再有前述之異常現(xiàn)象。,軟硬體環(huán)境設(shè)計(jì)與開發(fā)工具選擇,RADTs 評(píng)估準(zhǔn)則被歸納成:開發(fā)環(huán)境資料庫(kù)連結(jié)能力資料查詢與表達(dá)能力設(shè)定管理與應(yīng)用程式擴(kuò)充性價(jià)格速度/效率物件導(dǎo)向技術(shù)供應(yīng)商能力與支援等,以下列出每一大類,並在該類下逐一列出可能之考慮因素:開發(fā)環(huán)境,考慮支援 Windows作業(yè)系統(tǒng)、可自製Windows
46、元件並放入元件庫(kù)中、可包裝 Visual Basic 的自訂控制元件(VBX)、有OLE 自訂控制元件(OCX)之能力、分散式 OLE、支援 OLE, DDE, DLL, VBX, OCX 等項(xiàng)目與支援中文等。資料庫(kù)連結(jié)能力,可能考慮支援 ODBC與支援高效率內(nèi)建資料庫(kù)連結(jié)。,軟硬體環(huán)境設(shè)計(jì)與開發(fā)工具選擇(續(xù)),軟硬體環(huán)境設(shè)計(jì)與開發(fā)工具選擇(續(xù)1),資料查詢與表達(dá)能力,可能考慮資料查詢能力、報(bào)表產(chǎn)生能力、圖形產(chǎn)生能力、應(yīng)用程式設(shè)計(jì)儲(chǔ)存
47、庫(kù)等。設(shè)定管理與應(yīng)用程式,可能考慮提供物件程式庫(kù)/程式碼管理、階層化的應(yīng)用程式瀏覽器、可隨時(shí)重建應(yīng)用程式的設(shè)計(jì)與產(chǎn)生安裝磁片等。擴(kuò)充性價(jià)格速度/效率物件導(dǎo)向技術(shù)供應(yīng)商能力與支援等,系統(tǒng)分析與設(shè)計(jì)樣板,完成系統(tǒng)分析與設(shè)計(jì)之各項(xiàng)工作後,系統(tǒng)分析與設(shè)計(jì)之文件至少需包括該階段所屬重要工作結(jié)果之摘述,各項(xiàng)目分別介紹如下,而樣板如圖6-17。環(huán)境圖表示系統(tǒng)與外部實(shí)體之互動(dòng),此圖並非必要,若有流程圖,則環(huán)境圖可有可無。,圖6-17 系
48、統(tǒng)分析與設(shè)計(jì)文件樣板,系統(tǒng)分析與設(shè)計(jì)階段之文件樣板一、環(huán)境模式 環(huán)境圖二、流程塑模 資料流程圖(第 0 階至第 n 階)三、資料塑模 實(shí)體關(guān)係圖 實(shí)體關(guān)係圖轉(zhuǎn)關(guān)聯(lián)表 正規(guī)化 關(guān)聯(lián)表資料字典四、模組設(shè)計(jì) 結(jié)構(gòu)圖或 HIPO 圖 PDL 模組描述五、使用者介面塑模 介面
49、結(jié)構(gòu)圖 介面藍(lán)圖與元件規(guī)格 循序圖、狀態(tài)圖與轉(zhuǎn)換表六、軟硬體環(huán)境設(shè)計(jì)及開發(fā)工具選擇 硬體與網(wǎng)路架構(gòu) 作業(yè)系統(tǒng) 應(yīng)用系統(tǒng)架構(gòu) 開發(fā)工具,系統(tǒng)分析與設(shè)計(jì)樣板(續(xù)),流程塑模以資料流程圖表達(dá)系統(tǒng)範(fàn)圍內(nèi),所有外部實(shí)體與系統(tǒng)之互動(dòng),系統(tǒng)內(nèi)部之處理程序及所需資料之輸出與輸入等。資料流程圖需從最高層(第零階)分解至最底層,並表達(dá)處理描述。
50、資料塑模以實(shí)體關(guān)係圖表示資料與資料間之關(guān)係,進(jìn)一步將實(shí)體關(guān)係圖轉(zhuǎn)成關(guān)聯(lián)表,並進(jìn)行正規(guī)化精練以設(shè)計(jì)關(guān)聯(lián)式資料庫(kù)。,系統(tǒng)分析與設(shè)計(jì)樣板(續(xù)1),模組設(shè)計(jì)將資料流程圖底層之處理進(jìn)一步的加入例外狀況之處理、錯(cuò)誤訊息與輔助訊息之處理等,並以程式設(shè)計(jì)語言描述該處理之程式邏輯。必要時(shí),以結(jié)構(gòu)圖表達(dá)新系統(tǒng)之所有模組及模組間之關(guān)係。使用者介面塑模以介面結(jié)構(gòu)圖、介面藍(lán)圖與介面元件規(guī)格、介面狀態(tài)圖與轉(zhuǎn)換表等表達(dá)介面之展示、摘述與控制,並進(jìn)一步表達(dá)進(jìn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件需求獲取與結(jié)構(gòu)化分析方法
- 視頻結(jié)構(gòu)化分析與應(yīng)用研究.pdf
- 視頻內(nèi)容的結(jié)構(gòu)化分析.pdf
- 第4章-結(jié)構(gòu)化分析模型
- 圖書館系統(tǒng)結(jié)構(gòu)化分析
- 監(jiān)控視頻結(jié)構(gòu)化分析的研究與系統(tǒng)實(shí)現(xiàn).pdf
- 對(duì)稱密碼和哈希函數(shù)的結(jié)構(gòu)化分析.pdf
- 視頻內(nèi)容結(jié)構(gòu)化分析的研究和應(yīng)用.pdf
- 土地利用的結(jié)構(gòu)化分析與城市防災(zāi)規(guī)劃.pdf
- 淺析結(jié)構(gòu)化分析方法在建筑工程中的運(yùn)用
- 軟件工程導(dǎo)論第五課結(jié)構(gòu)化分析
- 結(jié)構(gòu)化面試總結(jié)資料
- 在線社會(huì)網(wǎng)絡(luò)的結(jié)構(gòu)化分析方法及應(yīng)用研究.pdf
- 外包與企業(yè)競(jìng)爭(zhēng)優(yōu)勢(shì):程序化、層次化和結(jié)構(gòu)化分析.pdf
- 網(wǎng)上招聘系統(tǒng)需求規(guī)格說明書(教材案例-傳統(tǒng)結(jié)構(gòu)化分析)
- 基于結(jié)構(gòu)化分類的虹膜識(shí)別算法的研究與實(shí)現(xiàn).pdf
- 結(jié)構(gòu)化招聘與面試系統(tǒng)設(shè)計(jì)
- 塑模設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 住院護(hù)理記錄結(jié)構(gòu)化分析及其與國(guó)際護(hù)理實(shí)踐分類的比照研究.pdf
- 中型注塑機(jī)塑模裝置結(jié)構(gòu)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論