資料庫完整性約束包括
Ⅰ 關系資料庫中,關系的完整性約束包括哪幾種,它們分別有什麼作用
關系的完整性約束通常包括域完整性,實體完整性、參照完整性和用戶定義完整性。
1、域完整性是保證資料庫欄位取值的合理性,是最簡單、最基本的約束。在當今的關系DBMS中,一般都有域完整性約束檢查功能。
2、實體完整性,作用是指在傳輸、存儲信息或數據的過程中,確保信息或數據不被未授權的篡改或在篡改後能夠被迅速發現。按實體完整性規則要求,主屬性不得取空值,如主關鍵字是多個屬性的組合,則所有主屬性均不得取空值。
3、參照完整性,作用是定義建立關系之間聯系的主關鍵字與外部關鍵字引用的約束條件。關系資料庫中通常都包含多個存在相互聯系的關系,關系與關系之間的聯系是通過公共屬性來實現的。根據實體完整性要求,主關鍵字不得取空值。
4、用戶定義完整性作用是根據應用環境的要求和實際的需要,對某一具體應用所涉及的數據提出約束性條件。這一約束機制一般不應由應用程序提供,而應有由關系模型提供定義並檢驗,用戶定義完整性主要包括欄位有效性約束和記錄有效性。
(1)資料庫完整性約束包括擴展閱讀:
關系完整性模型
關系完整性模型中常用的關系操作包括:選擇、投影、連接、並、交、差等查詢操作和增加、刪除、修改操作兩大部分。查詢的表達能力是其中最重要的部分。
關系操作的的特點是集合操作方式,即操作對象和結構都是集合。這種操作方式也為一次一集合的方式。相應地,非關系數據模型的數據操作方式則為一次一記錄的方式。
早期的關系操作能力通常用代數方式或邏輯方式來表示,分別稱為關系代數和關系演算。關系代數用對關系的運算來表達查詢要求的方式。關系代數、元組關系演算和域關系演算三種語言在表達能力是完全等價的。
關系語言是一種高度非過程化的語言,用戶不必請求DBA為其建立特殊的存取路徑,存取路徑的選擇由DBMS的優化機制來完成,此外,用戶不必求助於循環結構就可以完成數據操作。
Ⅱ 關系資料庫中,關系的完整性約束包括哪幾種,它們分別有什麼作用
關系的完整性主要包括域完整性、實體完整性和參照完整性三種。
1.域完整性
域完整性是對數據表中欄位屬性的約束,它包括欄位的值域、欄位的類型及欄位的有效規則等約束,它是由確定關系結構時所定義的欄位的屬性決定的。
2.實體完整性
實體完整性是對關系中的記錄唯一性,也就是主鍵的約束。准確地說,實體完整性是指關系中的主屬性值不能為Null且不能有相同值。
3.參照完整性
參照完整性是對關系資料庫中建立關聯關系的數據表間數據參照引用的約束,也就是對外鍵的約束。准確地說,參照完整性是指關系中的外鍵必須是另一個關系的主鍵有效值,或者是NULL。
Ⅲ 資料庫的完整性包含哪些完整性約Ɲ
資料庫完整性(Database Integrity)是指資料庫中數據的正確性和相容性,其目的是防止垃圾數據的進出。資料庫完整性伏喊瞎由各種各樣的完整性約束來保證,因此可以說資料庫完整性設計就是資料庫完整性約束的設計。加在資料庫之上的語義約束條件就是資料庫完整性約束條件。
完整性約束條件作用對象可以使關系、元組、列三種。
●列約束主要是列的數據類型、取值范圍、精度、排序等約束條件。
●元組的約束是元組中各個欄位間的聯系的約束。
●關系的約束是若干元組間、關系缺空集合上以及關系之間的聯系的約束。
完整性約束條件涉及這三類對象,其狀態可以是靜態的,也可以是動態的。所謂靜態約束是指資料庫每一確定狀態時的數據對象所應滿足的約束條件。它是反映資料庫狀態合理性的約束,這是最重要的一類完整性約束。
動態約束是指資料庫從一種狀態轉變為另一種狀態時,新、舊值之間所應滿足的約束條件。
完整性約束條件可分為以下六類:
●靜態列級約束
●靜態元組約束
●靜態關系約束
●動態列級約束
●動態元組約束
●動態關系約束
1. 靜態列級約束是對一個列的取值域的說明,包括以下幾個方面:
(1)對數據類型的約束,包括數據的類型、長度、單位、精度滲梁等;
(2)對數據格式的約束。例如規定日期的格式為YYYY-MM-DD;
(3)對取值范圍或取值集合的約束。例如規定學生的成績取值范圍為0~100;
(4)對空值的約束,規定哪些列可以為空值,哪些列不能為空值;
2. 靜態元組約束就是規定元組的各個列之間的約束關系。例如,訂貨關系中包含發貨量、訂貨量等列,規定發貨量不得超過訂貨量。
3. 靜態關系約束是指在一個關系的各個元組之間或者若干關系之間存在的約束。常見的靜態約束有:
(1)實體完整性約束;
(2)引用完整性約束;
(3)函數依賴約束;大部分函數依賴約束都在關系模式中定義。
(4)統計約束;即欄位值與關系中多個元組的統計值之間的約束關系。例如,規定部門經理的工資不得高於本部門職工平均工資的5倍,不得低於本部門職工平均工資的2倍。
4. 動態列級約束是修改列定義或列值時應滿足的約束條件,包括下面兩方面:
(1)修改列定義時的約束。例如,將允許空值的列改為不允許空值時,如果該列目前已存在空值,則拒絕這種修改。
(2)修改列值時的約束。修改列值時有時需要參照其舊值,並且新舊值之間需要滿足某種約束條件。例如,職工調整後的工資不得低於其調整前的原來工資;職工婚姻狀態的變化只能是由未婚到已婚、已婚到離異、離異到再婚等幾種情況。
5. 動態元組約束是指修改元組的值時元組中各個欄位間需要滿足某種約束條件。例如,職工工資調整時新工資不得低於原工資+工齡*1.5等。
6. 動態關系約束是加在關系變化前後狀態上的限制條件。例如,在集成電路晶元設計資料庫中,一個設計中用到的所有單元的工藝必相同,因此,在更新某個設計單元時,設計單元的新老工藝必須保持一致。
Ⅳ 資料庫的完整性包含哪些完整性約束
數據完整性約束指的是為了防止不符合規范的數據進入資料庫,在用戶對數據進行插入、修改、刪除等操作時,DBMS自動按照一定的約束條件對數據進行監測,使不符合規范的數據不能進入資料庫,以確保資料庫中存儲的數據正確、有效、相容。
資料庫的完整性約束包含以下類型:
1) 與表有關的約束:是表中定義的一種約束。可在列定義時定義該約束,此時稱為列約束,也可以在表定義時定義約束,此時稱為表約束。
2) 域(Domain)約束:在域定義中被定義的一種約束,它與在特定域中定義的任何列都有關系。
3) 斷言(Assertion):在斷言定義時定義的一種約束,它可以與一個或多個表進行關聯。
(4)資料庫完整性約束包括擴展閱讀:
數據的完整性
分為以下四類:
1) 實體完整性:規定表的每一行在表中是惟一的實體。
2) 域完整性:是指表中的列必須滿足某種特定的數據類型約束,其中約束又包括取值范圍、精度等規定。
3) 參照完整性:是指兩個表的主關鍵字和外關鍵字的數據應一致,保證了表之間的數據的一致性,防止了數據丟失或無意義的數據在資料庫中擴散。
4) 用戶定義的完整性:不同的關系資料庫系統根據其應用環境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性即是針對某個特定關系資料庫的約束條件,它反映某一具體應用必須滿足的語義要求。