數(shù)據(jù)庫三種完整性約束 什么是數(shù)據(jù)庫的完整性約束條件?
什么是數(shù)據(jù)庫的完整性約束條件?數(shù)據(jù)完整性約束是指為了防止不符合要求的數(shù)據(jù)進入數(shù)據(jù)庫,當用戶插入、修改、刪除數(shù)據(jù)時,DBMS會根據(jù)一定的約束自動監(jiān)控數(shù)據(jù),使不符合要求的數(shù)據(jù)不能進入數(shù)據(jù)庫,從而保證數(shù)據(jù)庫
什么是數(shù)據(jù)庫的完整性約束條件?
數(shù)據(jù)完整性約束是指為了防止不符合要求的數(shù)據(jù)進入數(shù)據(jù)庫,當用戶插入、修改、刪除數(shù)據(jù)時,DBMS會根據(jù)一定的約束自動監(jiān)控數(shù)據(jù),使不符合要求的數(shù)據(jù)不能進入數(shù)據(jù)庫,從而保證數(shù)據(jù)庫中存儲的數(shù)據(jù)是正確的,有效且兼容。
數(shù)據(jù)庫完整性約束包括以下類型:
1)表相關約束:表中定義的約束。約束可以在列定義時定義,稱為列約束,也可以在表定義時定義,稱為表約束。
2)域約束:在域定義中定義的約束。它與特定域中定義的任何列相關。
3)斷言:在斷言定義時定義的約束,可以與一個或多個表相關聯(lián)。
數(shù)據(jù)完整性約束有哪幾種?
關系的完整性約束通常包括域完整性、實體完整性、引用完整性和用戶定義完整性。
1. 域完整性是保證數(shù)據(jù)庫字段值合理性的最簡單、最基本的約束。在當今的關系數(shù)據(jù)庫管理系統(tǒng)中,域完整性約束檢查是普遍可用的。
2. 實體完整性是指在信息或數(shù)據(jù)的傳輸和存儲過程中,信息或數(shù)據(jù)不被未經(jīng)授權的人篡改或篡改后能被迅速發(fā)現(xiàn)。根據(jù)實體完整性規(guī)則的要求,primary屬性不能為空。如果primary關鍵字是多個屬性的組合,則所有primary屬性都不能為null。
3. 引用完整性用于定義建立關系的主關鍵字和外部關鍵字引用的約束。關系數(shù)據(jù)庫通常包含許多相互關聯(lián)的關系,它們之間的關系是通過公共屬性來實現(xiàn)的。根據(jù)實體完整性的要求,主鍵不能為空。
4. 自定義完整性的功能是根據(jù)應用環(huán)境的要求和實際需要,對特定應用所涉及的數(shù)據(jù)提出約束。一般來說,這個約束機制不應該由應用程序提供,而應該由關系模型定義和測試。用戶定義的完整性主要包括字段有效性約束和記錄有效性約束。擴展數(shù)據(jù):關系完整性模型。關系完整性模型中常見的關系操作包括:選擇、投影、連接、并、交、差等查詢操作,以及添加、刪除、修改操作。查詢的表達能力是最重要的部分。關系運算的特點是集合運算的方式,即運算對象和結(jié)構(gòu)是集合的。此操作模式也是采集模式。相應地,非關系數(shù)據(jù)模型的數(shù)據(jù)操作模式是一次一條記錄。早期的關系運算能力通常用代數(shù)或邏輯的方式表示,分別稱為關系代數(shù)和關系微積分。關系代數(shù)用關系運算來表示查詢請求的方式。關系代數(shù)、元組關系演算和域關系演算在表達能力上是等價的。關系語言是一種高度非過程性的語言。用戶不需要請求DBA為其建立特殊的訪問路徑。訪問路徑的選擇是通過數(shù)據(jù)庫管理系統(tǒng)的優(yōu)化機制來完成的。此外,用戶還可以在不依賴循環(huán)結(jié)構(gòu)的情況下完成數(shù)據(jù)操作。
什么叫完整性約束?其主要作用是什么?
數(shù)據(jù)完整性約束是一組完整性規(guī)則。它定義了數(shù)據(jù)模型必須遵循的語義約束,并規(guī)定了內(nèi)部數(shù)據(jù)必須滿足的語義約束以及根據(jù)數(shù)據(jù)模型構(gòu)造的數(shù)據(jù)庫中數(shù)據(jù)之間的關系。為了防止不合格數(shù)據(jù)進入數(shù)據(jù)庫,當用戶插入、修改、刪除數(shù)據(jù)時,DBMS會根據(jù)一定的約束條件自動監(jiān)控數(shù)據(jù),使不合格數(shù)據(jù)不能進入數(shù)據(jù)庫,從而保證數(shù)據(jù)庫中存儲的數(shù)據(jù)正確、有效、兼容。