1. 程式人生 > >《數據庫系統概念》11-擴展的E-R特性

《數據庫系統概念》11-擴展的E-R特性

集中 cto base 屬於 初始 abr pos -h 必須

?雖然基本的E-R特性可以應對大部分數據庫建模,但為了使用方便,也提供擴展的E-R特性

一、特化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)。重疊特化用兩個獨立的空心箭頭,不相交特化使用一個箭頭。

二、概化(Generalization)


a)特化是在自頂向下(top-down)的設計過程中,顯式地將初始實體分為一系列不同級別子實體的過程。設計過程也可以是自底向上(bottom-up)的,將一系列低級別的實體合成為具有基本屬性的頂層實體,這便是概化,高層實體集與一個或多個低層實體集之間為包含關系。高層與低層實體集也可以分別稱為超類(superclass)和子類(subclass)。
b)屬性繼承(Attribute Inheritance)
由特化和概化產生的高層和低層實體的一個重要特性是屬性集成,高層實體集的屬性被低層實體集繼承,所以高層實體集的屬性適用於低層實體集,但反之則不成立。

三、概化的約束
a)條件定義的
在條件定義的低層實體集中,根據實體是否滿足某個特定的條件來確定成員資格。比如通過student.student_type=granduate/undergranted來區分子實體是本科生還是研究生。
b)用戶定義的
用戶定義的低層實體集由數據庫用戶自行決定實體的劃分。比如將教師分為幾個教學組,employee的劃分方式由用戶決定。
c)完整性約束(completeness constraint)
全部概化\特化:每個高層實體必須屬於一個低層實體集;
部分概化\特化:不是所有高層實體都有屬於的低層實體集。
這在數據插入、刪除上會帶來區別。


學習資料:Database System Concepts, by Abraham Silberschatz, Henry F.Korth, S.Sudarshan



《數據庫系統概念》11-擴展的E-R特性