在這種情況下,關係圖會是什麼樣子?
情況
上週我不得不做一個作業,我不同意我老師的 ERD。她使用n 元關係,而我使用兩個二元關係。我想知道一個真正的dba(你)對此的看法。
最初的任務是設計一個 ERD,但由於我們在學校使用的 ERD 表示法非常罕見,我要問一下關係圖應該是什麼樣子。我想一旦我知道關係圖應該是什麼樣子,我就可以自己弄清楚。
任務
有一家住房協會公司想要一個數據庫。
當客戶註冊時,客戶必須填寫他的詳細資訊(姓名、住址、電話號碼),此時他還必須填寫第二張表格。在那裡,他必須指定他想住在哪個城市,以及他想住在什麼類型的房子裡(房子、豪宅、別墅等)。要求客戶至少填寫一個城市和一所房子。
第二個表格還有一些客戶必須填寫的其他欄位,例如最高價格和備註(例如,房子必須有游泳池)。
我的答案
CUSTOMER: customer# (PK), firstname, lastname, dob, phonenumber FORM: customer# (PK), dateofregister, remark, maxprice contains1: customer# (PK), city (PK) contains2: customer# (PK), housetype (PK)
- 客戶 1..1 表格
- 表格 1..n 包含 1
- 表格 1..n 包含 2
我的老師回答
她將兩者合併
CUSTOMER
到FORM
同一個表中,因為它們具有相同的鍵customer#
,並創建了表CONTAINS: customer# (PK), city (PK), housetype (PK)
。我不同意她的觀點,因為我可以
housetype
用相同的customer#
. 同樣的事情city
。我也不同意她將所有FORM
屬性都放入CUSTOMER
表格的事實。它看起來很草率,我相信你會把它分成第三範式,你會再次得到我的結果……
關於概念數據建模和邏輯數據建模之間的關係,存在不止一種思想流派。這些思想流派通常會導致類似的做法,但術語上的差異可能會令人困惑,尤其是在正式的學習環境中。
據我所知,概念數據建模遵循 Peter Chen 首次推廣的 ER 建模。如果您查看有關Chen的 Wikipedia 文章,您會看到有關 ER 建模和概念建模的段落。如果你的老師的框架同意這個,那麼也許她的 ER 圖描繪的是一個 ER 模型,而不是一個關係模型。如果這是真的,那麼規範化問題應該推遲到實體和關係達成一致之後。
另一方面,如果你的老師的框架與 Pieter 的優秀反應相同,那麼 Pieter 的反應應該指導你。
無論哪種方式,您都需要清楚分析主題和設計反映該分析的有用表格之間的差異。