詳細(xì)講解如何將數(shù)據(jù)模型轉(zhuǎn)換成數(shù)據(jù)庫(kù)設(shè)計(jì)
將數(shù)據(jù)模型轉(zhuǎn)換成數(shù)據(jù)庫(kù)設(shè)計(jì)的相關(guān)問題:
1.創(chuàng)建表的聯(lián)系
1:1強(qiáng)實(shí)體聯(lián)系:
把一個(gè)表的主鍵作為另一張表的外鍵。為了強(qiáng)調(diào)***粒度是1,應(yīng)該把外鍵設(shè)置成候選鍵。
1:N強(qiáng)實(shí)體聯(lián)系:
把1的那一段的表(父表)的鍵設(shè)置成對(duì)應(yīng)N的那一端的表(子表)的外鍵。
N:M強(qiáng)實(shí)體聯(lián)系:
建立只包含外鍵的第三張交關(guān)系表,這個(gè)表中每一列都是主鍵的一部分,每一列都對(duì)應(yīng)于其他表外鍵,因此他總是ID依賴于它的兩個(gè)父表。
注意,這張交關(guān)系表中,必須要有父表中的行。
2.使用ID依賴實(shí)體聯(lián)系的其他方法
關(guān)聯(lián)聯(lián)系:
這種聯(lián)系只針對(duì)聯(lián)系本身,而不是實(shí)體的屬性。只需建立一張關(guān)聯(lián)表,ID依賴于兩張父表,并包含父表的聯(lián)系屬性,如公司和貨物的:Price。
注意,關(guān)聯(lián)表和交關(guān)系表的最重要區(qū)別是關(guān)聯(lián)表含有用戶數(shù)據(jù),而交關(guān)系表則沒有。
多值屬性:
用ID依賴實(shí)體代表父表所含有的多值組合,如CompanyName的(Contact, PhoneNumber),PhoneNumber可含有多個(gè)值。CompanyName在新表中將既是主鍵又是外鍵。
原型/實(shí)例模式:
當(dāng)一個(gè)ID依賴實(shí)體的父實(shí)體使用強(qiáng)制關(guān)鍵字時(shí),ID依賴實(shí)體也使用自己的強(qiáng)制關(guān)鍵字。得到的結(jié)果是弱實(shí)體,擔(dān)不是ID依賴實(shí)體。
3.混合實(shí)體聯(lián)系
這種設(shè)計(jì)既包含強(qiáng)實(shí)體設(shè)計(jì)也包含ID依賴實(shí)體的設(shè)計(jì)。
對(duì)HAS-A聯(lián)系進(jìn)行轉(zhuǎn)換時(shí),總的原則是“把父表的鍵放到子表中”,通常把1對(duì)應(yīng)的父表放到子表中,N:M聯(lián)系先轉(zhuǎn)換成兩個(gè)1:N聯(lián)系。而對(duì)于標(biāo)識(shí)聯(lián)系,父表的鍵已經(jīng)在子表中了,所以什么都不用做。對(duì)于混合聯(lián)系中的非標(biāo)識(shí)聯(lián)系,父表的鍵放在子表中。
4.子類型 IS-A聯(lián)系
子表和父表的主鍵相同,且子表的主鍵也是外鍵。
5.遞歸聯(lián)系
1:1
在表中創(chuàng)建一個(gè)外鍵并設(shè)為候選鍵,指向父表。此表中父表和子表均是其自身。
1:N
通過把父表的鍵放到子表中來標(biāo)識(shí)1:N遞歸聯(lián)系。
N:M
創(chuàng)建一個(gè)交關(guān)系表,把它分解成兩個(gè)1:N聯(lián)系。
本文就簡(jiǎn)單為大家總結(jié)這五點(diǎn),思路也比較清晰明了,易于大家去學(xué)習(xí)掌握,希望能夠?qū)Υ蠹矣兴鶐椭?/p>
【編輯推薦】