完整性限制(Completeness Constraint)
在擴充實體關係模型(Extended Entity-Relationship Model, EER Model)中,完整性限制用於宣告父型態(Supertype)的一個實例是否必須屬於至少一個子型態(Subtype)。這一限制有兩種可能:完全特殊化(Total Specialization)和部分特殊化(Partial Specialization)。
1. 完全特殊化(Total Specialization)
定義:
完全特殊化(Total Specialization)是指父型態的一個實例必須屬於至少一個子型態。換句話說,父型態中的每個實例都必須在某個子型態中出現。
表示方法:
在 EER 圖中,完全特殊化通常用一條雙線連接父型態和子型態來表示。
示例:
假設有一個父型態 "Employee" 和兩個子型態 "FullTimeEmployee" 和 "PartTimeEmployee"。如果是完全特殊化,那麼每個 "Employee" 都必須是 "FullTimeEmployee" 或 "PartTimeEmployee" 的一員,或者是兩者之一。
plaintext
複製程式碼
Employee
/ \
/ \
FullTime PartTime
Employee Employee
實例:所有 "Employee" 必須屬於 "FullTimeEmployee" 或 "PartTimeEmployee"。
2. 部分特殊化(Partial Specialization)
定義:
部分特殊化(Partial Specialization)是指父型態的一個實例可以屬於某個子型態,但也可以不屬於任何子型態。換句話說,父型態中的某些實例可能不在任何子型態中出現。
表示方法:
在 EER 圖中,部分特殊化通常用一條單線連接父型態和子型態來表示。
示例:
假設有一個父型態 "Vehicle" 和兩個子型態 "Car" 和 "Truck"。如果是部分特殊化,那麼有些 "Vehicle" 可以是 "Car" 或 "Truck",但也可以是其他類型的 "Vehicle"(如 "Motorcycle" 或 "Bicycle"),而不屬於任何一個子型態。
plaintext
複製程式碼
Vehicle
/ \
/ \
Car Truck
實例:某些 "Vehicle" 可以是 "Car" 或 "Truck",但也可以不屬於這兩者中的任何一個(例如 "Motorcycle")。