雖然基本的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),只能屬於一個實體集的特化則稱爲不相交特化(disjoint specialization)。重疊特化用兩個獨立的空心箭頭,不相交特化使用一個箭頭。
2、概化(Generalization)
a)特化是在自頂向下(top-down)的設計過程當中,顯式地將初始實體分爲一系列不一樣級別子實體的過程。設計過程也能夠是自底向上(bottom-up)的,將一系列低級別的實體合成爲具備基本屬性的頂層實體,這即是概化,高層實體集與一個或多個低層實體集之間爲包含關係。高層與低層實體集也能夠分別稱爲超類(superclass)和子類(subclass)。
b)屬性繼承(Attribute Inheritance)
由特化和概化產生的高層和低層實體的一個重要特性是屬性集成,高層實體集的屬性被低層實體集繼承,因此高層實體集的屬性適用於低層實體集,但反之則不成立。
3、概化的約束
a)條件定義的
在條件定義的低層實體集中,根據實體是否知足某個特定的條件來肯定成員資格。好比經過student.student_type=granduate/undergranted來區分子實體是本科生仍是研究生。
b)用戶定義的
用戶定義的低層實體集由數據庫用戶自行決定實體的劃分。好比將教師分爲幾個教學組,employee的劃分方式由用戶決定。
c)完整性約束(completeness constraint)
所有概化\特化:每一個高層實體必須屬於一個低層實體集;
部分概化\特化:不是全部高層實體都有屬於的低層實體集。
這在數據插入、刪除上會帶來區別。
學習資料:Database System Concepts, by Abraham Silberschatz, Henry F.Korth, S.Sudarshan
數據庫