數(shù)據(jù)完整性是指什么

數(shù)據(jù)完整性是指數(shù)據(jù)的精確性和可靠性,是指在傳輸、存儲(chǔ)信息或數(shù)據(jù)的過程中,確保信息或數(shù)據(jù)不被未授權(quán)的篡改或在篡改后能夠被迅速發(fā)現(xiàn)。數(shù)據(jù)完整性可分為四類:實(shí)體完整性、域完整性、參照完整性、用戶自定義完整性。

數(shù)據(jù)完整性是指什么

本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。

數(shù)據(jù)完整性(Data integrity)是信息安全的三個(gè)基本要點(diǎn)之一,指在傳輸、存儲(chǔ)信息或數(shù)據(jù)的過程中,確保信息或數(shù)據(jù)不被未授權(quán)的篡改或在篡改后能夠被迅速發(fā)現(xiàn)。

數(shù)據(jù)完整性(Data Integrity)是指數(shù)據(jù)的精確性(Accuracy) 和可靠性(Reliability)。它是應(yīng)防止數(shù)據(jù)庫中存在不符合語義規(guī)定的數(shù)據(jù)和防止因錯(cuò)誤信息的輸入輸出造成無效操作或錯(cuò)誤信息而提出的。

數(shù)據(jù)完整性分為四類:實(shí)體完整性(Entity Integrity)、域完整性(Domain Integrity)、參照完整性(Referential Integrity)、用戶自定義完整性(User-definedIntegrity)。

1、實(shí)體完整性

實(shí)體完整性是在關(guān)系模型中,數(shù)據(jù)庫完整性三項(xiàng)規(guī)則的其中之一。實(shí)體完整性這項(xiàng)規(guī)則要求每個(gè)數(shù)據(jù)表都必須有主鍵,而作為主鍵的所有字段,其屬性必須是獨(dú)一及非空值。

2、域完整性

域完整性:是指一個(gè)列的輸入有效性,是否允許為空值。強(qiáng)制域完整性的方法有:限制類型(通過設(shè)定列的數(shù)據(jù)類型)、格式(通過CHECK約束和規(guī)則)或可能值的范圍(通過FOREIGN KEY約束、CHECK約束、DEFAULT定義、NOT NULL定義和規(guī)則)。如:學(xué)生的考試成績(jī)必須在0~100之間,性別只能是“男”或“女”。

3、參照完整性

參照完整性:是指保證主關(guān)鍵字(被引用表)和外部關(guān)鍵字(引用表)之間的參照關(guān)系。它涉及兩個(gè)或兩個(gè)以上表數(shù)據(jù)的一致性維護(hù)。

外鍵值將引用表中包含此外鍵的記錄和被引用表中主鍵與外鍵相匹配的記錄關(guān)聯(lián)起來。

在輸入、更改或刪除記錄時(shí),參照完整性保持表之間已定義的關(guān)系,確保鍵值在所有表中一致。這樣的一致性要求確保不會(huì)引用不存在的值,如果鍵值更改了,那么在整個(gè)數(shù)據(jù)庫中,對(duì)該鍵值的所有引用要進(jìn)行一致的更改。

參照完整性是基于外鍵與主鍵之間的關(guān)系。

4、用戶自定義完整性

用戶自定義完整性是針對(duì)某一具體關(guān)系數(shù)據(jù)庫的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。主要包括非空約束、唯一約束、檢查約束、主鍵約束、外鍵約束。

數(shù)據(jù)庫采用多種方法來保證數(shù)據(jù)完整性,包括外鍵、約束、規(guī)則和觸發(fā)器。系統(tǒng)很好地處理了這四者的關(guān)系,并針對(duì)不同的具體情況用不同的方法進(jìn)行,相互交叉使用,相補(bǔ)缺點(diǎn)。

完整性的約束

完整性約束主要有實(shí)體完整性約束、參照完整性約束、函數(shù)依賴約束、統(tǒng)計(jì)約束四類。

1) 實(shí)體完整性:規(guī)定表的每一行在表中是惟一的實(shí)體。

2) 域完整性:是指表中的列必須滿足某種特定的數(shù)據(jù)類型約束,其中約束又包括取值范圍、精度等規(guī)定。

3) 參照完整性:是指兩個(gè)表的主關(guān)鍵字和外關(guān)鍵字的數(shù)據(jù)應(yīng)一致,保證了表之間的數(shù)據(jù)的一致性,防止了數(shù)據(jù)丟失或無意義的數(shù)據(jù)在數(shù)據(jù)庫中擴(kuò)散。

4) 用戶定義的完整性:不同的關(guān)系數(shù)據(jù)庫系統(tǒng)根據(jù)其應(yīng)用環(huán)境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性即是針對(duì)某個(gè)特定關(guān)系數(shù)據(jù)庫的約束條件,它反映某一具體應(yīng)用必須滿足的語義要求。

完整性約束的類型

可分為三種類型:與表有關(guān)的約束、域(Domain)約束、斷言(Assertion)

1) 與表有關(guān)的約束:是表中定義的一種約束。可在列定義時(shí)定義該約束,此時(shí)稱為列約束,也可以在表定義時(shí)定義約束,此時(shí)稱為表約束。

2) 域(Domain)約束:在域定義中被定義的一種約束,它與在特定域中定義的任何列都有關(guān)系。

3) 斷言(Assertion):在斷言定義時(shí)定義的一種約束,它可以與一個(gè)或多個(gè)表進(jìn)行關(guān)聯(lián)。

(推薦教程:mysql視頻教程

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊5 分享