E-R圖的用法
一.實體聯絡方法(Entity—Relationship Approach),也叫做E-R模型,描述現實世界的概念模型。
實體 聯絡 屬性 三要素通過一條無向邊連線,是一個無向圖
注意:1.聯絡不能脫離實體,必須有實體連線且可以是實體的自身聯絡
2.屬性既可以連線實體,也可以連線聯絡。但一個屬性只能有唯一的連線物件。
兩個實體之間的聯絡(1)一對一(2)一對多(3)多對多
多個實體之間的聯絡(1)多個實體之間一對多(2)多個實體之間多對多
弱實體集:一個實體A對於另一個實體B(A的父實體)具有很強的一來聯絡,且實體A主碼的一部分或全部從其父實體獲得。即一個實體的主碼從另一個實體的部分或全部屬性構成,即一個依賴於另一個實體而存在,這樣的實體集(A)叫做弱實體集,另外的那個實體集(B)叫做強實體集。
1)弱實體集A到弱實體集B必然多對一的聯絡
2)A應為B的主碼提供自己的主碼
在E-R圖中,用雙邊矩形來代表弱實體集,用雙邊菱形來代表弱實體集之間的聯絡。
E-R圖的 設計原則
1)儘量減少實體集數量,能作為屬性時不要 作為實體集
2)“屬性”不能再具有需要描述的性質。必須時不可分割的資料項。不能時其他屬性的聚集
3)“屬性”不能與其他實體具有聯絡
4)綜合區域性E-R圖,產生出總體E-R圖。在這個過程中,同類實體只能出現一次,並去掉不必要的聯絡,以便消除冗餘。一般的,能夠根據總體E-R圖匯出各個區域性的E-R圖。
擴充套件E-R圖設計的描述中,三個實體之間的聯絡與三個實體之間的兩兩聯絡是等價的
二.擴充套件E-R圖
1)特化Specialization
有時一個實體集會保護若干子集,這些子集各自具有不同的屬性。
比如person可以包含employee和student子集,這些子集在person本身屬性的問題上,附加了特殊的屬性,employee會有salary屬性,student會有score屬性。特化就是在實體集內部分組的過程。
在E-R模型中特化用從特化實體指向被特化屍體的空心箭頭線表示,叫做ISA聯絡,即“is a”,比如從employee指向person,也即是“employee is a person”。
有些實體集可以有不同的特化方式,employee可以特化為instructor.secretary,也可以特化為temporary_employee,permanent_employee,這樣一個employee可能是一個instructor的同時也是一個permanent_employee,這樣一個實體可以屬於多個實體集的特化稱為重疊特化(overlapping specialization),只能屬於一個實體集的特化則稱為不相交特化。重疊特化用兩個獨立的空心箭頭,不相交特化使用一個箭頭。
2)概化(generalization)
(1)特化就是在在自頂而下(top-down)的設計過程中,顯式地將初始實體分為一系列不同級別子實體的過程。設計過程也可以是自底向上的(bottom-up),將一系列低級別的實體合成為具有基本屬性的頂層實體,這便是概化,高層實體集與一個或多個底層實體集之間的包含關係。高層與低層實體集也可以是分別稱為超類(superclass)和子類(subclass)。
(2)屬性繼承(Attribute Inheritance)
由特化和概化產生的高層和低層實體的一個重要特性是屬性繼承,高層實體集的屬性被低層實體集繼承,所以高層實體集的屬性適用於低層實體集,但反之則不成立。
3)概化的約束
a)條件定義的
在條件定義的低層實體集中,根據實體是否滿足某個特定的條件來確定成員資格。比如通過student.student_type=graduate/undergraduated
來區分子實體是本科生還是研究生。
b)使用者定義的
使用者定義的低層實體集由資料庫使用者自行決定實體的劃分。比如將教師分為幾個教學組,employee的劃分方式由使用者決定。
c)完整性約束(completeness constraint)
全部概化\特化:每個高層實體必須屬於一個低層實體集;
部分概化\特化:不是所有高層實體都有屬於的低層實體集;
這在資料插入.刪除上會帶來區別。