1. 程式人生 > >關系完整性約束

關系完整性約束

插入 空值 不存在 實體完整性 family 現實 key 不能 一個

1.實體完整性

實體完整性規則:若屬性A是關系R的主屬性,則屬性A的值不能為空。

(1)理解空的含義

空(null)表示“不知道”或“不存在”,不是空格符

(2)實體在現實世界中是可相互區分的,即具有某種唯一性標識

2.參照完整性(即,不允許引用不存在的元組)

參照完整性規則:若屬性(或屬性組)F是關系R的外碼(外鍵),它與關系S的主碼對應(關系R和S不一定是不同關系),則對於R中的每個元組的值要麽等於S中的某個主碼值,要麽取空值。

設F是關系R的一個或一組屬性,但不是關系R的碼。如果F與關系S的主碼Ks相對應,則稱F是關系R的外碼(Foreign Key),並稱R為參照關系,關系S為被參照關系。

3.用戶定義的完整性

當執行關系操作的插入、刪除和更新時,數據庫就要檢查是否滿足上述3類完整性規則,如果不滿足則操作失敗。

關系完整性約束