資料庫概論 完整性約束

2021-08-03 22:50:07 字數 1603 閱讀 6445

一、資料庫的完整性約束  ---  資料的正確性和相容性

注:資料的完整性和安全性是兩個不同的概念。資料庫的完整性是為了防止資料庫中含有不符合語義的的資料,也就是防止資料庫中含有不正確的資料。資料庫中的安全性是為了保護資料庫防止惡意的破壞和非法的訪問。

二、為維護資料庫的完整性,dbmx必須能夠

1、提供定義完整性約束條件的機制

完整性約束條件也稱為完整性規則。sql使用了一系列概念來描述完整性,包括關係模型的實體完整性、參照完整性和使用者定義完整性。這些完整性一般有sql的ddl語句來實現。他們作為資料庫模式的一部分存入資料字典。

2、提供完整性檢查的方法

dbms 中檢查資料是否滿足完整性約束條件的機制稱為完整性檢查。一般在insert,update,delete語句執行後開始檢查,也可以在事務提交後檢查。檢查這些操作後資料庫中的資料是否違背了完整性約束。

3、違約處理

dbms若發現使用者的操作違背了完整性約束條件,就會採取一定的動作,如拒絕(no action)執行該操作,或級聯(cascade)執行其他操作,進行違約處理以保證資料的完整性。

三、實體完整性 --- 在create table 中用primary key定義。對單屬性構成的碼有兩種說明方法,一種是定義為列級約束條件,另一種是定義為表級約束條件。對多個屬性構成的碼只有一種說法,即定義為表級約束條件。

1、若屬性(乙個或一組屬性)a是基本關係r的主屬性,則a不能取空值; 所謂空值 就是 不知道或不存在的值

2、對於實體完整性規則說明如下:

①實體完整性規則是針對基本關係而言的,乙個基本表通常對應現實世界的乙個實體集,如學生關係對應學生的集合

②現實中的實體是可區分的,即他們具有唯一標識;

③相應的,關係模型中以主碼作為唯一標識,

④主碼中的屬性即主屬性不能取空值,

四、參照完整性  --- 關係模型中的實體之間的聯絡用關係來表示

eg1:學生實體和專業實體可以用下面的關係來表示

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

專業(專業號,專業名稱)

這兩種關係存在屬性的引用,學生關係中的「專業號」引用專業關係中的主碼「專業號」。被參照的屬性必須是確實存在的。即專業關係中又該專業的記錄。

eg2:學生、課程、學生與課程之間的多對多聯絡

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

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

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

注:不僅兩個和兩個以上的關係間可以存在引用關係,同以關係內部屬性間也可能存在引用關係。

eg:在學生(學號,姓名,性別,專業號,年齡,班長)關係中,班長參照主碼學號

1、參照完整性規則 --- 若屬性(或屬性組)f是基本關係r的外碼,它與基本關係s的主碼k相對應(基本關係r和s不一定是不同的關係),則對於r中的每個元組在f上的值必須:

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

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

五、使用者定義的完整性  ---  針對某一具體應用的資料必須滿足的語已要求

注:任何關係資料庫系統都應該支援實體完整性和參照完整性

1、屬性上的約束條件定義

列值非空(not null)

列值唯一(unique短語)

檢查列值是否滿足乙個布林表示式(check 短語)

資料庫 完整性約束

問題描述 現有乙個商店的資料庫 shopping 記錄客戶及其購物情況,由以下四個關係組成 a 客戶表customer 儲存客戶資訊,包括客戶號customerid 客戶姓名cname 位址address 電子郵件email 性別gender 身份證號cardid 號碼telcode。b 商品表go...

資料庫 資料完整性約束

資料完整性 儲存在資料庫中的所有資料值均正確的狀態。完整性約束 防止不符合規範的資料進入資料庫,在使用者對資料進行插入 修改 刪除等操作時,dbms自動按照一定的約束條件對資料進行監測,使不符合規範的資料不能進入資料庫,以確保資料庫中儲存的資料正確 有效 相容。1.實體完整性 實體完整性是對主鍵的約...

Oracle資料庫完整性約束

資料庫的完整性是指資料的正確性和相容性。資料的正確性是指符合現實世界語義 反映當前實際狀況的 資料的相容性是指資料庫同一物件在不同關係表中的資料是符合邏輯的。約束 1 實體完整性 是通過主碼的定義實現的,一旦某個屬性或屬性組被定義為主碼,該主碼的每個屬性就不能為空值,並且在表中不能出現主碼值完全相同...