前言
有關數據庫原理與統計的筆記,內容爲書本的原文概括。
關係模型的完整性規則是對關係的某種約束條件。關係的值隨着時間變化時應該滿足一些約束條件,這些約束條件實際上是現實世界的要求,任何關係在任何時刻都要滿足這些語義約束。
關係模型中有三類完整性約束:實體完整性、參照完整性和用戶定義的完整性。
其中實體完整性和參照完整性是關係模型必須滿足的完整性約束條件,被稱爲關係的兩個不變性
。應該由關係系統自動支持,用戶定義的完整性是應用領域需要遵循的約束條件,體現了具體領域中的語義約束。
一、實體完整性
關係數據庫中每個元組應該是可區分的,是唯一的。這樣的約束條件用實體完整性來保證。
規則2.1 實體完整性規則:若屬性A是基本關係R的主屬性,則A不能取空值,即不知道、不存在或無意義的值。
按照實體完整性規則的規定,如果主碼由若干屬性組成,則所有這些主屬性都不能取空值。
(1)實體完整性規則是針對基本關係而言的。一個基本表通常對應現實世界的一個實體集。
(2)現實世界中的實體是可區分的,即它們具有某種唯一性標識。
(3)關係模型中以主碼作爲唯一性標識。
(4)主碼中的屬性不能取空值,如果取了空值,就說明存在某個不可標識的實體(即存在不可區分的實體)
二、參照完整性
設F是基本關係R的一個或一組屬性,但不是關係R的碼,Ks是基本關係S的主碼。如果F與Ks相對應,則稱F是R的外碼,並稱基本關係R爲參照關係,基本關係S爲被參照關係或目標關係。
關係R和S不一定是不同的關係。
例: 有兩個關係如下,加粗的爲主碼
學生(學號,姓名,性別,專業號,年齡)
專業(專業號,專業名)
學生關係中的專業號屬性與專業關係的主碼專業號相對應,所以專業號屬性是學生關係的外碼。
專業關係是被參照關係,學生關係爲參照關係。注:被參照關係的主碼,是參照關係的外碼
規則2.2 參照完整性規則:
參照完整性規則就是定義外碼與主碼之間的引用規則。
若屬性F是基本關係R的外碼,它與基本關係S的主碼Ks相對應,則對於R中每個元組在F上的值必須:
- 或者取空值
- 或者等於S中某個元組的主碼值
三、用戶定義的完整性
任何關係數據庫系統都應該支持實體完整性和參照完整性,這是關係模型所要求的。
除此之外,不同的關係數據庫系統根據應用環境的不同,還需要一些特殊的約束條件——用戶定義的完整性,它反映某一具體應用所設計的數據必須滿足的語義要求。
關係模型應提供定義和檢驗這類完整性的機制,以便用統一的系統的方法處理它們,而不需由應用程序承擔這一功能。
在早期的關係數據庫管理系統中沒有提供定義和檢驗這些完整性的機制,因此需要應用開發人員在應用系統的程序中進行檢查。