1. 程式人生 > >E-R圖的用法

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)

全部概化\特化:每個高層實體必須屬於一個低層實體集;

部分概化\特化:不是所有高層實體都有屬於的低層實體集;

這在資料插入.刪除上會帶來區別。