范式:
一個(gè)實(shí)體的某個(gè)屬性保存多個(gè)值俘枫,將這樣的多值屬性分離為一個(gè)實(shí)體。
ER建模遇到的問題:
(1)如果存在一個(gè)實(shí)體與其它實(shí)體之間存在兩個(gè)或更多的一對(duì)多聯(lián)系蛛碌,很可能存在扇形陷阱問題颅筋。扇形陷阱問題可以通過改變實(shí)體間的聯(lián)系次序玩讳,從而重新構(gòu)建模型解決。
(2)如果在實(shí)體聯(lián)系的通路上存在一個(gè)或者多個(gè)參與性約束最小值為零的情況刮萌,很可能存在深坑陷阱問題驮配,深坑陷阱問題可以通過重新添加被遺漏的聯(lián)系解決。
1)扇形陷阱
問題:
扇形陷阱是指在ER模型中着茸,某些實(shí)體之間的通路(pathway)是不明確的情況壮锻。
如圖1,一個(gè)學(xué)院College有多個(gè)學(xué)科方向或系Department涮阔,學(xué)院可以聘有多名教師Teacher猜绣。
當(dāng)我們想知道某位教師到底屬于哪個(gè)學(xué)科方向或系時(shí),問題就產(chǎn)生了敬特,該模型中很可能無法確定某些教師屬于哪個(gè)學(xué)科方向或系掰邢,產(chǎn)生了扇形陷阱問題。
解決方式:
圖1的ER模型中實(shí)體之間的聯(lián)系次序是不合適的伟阔。
教師應(yīng)該是與學(xué)科方向發(fā)生直接聯(lián)系辣之,學(xué)科方向和學(xué)院之間也是直接聯(lián)系,教師與學(xué)院之間的聯(lián)系應(yīng)該屬于間接聯(lián)系皱炉,它可以通過教師與學(xué)科方向的聯(lián)系達(dá)到與學(xué)院聯(lián)系的目的怀估。
如圖3所示該圖清楚地標(biāo)識(shí)了哪些教師屬于哪個(gè)學(xué)科方向。
2)深坑陷阱
問題:
深坑陷阱是指在ER模型中娃承,某些實(shí)體型之間存在聯(lián)系奏夫,而這些實(shí)體型中的部分實(shí)體卻不存在相應(yīng)的通路。
如圖5所示的模型历筝,反映一個(gè)學(xué)院有多個(gè)學(xué)科方向或系酗昼,系聘有多名教師,允許某些教師暫時(shí)不屬于任何系梳猪。
圖5與圖3的唯一差別就是教師在與系的聯(lián)系中麻削,圖3反映的事實(shí)是教師必須并且只能屬于某一個(gè)系蒸痹,而圖5反映的情況是允許部分教師暫時(shí)不屬于任何系。
有部分教師可以不參與教師實(shí)體型與學(xué)科方向?qū)嶓w型間這一聯(lián)系呛哟,那么沒有參與這一聯(lián)系的那部分教師是否仍屬于學(xué)院呢叠荠?如果回答是肯定的,那么在該模型就存在問題了扫责。
圖6中榛鼎,當(dāng)我們?cè)噲D回答“T006教師屬于哪個(gè)學(xué)院”這個(gè)問題時(shí),無法得到確切答案鳖孤。
根據(jù)該模型者娱,教師與學(xué)院應(yīng)該存在某種聯(lián)系,但部分教師卻不能夠通過學(xué)科方向與學(xué)院聯(lián)系起來苏揣,這就是深坑陷阱問題黄鳍。
解決方式
深坑陷阱問題導(dǎo)致了部分教師無法通過學(xué)科方向與學(xué)院聯(lián)系起來,他們與學(xué)院之間的聯(lián)系被遺漏了平匈,因此解決深坑陷阱問題的方法就是重新標(biāo)識(shí)被遺漏的聯(lián)系框沟,如圖3.20所示。在圖3.20中增炭,通過增加教師與學(xué)院間的一個(gè)聯(lián)系忍燥,從而使得所有教師都能間接或直接與學(xué)院發(fā)生聯(lián)系,解決了深坑陷阱的問題弟跑,圖3.19所示的部分實(shí)體個(gè)體之間的聯(lián)系如圖3.21所示灾前,圖3.21中消除了圖3.19中無法確定T006教師屬于哪個(gè)學(xué)院的問題。