資料庫系統概論課堂筆記 完整性約束

2021-10-02 15:52:44 字數 1060 閱讀 8227

1.實體完整性

實體完整性:理解為對客觀世界的實體來說,例如學生的學號這一屬性,應該是唯一存在的。所以實體完整性表現為:primary key(主鍵)

primary key:屬性唯一,屬性不為空。

注意:單屬性主碼才可以定義為列級實體完整性,多屬性主碼只能定義為表級實體完整性。

2.參照完整性

參照完整性:多個關係表之間如果有外來鍵相互參照的話,對於某錶的操作勢必會影響另乙個表。這種改變是否符合原來關係表之間的規則就叫做是否遵守參照完整性。

參照完整性違規處理的舉例:

foreign key(sno) references student(sno) on delete cascade;

注意這裡的主從物件,當對student的sno屬性進行刪除時,就會級聯刪除當前表的sno屬性。主物件是student表,從物件是當前表。

3.使用者定義完整性

使用者定義完整性:即使用者自己新增的約束條件,例如 not null,unique,還有更一般的表示方式:check子句,當check中的條件滿足時,才允許對資料庫執行插入元組或修改元組的操作。

1.引入完整性約束命名子句的目的

以往的約束條件在create table時建立,比如 not null等約束條件,這些條件在表建立之後,是無法修改的,除非刪除掉該錶,然後再重新建表,重新指定約束條件。當乙個表中有幾千條列的時候,會顯得十分繁瑣,所以引入完整性約束命名子句。好處是可以通過alter對錶中的約束條件進行增加刪除更改等操作,十分方便。

對錶的完整性約束命名子句的更改操作舉例:

alter table student

drop constraint c4;

代表刪除student表的約束條件c4

1.斷言的理解

sql中可以使用create assertion語句,通過宣告斷言來指定更具一般性的約束。可以定義涉及多個表或聚集操作的比較複雜的完整性約束。斷言建立以後,任何對斷言中涉及的表的操作都會觸發dbms對斷言的檢查,任何使斷言不為真值的操作都會被拒絕執行。乙個斷言就是乙個謂詞表示式,它表達了希望資料庫總能滿足的條件,表約束與列約束就是一些特殊的斷言。

《資料庫系統概論》 第五章 資料庫完整性

dbms必須能夠實現如下功能 提供定義完整性約束條件的機制 sql中的ddl語句 立法 提供完整性檢查的方法 什麼時候檢查 怎麼檢查 執法 進行違約處理 create table中的primary key定義 為了避免對基本表進行全表掃瞄,dmbs一般都在主碼上自動建立乙個索引,如b 樹索引。在cr...

資料庫概論 完整性約束

一 資料庫的完整性約束 資料的正確性和相容性 注 資料的完整性和安全性是兩個不同的概念。資料庫的完整性是為了防止資料庫中含有不符合語義的的資料,也就是防止資料庫中含有不正確的資料。資料庫中的安全性是為了保護資料庫防止惡意的破壞和非法的訪問。二 為維護資料庫的完整性,dbmx必須能夠 1 提供定義完整...

資料庫系統概念 關係的完整性

實體完整性規則的說明 1 實體完整性規則是針對基本關係而言的。乙個基本表通常對應現實世界的乙個實體集。2 現實世界中的實體是可區分的,即它們具有某種唯一性標識。3 關係模型中以主碼作為唯一性標識。4 主碼中的屬性即主屬性不能取空值。主屬性取空值,就說明存在某個不可標識的實體,即存在不可區分的實體,這...