關係型資料庫中,關係的完整性有哪幾種

2021-10-24 18:07:38 字數 1057 閱讀 8182

關係模型中有3類完整性約束:域完整性、實體完整性、參照完整性。

1.域(列)完整性

也就是使用者定義的表字段的完整性 

通常指資料的有效性,它包括欄位的值域、欄位的型別及字段的有效規則等約束,它是由確定關係結構時所定義的字段的屬性決定的。限制資料型別,預設值、規則、約束、是否可以為空,域完整性可以確保不會輸入無效的值。比如某個屬性的值必須在某個範圍內,或者預設為0等,這些就是域(列)完整性,也就是使用者定義的完整性。

簡單來說就是對表字段的約束。

2.實體(行)完整性

實體完整性是對關係中的記錄唯一性,也就是主鍵的約束。準確地說,實體完整性是指關係中的主屬性值不能為null且不能有相同值。定義表中的所有行能唯一的標識,一般用主鍵、唯一索引 unique關鍵字,及identity屬性比如說我們的身份證號碼,可以唯一標識乙個人。

簡單來說乙個表中的唯一標識列不可為空。主關鍵字不能取空值或重複的值,如果是多個字段一起組成主鍵,則這多個欄位均不能取空值。

3.參照(引用)完整性

現實世界的實體之間往往存在某種聯絡,在關係模型中實體與實體見的聯絡都是用關係來描述的,這樣就存在著關係之間的引用。參照完整性是對關聯式資料庫中建立關聯關係的資料表間資料參照引用的約束,也就是對外鍵的約束。

準確地說,參照完整性是指關係中的外來鍵必須是另乙個關係的主鍵有效值,或者是null。 參照完整性維護表間資料的有效性、完整性,通常通過建立外來鍵關聯另一表的主鍵,還可以編寫2表的觸發器來維護參照完整性。

簡單來說就是主外來鍵的關係。例如:

這兩個表之間存在著屬性的引用,即「課程」表引用了「課程類別」表的主鍵「型別id」。按照參照完整性規則,「課程」表中每行的「型別id」屬性只能取下面兩類值:

1)、空值。表示該課程還未確定類別。

2)、非空值。此時取值必須和「課程類別」表中的「型別id」值相同,表示這門課程歸屬該類別。

參照完整性規則規定不能引用不存在的實體。

關係型資料庫完整性規則

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

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

2.3 使用者定義的完整性 查詢操作 選擇 投影 連線 除 並 差 交 笛卡爾積,選擇 投影 並 差 笛卡爾積是5種基本操作 資料更新 插入 刪除 修改 元組關係演算語言 謂詞變元的基本物件是元組變數 代表 aplha,quel 域關係演算語言 謂詞變元的基本物件是域變數 代表 qbe 在關係模型中...

關係型資料庫的完整性 鎖 約束 鍵 索引

rdbms能在事務中維護資料的完整性,這是通過資料庫物件實現的多種機制來實現的,下面列出的是4個最重要的物件 在sql server中,鎖可以使多個使用者同時訪問,同一資料,並且保證在讀取資料時,資料不會被修改。同時,鎖也用來確保乙個程序在修改資料時,不和其他進行資料修改操作或者資料讀取操作的程序發...