數(shù)據(jù)完整性是指哪三個 什么是數(shù)據(jù)庫的完整性約束條件?
什么是數(shù)據(jù)庫的完整性約束條件?數(shù)據(jù)完整性約束是指為了防止不符合要求的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫,當(dāng)用戶插入、修改、刪除數(shù)據(jù)時,DBMS會根據(jù)一定的約束自動監(jiān)控?cái)?shù)據(jù),使不符合要求的數(shù)據(jù)不能進(jìn)入數(shù)據(jù)庫,從而保證數(shù)據(jù)庫
什么是數(shù)據(jù)庫的完整性約束條件?
數(shù)據(jù)完整性約束是指為了防止不符合要求的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫,當(dāng)用戶插入、修改、刪除數(shù)據(jù)時,DBMS會根據(jù)一定的約束自動監(jiān)控?cái)?shù)據(jù),使不符合要求的數(shù)據(jù)不能進(jìn)入數(shù)據(jù)庫,從而保證數(shù)據(jù)庫中存儲的數(shù)據(jù)是正確的,有效且兼容。
數(shù)據(jù)庫完整性約束包括以下類型:
1)表相關(guān)約束:表中定義的約束。約束可以在列定義時定義,稱為列約束,也可以在表定義時定義,稱為表約束。
2)域約束:在域定義中定義的約束。它與特定域中定義的任何列相關(guān)。
3)斷言:在斷言定義時定義的約束,可以與一個或多個表相關(guān)聯(lián)。
關(guān)系數(shù)據(jù)庫中,關(guān)系的完整性約束包括哪幾種,它們分別有什么作用?
關(guān)系的完整性約束通常包括域完整性、實(shí)體完整性、引用完整性和用戶定義完整性。
1. 域完整性是保證數(shù)據(jù)庫字段值合理性的最簡單、最基本的約束。在當(dāng)今的關(guān)系數(shù)據(jù)庫管理系統(tǒng)中,域完整性約束檢查是普遍可用的。
2. 實(shí)體完整性是指在信息或數(shù)據(jù)的傳輸和存儲過程中,信息或數(shù)據(jù)不被未經(jīng)授權(quán)的人篡改或篡改后能被迅速發(fā)現(xiàn)。根據(jù)實(shí)體完整性規(guī)則的要求,primary屬性不能為空。如果primary關(guān)鍵字是多個屬性的組合,則所有primary屬性都不能為null。
3. 引用完整性用于定義建立關(guān)系的主關(guān)鍵字和外部關(guān)鍵字引用的約束。關(guān)系數(shù)據(jù)庫通常包含許多相互關(guān)聯(lián)的關(guān)系,它們之間的關(guān)系是通過公共屬性來實(shí)現(xiàn)的。根據(jù)實(shí)體完整性的要求,主鍵不能為空。
4. 自定義完整性的功能是根據(jù)應(yīng)用環(huán)境的要求和實(shí)際需要,對特定應(yīng)用所涉及的數(shù)據(jù)提出約束。一般來說,這個約束機(jī)制不應(yīng)該由應(yīng)用程序提供,而應(yīng)該由關(guān)系模型定義和測試。用戶定義的完整性主要包括字段有效性約束和記錄有效性約束。