2.1.2 關係完整性約束
1.關係的三類完整性約束
1.實體完整性和參照完整性
關係模型必須滿足的完整性約束條件,稱為關係的兩個不變性,應由關係系統自動支援
2.使用者定義的完整性
應用領域需要遵循的約束條件,體現了具體領域中的語義約束
2.實體完整性(entity integrity)
1.關係的主屬性不能取空值
2.空值是「不存在」或者「無意義」的值
3.參照完整性
1.關係間的引用
在關係模型中實體與實體間的聯絡都是用關係來描述的,自然存在著關係與關係間的引用
2.參照完整性舉例
3.外碼(foreign key)
1.設f是基本關係r的乙個或一組屬性,但不是關係r的碼。
如果f與基本關係s的主碼ks相對應,則稱f是r的外碼
外碼的取值必須滿足參照完整性
2.基本關係r稱為參照關係(referencing relation)
3.基本關係s稱為被參照關係(referenced relation)或者目標關係(target relation)
4.參照完整性規則
若屬性(或屬性組)f是基本關係r的外碼,它與基本關係s的主碼ks相對應
(基本關係r和s不一定是不同的關係)
則對於r中每個元組在f上的值必須為
1.或者取空值(或者f的每個屬性值均為空值)
2.或者等於s中某個原碼的主碼值
4.使用者定義的完整性
1.針對某一具體關聯式資料庫的約束條件,反映某一具體應用所涉及的資料必須滿足的語義條件
2.關係模型應提供定義和檢驗這類完整性的機制
以便用同一的系統的方法處理它們,而不需由程式承擔這一功能
關係完整性約束
在關係資料模型中,一般將資料完整性分為3類,即實體完整性 參照完整性 使用者自定義完整性。其中實體完整性和參照完整性是關係模型中必須滿足的完整性約束條件,使用者自定義完整性是為了滿足使用者對資料的約束條件或語義需求。實體完整性 保證關係中的每個元組都是唯一的和可識別的。由於元組中的主屬性能夠唯一識別...
關係完整性約束
域完整性是保證資料庫字段取值的合理性。屬性值應是域中的值,這是關係模式規定了的。除此之外,乙個屬性能否為null,這是由語義決定的,也是域完整性約束的主要內容。包括檢查 check 預設值 default 不為空 not null 外來鍵 foreign key 等約束。實體完整性 entity i...
完整性約束
create table student tb id int notnull 非空約束 資料不允許為空 name varchar 255 null 顯式指定允許為空 新增非空約束 alter table 表名 modify column 屬性名 屬性型別 not null alter table s...