完整性:防止數據庫中存在不符合語義的數據,也就是防止數據庫中存在不正確的數據。防範對象:不合語義的、不正確的數據。
安全性:保護數據庫防止惡意的破壞和非法的存取。防範對象:非法用戶和非法操做。sql
若屬性(一個或者一組)A是基本關係的主屬性,則A不能取空值。在關係型數據庫裏的體現就是將數據表的某一個候選碼設定爲主鍵,PRIMARY KEY
.數據庫
單屬性構成碼有兩種方式:安全
約束條件的範圍由碼的定義位置肯定,若是在建立表的最後肯定那麼就是表級約束條件,若是在定義列的同時設定爲碼那麼就是列級。code
而對於多個屬性一塊兒構成碼的,只能做爲表級的約束條件。對象
插入或對主碼列進行更新操做時,DBMS按照實體完整性規則自動進行檢查。包括:blog
檢查主碼是否惟一的一種辦法就是全表掃描,並一一比較是否相同。索引
或者爲主碼建立索引,提升掃描的效率。table
指的是關係模型中參照其餘的表的屬性,構成了當前表的參照完整性。在關係數據庫中的體現就是將某一個屬性定義爲外鍵 FOREIGN KEY ... REFERENCE...class
針對用戶的特定應用而設定的完整性要求。例如性別只能爲男,女,年齡必須爲正數等。效率
用戶定義的完整性分爲
QL還在Creat table語句中提供了完整性約束命名子句,用來對完整性約束條件命名,從而能夠靈活地增長、刪除一個完整性約束條件
CONSTRAINT <完整性約束條件名>[ NOT NULL | UNIQUE | PRIMARY KEY短語| FOREIGN KEY短語 | CHECK短語 ]
斷言建立語句
CREATE ASSERTION <斷言名> <CHECK 子句>
能夠定義涉及到多個表的複雜條件判斷語句,數據庫中全部涉及到斷言中定義的操做都會觸發斷言判斷。若是斷言判斷結果不爲真,就會拒絕執行。
在指定的操做以前,或以後執行的一段SQL語句。
數據庫的完整性是爲了保證數據庫中存儲的數據是正確的DBMS完整性實現的機制。