基本介紹
- 中文名:引用完整性
- 性質:完整性
- 屬性:引用
- 參照完整性:Referential Integrity
簡介,外關鍵字,引用規則,
簡介
在現實生活中的實體之間總是存在著某種聯繫,在關係模型中實體與實體之間的聯繫都是用關係來描述的,這樣就存在關係與關係之間的引用。例如,有學生實體和班級兩個實體集合:
學生(學號,姓名,性別,年齡,班級編號)其中學號為主碼。
班級(班級編號,學生數量,班主任姓名),其中班級編號為主碼。
這兩個關係之間存在著屬性的引用,即學生關係引用了班級關係的主關鍵字"班級編號",顯然,學生關係中的"班級編號"值必須是在班級表中確實存在的班級的班級編號,即班級關係中有該班級的記錄。這說明學生關係中某個屬性的取值要參照班級關係的屬性取值。
在這種情況下,"班級編號"不是學生關係的主關鍵字,但是卻是班級關係的主碼,則稱"班級編號"是學生關係的外關鍵字。
外關鍵字
設FK是基本關係R的一個或一組屬性,但不一定是關係R的主關鍵字。如果FK與基本關係S的主關鍵字相對應,則稱FK是基本關係R的外關鍵字,並稱基本關係R為引用關係,基本關係S為被引用關係。
在上例中,"班級編號"是學生關係的外關鍵字,學生關係是引用關係,班級關係是被引用關係。
引用規則
引用完整性就是定義外關鍵字與主關鍵字之間的引用規則。如果要刪除被引用的對象,那么也要刪除引用它的所有對象,或者把引用值設定為空(如果允許的話)。例如,前面的學生和班級關係中,刪除某個班級元組之前,必須先刪除相應的引用該班級的學生元組。這就是引用完整性。
圖3-1,綜合了三種關係數據的完整性。由圖中可以看到,實體完整性是對應元組或行而言,域完整性是對應屬性或列而言,引用完整性是對不同表之間的屬性或列的引用關係而言。