2015-10-13 28 views

回答

3

在支持繼承你正在尋找可能的答案與一些假設辦在每種情況下鍵擴展ER模型:

  • 如果實體A是一個子類,則鍵(或一A的鍵)由完全相同的屬性作爲另一實體的密鑰的B.

  • 如果實體A是一個弱實體然後consis的關鍵的一些子集(或一個鍵)在另一個實體B.

像許多ER建模的相同的屬性關鍵的TS,這些東西都是符號的約定並不總是很準確定義或統一使用。術語子類的使用甚至可能是有問題的 - ER模型的許多用戶將使用術語子類型。

您用relational-database標記了您的問題,但這些絕對不是關係模型概念,它們是ER建模概念。

+2

我很高興您標記了ER建模和關係建模之間的區別。普遍的看法似乎是他們是同一件事。如果相反的觀點消失,我認爲有價值的東西會丟失。 –

0

對此的回答在所有可用文獻中均不統一。這是我學習它的方式。

弱實體需要與另一個實體的關係才能擁有身份。讓我們在訂單中接受訂單和訂單項。只使用自然鍵,訂單項的標識是訂單號和行號,例如訂單54321第3行。由於沒有訂單,因此您不能擁有不屬於訂單一部分的訂單項。

當然,您可以隨時使用DBMS的自動編號功能爲插入的每一行分配明顯的標識。但是這並不能證明實體在現實世界中具有身份。

子類不是一個獨立的實體,而是其他實體中的一個子集。考慮寵物,狗和貓。可能有屬於狗而不屬於貓,反之亦然。 (除了狗和貓之外,還有很多寵物的小類,但我只是保持簡單)。