6.2數(shù)據(jù)庫(kù)設(shè)計(jì)
6.2.1數(shù)據(jù)庫(kù)設(shè)計(jì)的要求和步驟
1.數(shù)據(jù)庫(kù)設(shè)計(jì)的要求
數(shù)據(jù)庫(kù)設(shè)計(jì)的目標(biāo)是建立一個(gè)合適的數(shù)據(jù)模型。這個(gè)數(shù)據(jù)模型應(yīng)當(dāng)是:
?。?)滿足用戶要求:既能合理地組織用戶需要的所有數(shù)據(jù),又能支持用戶對(duì)數(shù)據(jù)的所有處理功能。
?。?)滿足某個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)的要求:能夠在數(shù)據(jù)庫(kù)管理系統(tǒng)中實(shí)現(xiàn)。
?。?)具有較高的范式:數(shù)據(jù)完整性好、效益高,便于理解和維護(hù),沒有數(shù)據(jù)沖突。
2.數(shù)據(jù)庫(kù)設(shè)計(jì)步驟
數(shù)據(jù)庫(kù)設(shè)計(jì)可以分為概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)和物理結(jié)構(gòu)設(shè)計(jì)三個(gè)階段。
?。?)概念結(jié)構(gòu)設(shè)計(jì)。這是數(shù)據(jù)庫(kù)設(shè)計(jì)的第一個(gè)階段,在管理信息系統(tǒng)的分析階段,已經(jīng)得到了系統(tǒng)的數(shù)據(jù)流程圖和數(shù)據(jù)字典,現(xiàn)在要結(jié)合數(shù)據(jù)規(guī)范化的理論,用一種數(shù)據(jù)模型將用戶的數(shù)據(jù)需求明確地表示出來(lái)。
概念數(shù)據(jù)模型是面向問題的模型,反映了用戶的現(xiàn)實(shí)工作環(huán)境,是與數(shù)據(jù)庫(kù)的具體實(shí)現(xiàn)技術(shù)無(wú)關(guān)的。建立系統(tǒng)概念數(shù)據(jù)模型的過(guò)程叫做概念結(jié)構(gòu)設(shè)計(jì)。
?。?)邏輯結(jié)構(gòu)設(shè)計(jì)。根據(jù)已經(jīng)建立的概念數(shù)據(jù)模型,以及所采用的某個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)軟件的數(shù)據(jù)模型特性,按照一定的轉(zhuǎn)換規(guī)則,把概念模型轉(zhuǎn)換為這個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)所能夠接受的邏輯數(shù)據(jù)模型。不同的數(shù)據(jù)庫(kù)管理系統(tǒng)提供了不同的邏輯數(shù)據(jù)模型,如層次模型、網(wǎng)狀模型、關(guān)系模型等。
?。?)物理結(jié)構(gòu)設(shè)計(jì)。為一個(gè)確定的邏輯數(shù)據(jù)模型選擇一個(gè)最適合應(yīng)用要求的物理結(jié)構(gòu)的過(guò)程,就叫做數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)設(shè)計(jì)。數(shù)據(jù)庫(kù)在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)和存取方法稱為數(shù)據(jù)庫(kù)的物理數(shù)據(jù)模型。
6.2.2概念結(jié)構(gòu)設(shè)計(jì)
描述概念數(shù)據(jù)模型的主要工具是E-R(實(shí)體一聯(lián)系)模型,或者叫做E-R圖。利用E-R圖實(shí)現(xiàn)概念結(jié)構(gòu)設(shè)計(jì)的方法就叫做E-R方法。
1.概念模型的表示方法
E-R圖主要是由實(shí)體、屬性和聯(lián)系三個(gè)要素構(gòu)成的。在E-R圖中,使用了下面四種基本的圖形符號(hào)。
2.確定系統(tǒng)實(shí)體、屬性及聯(lián)系
利用系統(tǒng)分析階段建立的數(shù)據(jù)字典,并對(duì)照數(shù)據(jù)流程圖對(duì)系統(tǒng)中的各個(gè)數(shù)據(jù)項(xiàng)進(jìn)行分類、組織,確定系統(tǒng)中的實(shí)體、實(shí)體的屬性、標(biāo)識(shí)實(shí)體的碼以及實(shí)體之間聯(lián)系的類型。
在數(shù)據(jù)字典中“數(shù)據(jù)項(xiàng)”是基本數(shù)據(jù)單位,一般可以作為實(shí)體的屬性。“數(shù)據(jù)結(jié)構(gòu)”、“數(shù)據(jù)存儲(chǔ)”和“數(shù)據(jù)流”條目都可以作為實(shí)體,因?yàn)樗鼈兛偸前巳舾傻臄?shù)據(jù)項(xiàng)。作為屬性必須是不可再分的數(shù)據(jù)項(xiàng),也就是說(shuō)在屬性中不能包含其他的屬性。
3.確定局部(分)E-R圖
根據(jù)上面的分析,可以畫出部分實(shí)體-聯(lián)系圖。
在這些實(shí)體中有下畫線的屬性可以作為實(shí)體的碼,這幾個(gè)實(shí)體之間存在著1:1、l:n和m:n幾種聯(lián)系。
4.集成完整(總)E-R圖
各個(gè)局部(分)E-R圖畫好以后,應(yīng)當(dāng)將它們合并起來(lái)集成為完整(總)E-R圖。在集成時(shí)應(yīng)當(dāng)注意如下幾點(diǎn):
?。?)消除不必要的冗余實(shí)體、屬性和聯(lián)系。
?。?)解決各分E-R圖之間的沖突。
?。?)根據(jù)情況修改或重構(gòu)E-R圖。
6.2.3邏輯結(jié)構(gòu)設(shè)計(jì)
邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù),就是把概念結(jié)構(gòu)設(shè)計(jì)階段建立的基本E-R圖,按選定的管理系統(tǒng)軟件支持的數(shù)據(jù)模型(層次、網(wǎng)狀、關(guān)系),轉(zhuǎn)換成相應(yīng)的邏輯模型。這種轉(zhuǎn)換要符合關(guān)系數(shù)據(jù)模型的原則。
E-R圖向關(guān)系模型的轉(zhuǎn)換是要解決如何將實(shí)體和實(shí)體間的聯(lián)系轉(zhuǎn)換為關(guān)系,并確定這些關(guān)系的屬性和碼。這種轉(zhuǎn)換一般按下面的原則進(jìn)行:
?。?)一個(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系,實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。
?。?)一個(gè)聯(lián)系也轉(zhuǎn)換為一個(gè)關(guān)系,聯(lián)系的屬性及聯(lián)系所連接的實(shí)體的碼都轉(zhuǎn)換為關(guān)系的屬性,但是關(guān)系的碼會(huì)根據(jù)聯(lián)系的類型變化,如果是:
1:1聯(lián)系,兩端實(shí)體的碼都成為關(guān)系的候選碼。
1:n聯(lián)系,n端實(shí)體的碼成為關(guān)系的碼。
m:n聯(lián)系,兩端實(shí)體碼的組合成為關(guān)系的碼。
?。?)具有相同碼的關(guān)系可以合并。
1.轉(zhuǎn)換關(guān)系
2.合并關(guān)系
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。