2016-06-10 59 views
0

專業化在EER建模是可能的和正確的有一個不相交的專業化,其中沒有任何子類具有任何特定的屬性(本地的),但完全按照定義的屬性進行分組。例如,我們可以有一個屬性爲「角色」的實體。基於角色的值(管理員或作者或編輯者),我們將擁有子類實體管理員,作者和編輯。他們沒有任何歸因於他們只是特定於他們。 另請注意,專業化是不相交的,超類實體USER的參與總數爲
如果這是可能的,我可以通過超實體相關的用戶建立一個單一的關係,將其轉換爲關係模型是否有可能在純粹的屬性/條件定義EER模型

回答

0

是的,這是可能的,有效的這樣做,如果你想記錄被限制在亞型關係。如果您沒有特定於子類型的屬性或關係,則在ER模型中區分子類型沒有意義。用戶的簡單角色屬性足以滿足查詢的需要。

如果您在ER模型中定義了子類型,則會在關係模型中轉換爲每個子類型的關係。如果你正在尋找像依賴類型的東西,你不會在與一階邏輯相對應的關係模型中找到它。 ER更加有限。

+0

感謝您的回覆。但USER表中不同用戶的用戶執行不同的任務。如何在ER模型中顯示此信息而不使用專業化(例如,具有ROLE = AUTHOR的人只會添加新聞但不能發佈它們。必須由一個ROLE = EDITOR的人來完成)。另外,在「ELMASRI和NAVATHE的數據庫系統基礎」一書中寫道,如果專業化是不相交的,並且局部屬性很少或沒有,那麼我們可以創建一個單一的關係對於超類,並添加一個類型屬性來標識其中的子類元組。每個子類型不需要一個表。 – stackoverflownewbie

+0

我真的很困惑,所以我只是想了解該做什麼和不該做什麼。你的幫助將會非常感激。那本書中提到的方法不適用於我的案例。 – stackoverflownewbie

+0

這聽起來像你可能混合了運行時行爲和數據建模。你想在數據庫中建模/記錄任務或權限嗎?如果您只需要存儲每個用戶的角色,那只是一個屬性,而不是實體關係模型中的子類型。請注意,ER中的子類型和OOP中的子類相互之間沒有任何關係。這聽起來像你的書正在混淆概念。 OOP用於系統建模/解決方案空間,而不是信息建模/問題空間。 – reaanb

相關問題