步驟8:刪除與關(guān)系模型不相容的特性
在已創(chuàng)建的局部數(shù)據(jù)模型中,可能存在一些與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫系統(tǒng)不兼容或關(guān)系型數(shù)據(jù)庫系統(tǒng)不便于處理的結(jié)構(gòu),如:多對多關(guān)系、多對多遞歸關(guān)系、復(fù)雜關(guān)系等。在這一步,要將這些數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換成能被或便于關(guān)系型數(shù)據(jù)庫系統(tǒng)處理的形式。
(1)刪除多對多關(guān)系對于多對多關(guān)系,要進(jìn)行分解,并標(biāo)識一個中間實(shí)體,即用兩個一對多關(guān)系來代替這個多對多關(guān)系,并標(biāo)識出它們之間的新實(shí)體,與多對多關(guān)系相關(guān)的屬性應(yīng)該成為這個中間實(shí)體的屬性。
例如有兩個實(shí)體,用戶組和用戶,每個用戶組可以擁有多個用戶,每個用戶可以屬于多個用戶組,它們之間是多對多關(guān)系,可以通過插入一個實(shí)體“用戶組的用戶”將這個多對多關(guān)系分解為兩個一對多關(guān)系。
(2)刪除多對多遞歸關(guān)系 對于存在的多對多遞歸關(guān)系,要進(jìn)行分解,并標(biāo)識一個新實(shí)體,方法與刪除多對多關(guān)系類似。
首先,將多對多遞歸關(guān)系的一個實(shí)體描述成兩個實(shí)體,使遞歸關(guān)系和普通多對多關(guān)系一樣,然后引入一個中間實(shí)體,分解多對多關(guān)系,然后重新組合被分開的實(shí)體,注意不要丟失任何關(guān)系。
(3)刪除復(fù)雜關(guān)系復(fù)雜關(guān)系是三個或更多實(shí)體之間的關(guān)系。如果邏輯模型中存在這種關(guān)系,應(yīng)該將這種關(guān)系分解成多個一對多關(guān)系,標(biāo)識一個中間實(shí)體。
對局部邏輯模型進(jìn)行以上的處理之后,最后還要檢查所有的一對一關(guān)系,看這些一對一關(guān)系的實(shí)體是否表示一個對象,如果是的話,可以將兩個實(shí)體合并成一個實(shí)體。
通過上面的步驟,可以刪除數(shù)據(jù)模型中關(guān)系數(shù)據(jù)庫難以實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu),簡化數(shù)據(jù)模型。