1. 程式人生 > 其它 >【資料庫上】第五講 E-R模型擴充套件知識

【資料庫上】第五講 E-R模型擴充套件知識

第五講 E-R模型擴充套件知識

一、E-R模型設計主意問題

1.1 用實體還是實體集
案例:學院物件的表示
應將各個學院看做實體集,還是實體?
方法一:將各個學院看作一個實體集
如果各學院具有不同屬性特徵,則設計合理
否則面臨問題:每增加一個學院增加一個實體,需修改應用程式碼

方法二:將所有學院看作一個實體集
一般地,一所學校的所有的學院具有相同屬性,應看作屬於一個實體集的不同實體
1.2 確認屬性的位置
案例:學生成績的表示
學生的課程“成績”應放在圖中何處?
設計方法一:放在學生實體集中
無法區分是哪門課程
設計方法二:放在課程實體集中
難以區分是哪個學生的成績
設計方法三:放在聯絡上
合理,因學生和課程之間是多對多的關係
1.3 用屬性還是實體集
案例:工資和崗位的表示
職工的每月有工資,且可能不同
職工可能同時在不同部門擔任不同的職務

案例:電話資訊的表示
一人一個電話時:電話為人的屬性
一人多個電話時,還有其他特俗屬性時,電話應作為一個實體

多值屬性和複合屬性

零件的銷售價格是一個多值屬性(經銷、代銷、批發、零售)
(1)將原來的多值屬性用幾個單值屬性來代替
(2)將原來的多值屬性用一個新的實體集來代替

這個新實體和原來的實體之間是1:N聯絡;新實體依賴於原實體而存在,稱為弱實體,在E-R模型中,弱實體用雙線矩陣表示;與弱實體相關的聯絡,用雙線菱形表示。
1.4 用實體集還是聯絡集
案例:選課資訊的表示
描述學生所選課程,應該採用實體集還是聯絡集?
設計原則:通常地,採用聯絡來表示發生在兩個實體集之間的一個動作,如選課!
如果僅描述學生選課,用選課聯絡
如果強調學生為上何課程,要求到教務處去辦報名註冊,則應用一個實體集及兩個聯絡。
案例:家屬(愛人)資訊的表示
分情況
1.5 用二元聯絡還是多元聯絡
案例:父母關係的表示
案例:教師指導學生做專案的表示

二 擴充套件E-R模型

2.1 特化與概化(特殊化與一般化)

如何理解特化與概化?

一個實體集(父)可能含有一個子實體集!

子實體集具有(繼承)父實體集的屬性,還可能具有其它一些獨特屬性,特化與概化專門用於描述這種現象。

特化:自頂向下的設計過程

概化:自底向上的設計過程

由下向上的箭頭連線為一種“is a”聯絡。

案例:學校人員資訊
2.2 聚集

聚集:是一種抽象,它將聯絡集(及其相關實體集)看做是一個更高層的抽象實體集。