資料庫2 2 關係操作與關係完整性

2021-10-05 08:40:33 字數 1535 閱讀 9700

2.3 使用者定義的完整性

查詢操作:選擇、投影、連線、除、並、差、交、笛卡爾積,選擇、投影、並、差、笛卡爾積是5種基本操作

資料更新:插入、刪除、修改

元組關係演算語言

謂詞變元的基本物件是元組變數

代表:aplha, quel

域關係演算語言

謂詞變元的基本物件是域變數

代表:qbe

在關係模型中實體及實體間的聯絡都是用關係來描述的,自然存在著關係與關係間的引用

例如:學生(學號,姓名,性別,年齡,專業號),專業(專業號,專業名)

學生關係引用了專業關係的主碼「專業號」。

學生關係中的「專業號」值必須是確實存在的專業的專業號

設f是基本關係r的乙個或一組屬性,但不是關係r的碼。如果f與基本關係s的主碼ks相對應(有乙個一一對應的關係,不一定同名),則稱f是r的外碼

基本關係r稱為參照關係(referencing relation)

基本關係s稱為被參照關係(referenced relation)或目標關係(target relation)

關係r和s不一定是不同的關係

目標關係s的主碼ks 和參照關係的外碼f必須定義在同乙個(或一組)域上

外碼並不一定要與相應的主碼同名

r,s為不同的基本關係:

學生(學號,姓名,性別,專業號,年齡)

課程(課程號,課程名,學分)

選修(學號,課程號,成績)

- 選修關係的「學號」 與學生關係的主碼「學號」相對應

- 選修關係的「課程號」與課程關係的主碼「課程號」相對應

- 「學號」和「課程號」是選修關係的外碼

- 學生關係和課程關係均為被參照關係

- 選修關係為參照關係

r,s為同乙個的基本關係:

學生(學號,姓名,性別,專業號,年齡,班長)

- 「班長」是外碼,「班長」也是學生嘛,與學號相對應

- 學生關係既是參照關係也是被參照關係

若屬性(或屬性組)f是基本關係r的外碼,它與基本關係s的主碼ks相對應(基本關係r和s不一定是不同的關係),則對於r中每個元組在f上的值必須為:

或者取空值(f的每個屬性值均為空值)

或者等於s中某個元組的主碼值

[例子]

學生(學號,姓名,性別,專業號,年齡,班長)

「班長」屬性值可以取兩類值:

(1)空值,表示該學生所在班級尚未選出班長

(2)非空值,該值必須是本關係中某個元組的學號值

總結:(外碼要麼空值,要麼已存在,不能新產生)

例:

課程(課程號,課程名,學分)

- 「課程號」屬性必須取唯一值

- 非主屬性「課程名」也不能取空值

- 「學分」屬性只能取值

關係模型 關係完整性

關係模型三種完整性約束 實體完整性 若屬性 乙個或一組屬性 a是基本關係r的主屬性,則a不能取空值null.如 學生 學號,姓名,性別,年齡,專業 關係中學號為主碼,則學號不能為null.關係模型中以主碼作為唯一性標識 參照完整性 設f為基本關係r的乙個或一組屬性,但不是關係r的碼,ks是基本關係s...

關係型資料庫完整性規則

不管你用的是sql server 還是mysql 它們都是關係型資料庫,那麼既然是關係型資料庫就要遵守 關係型資料庫的完整性規則 關係型資料庫提供了三類完整性規則,實體完整性規則,參照完整性規則,使用者自定義完成性規則 在這三類完成性規則中呢其中實體完整性規則和參照性完整性規則是關係模型必須滿足的完...

關係完整性約束

在關係資料模型中,一般將資料完整性分為3類,即實體完整性 參照完整性 使用者自定義完整性。其中實體完整性和參照完整性是關係模型中必須滿足的完整性約束條件,使用者自定義完整性是為了滿足使用者對資料的約束條件或語義需求。實體完整性 保證關係中的每個元組都是唯一的和可識別的。由於元組中的主屬性能夠唯一識別...