[請問] 資料庫應用 ER model問題

作者: ko74652 (Reese lin)   2014-08-01 21:42:09
我想問一下 資料庫應用 裡面 ER Model 弱個體與個題的差別
--
假使 有一個體 如 學生 學生之間的差別會用鍵值屬性來區別 (例如學號
然後 弱個體看定義是 : 弱個體就是本身沒有任何鍵值屬性的個體
如果今天有個學生(個體) 有(屬性) N個 親屬(弱個體)
那親屬之間的區別 又以 姓名來區分 看定義這個叫部分鍵
那我想問的是 上面定義的部分 不是就說弱個體不會有任何鍵值屬性嗎
那部分鍵的功用不是就跟鍵值屬性一樣是用來區分單位個體裡面的區別嗎
那這樣為什麼又要有弱個體的存在??
我這樣想法是錯的嗎 謝謝
作者: Schottky (順風相送)   2014-08-01 21:44:00
會有同名同姓的啊
作者: ko74652 (Reese lin)   2014-08-01 21:46:00
那這樣為什麼要有弱個體的存在 就都用個體就好了啊@@?
作者: Schottky (順風相送)   2014-08-01 21:47:00
不過 weak entity 的定義是依附在另一個 entity 之下以你的例子,就是使用學生的 primary key 加親屬名字區別學生的 primary key 是親屬的 foreign key 這樣你只要賦與每個親屬一個自己的 primary key親屬就從弱個體變成個體了沒錯不過有時候這是沒必要的... 親屬至少還是個獨一無二的人如果有個 table 是紀錄哪兩個學生在戀愛,這不用 key 吧!
作者: ko74652 (Reese lin)   2014-08-01 22:15:00
我大概了解了 通常親屬只會隸屬於一位學生而不會隸屬於其他學生 如果都用個體 那親屬就會重複隸屬這樣就表格就會失去這個體擁有的唯一性質 是這樣嗎謝謝你回覆哦
作者: Schottky (順風相送)   2014-08-01 22:18:00
其實我覺得親屬的例子不好,weak entity 最常用的還是我舉的 associative entity, 也就是拿來表示多對多的對應等等,戀愛關係多對多好像哪邊怪怪的...
作者: ko74652 (Reese lin)   2014-08-01 22:30:00
這樣意思是 如果我有一個女朋友叫A 小明也有個女朋友叫A如果使用weak entity就沒問題 用個體就變成多對多是嗎XD
作者: Schottky (順風相送)   2014-08-01 22:32:00
不是,是學生 A 和學生 B 戀愛,那有一個 table 的內容是兩個 foreign key 欄位分別記 A 和 B 的 key這個 table 的內容並不是人,而是一段關係,而 A-B 的聯合 key 可以定義為這段關係的 primary key所以 table 中也會有 A-C A-D B-D B-E 等等多對多關係Wikipedia 的舉例是學生-課程的修課關係,好像正常多了除了學生和課程兩個表外還有個表記錄哪個兔崽子修哪門課
作者: ko74652 (Reese lin)   2014-08-01 22:48:00
所以你舉的例子來說 就是人與人之間的關係 用弱個體才會表示正確的對應關係 像是A-C B-C的關係 如果只用個體那就無法了解到這多對多的關係 對吧!?
作者: Schottky (順風相送)   2014-08-01 23:19:00
沒錯所以一般來說,弱個體是應用在根本就不是個體的東西上
作者: ko74652 (Reese lin)   2014-08-01 23:29:00
感謝

Links booklink

Contact Us: admin [ a t ] ucptt.com