3)檢查關(guān)系的名稱。檢查局部模型中的關(guān)系,看是否存在重復(fù)關(guān)系。一般只有重復(fù)的實(shí)體間才會(huì)存在重復(fù)關(guān)系。
4)合并來自局部模型的實(shí)體。合并的情形有:合并名稱相同、主鍵相同的實(shí)體;合并名稱相同、主鍵不同,但候選鍵相同的實(shí)體;合并名稱不同的實(shí)體。
通常,具有相同主鍵的實(shí)體代表相同的對(duì)象,應(yīng)該合并。合并后的實(shí)體包括初始的實(shí)體屬性,刪除重復(fù)的屬性。有些實(shí)體具有相同的名稱,相同的候選鍵,但主鍵不同,也應(yīng)該合并成一個(gè)實(shí)體,選擇一個(gè)主鍵。對(duì)于名稱不同的實(shí)體,主要根據(jù)實(shí)體的內(nèi)容來決定是否要進(jìn)行合并。
5)包含(不合并)每個(gè)局部模型的唯一的實(shí)體。前面已經(jīng)合并了相同的實(shí)體,剩余的實(shí)體應(yīng)該都是模型中唯一的實(shí)體,不用進(jìn)行任何改動(dòng)就可以直接加入全局模型。
6)合并局部模型的關(guān)系。檢查所有關(guān)系的名稱和目標(biāo),先合并名稱相同且目標(biāo)相同的關(guān)系,再合并名稱不同但目標(biāo)相同的關(guān)系。
7)包含(不合并)每個(gè)局部模型的唯一的關(guān)系。對(duì)于剩下的關(guān)系,不需進(jìn)行任何改動(dòng)就可以加入到全局模型中。
8)檢查是否有丟失的實(shí)體和關(guān)系。需要注意是否存在不同局部模型中的實(shí)體之間的關(guān)系以及它們之間的主、外鍵關(guān)系。
9)檢查外鍵。在構(gòu)造全局邏輯模型的過程中,可能合并了實(shí)體和關(guān)系,改變了主鍵,或者標(biāo)識(shí)了新的關(guān)系,需要在這一步檢查子實(shí)體中的外鍵是否正確。
10)檢查完整性約束。檢查全局邏輯模型的完整性約束是否與每個(gè)局部模型的完整性約束沖突,必要時(shí),可以通過與用戶討論來解決問題。
最后可得全局邏輯模型的ER圖。