數據庫管理——數據庫的完整性

數據庫的完整性數據庫

目錄:測試

1.完整性子系統spa

2.SQL中的完整性約束code

 

1.完整性子系統事務

數據庫中完整性一詞是指數據的正確性、有效性和相容性,防止錯誤的數據進入數據庫。io

正確性:是指數據的合法性,例如,數值型數據只能包含數字而不能包含字母;語法

有效性:是指數據是否屬於所定義的有效範圍;方法

相容性:是指表示同一事實的兩個數據應相同,不一致就是不相容。數據

 

DBMS必須提供一種功能來保證數據庫中的數據時正確的,避免非法的不符合語義的錯誤數據的輸入和輸出,即所謂「垃圾進垃圾出」所形成的無效操做和錯誤操做。檢查數據庫中的數據是否知足規定的條件稱爲「完整性檢查」。數據庫中的數據應該知足的條件稱爲「完整性約束條件」,有時也稱爲完整性規則。sse

 

DBMS中執行完整性檢查的子系統稱爲「完整性子系統」。完整性子系統的主要功能有兩點

①監督事務的執行,並測試是否違反完整性規則。

②如有違反現象,則採起適當操做,例如,採用拒絕操做,報告違反狀況,改正錯誤等方法處理。

 

2.SQL中的完整性約束

SQL中把完整性約束分紅三大類:域約束、基本表約束和斷言。

1.域約束

能夠用「CREATE DOMAIN」語句定義新的域,而且還能夠出現CHECK子句。

例:定義一個新的域COLOR,可用下列語句實現:

CREATE DOMAIN COLOR CHAR(6) DEFAULT'???'
    CONSTRAINT VALID_COLORS
        CHECK(VALUE IN
            ('Red','Yellow','Blue','Green','???'));

2.基本表約束

SQL的基本表約束主要有3中形式:候選鍵定義、外鍵定義和「檢查約束」定義。這些定義均可以在前面加上「CONSTRAINT<約束名>」,由此爲新約束起個名字。

①候選鍵

UNIQUE (<列名序列>)或PRIMARY KEY (<列名序列>)

②外鍵

FOREIGN KEY (<列名序列>)
    REFERENCES <參照表> [(<列名序列>)]
        [ON DELETE <參照動做>]
        [ON UPDATE <參照動做>]

③「檢查約束」

這種約束是對單個關係的元組值加以約束。方法是在關係定義中任何須要的地方加上關鍵字CHECK和約束條件。

CHECK(<條件表達式>)

3.斷言

若是完整性約束的牽涉面較廣,與多個關係有關,或者與聚合操做有關,那麼SQL2會提供「斷言」(Assertions)機制讓用戶書寫完整性約束。斷言能夠向關係同樣,用CREATE語句定義,其語法以下:

CREATE ASSERTION <斷言名> CHECK (<條件>)

DROP ASSERTION <斷言名>
相關文章
相關標籤/搜索