當前位置:首頁 » 數據倉庫 » 資料庫關系完整性包括
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫關系完整性包括

發布時間: 2022-12-14 01:55:42

資料庫的完整性包含哪些完整性約Ɲ

資料庫完整性(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. 動態關系約束是加在關系變化前後狀態上的限制條件。例如,在集成電路晶元設計資料庫中,一個設計中用到的所有單元的工藝必相同,因此,在更新某個設計單元時,設計單元的新老工藝必須保持一致。

㈡ 關系資料庫中,關系的完整性約束包括哪幾種,它們分別有什麼作用

關系的完整性約束通常包括域完整性,實體完整性、參照完整性和用戶定義完整性。

1、域完整性是保證資料庫欄位取值的合理性,是最簡單、最基本的約束。在當今的關系DBMS中,一般都有域完整性約束檢查功能。

2、實體完整性,作用是指在傳輸、存儲信息或數據的過程中,確保信息或數據不被未授權的篡改或在篡改後能夠被迅速發現。按實體完整性規則要求,主屬性不得取空值,如主關鍵字是多個屬性的組合,則所有主屬性均不得取空值。

3、參照完整性,作用是定義建立關系之間聯系的主關鍵字與外部關鍵字引用的約束條件。關系資料庫中通常都包含多個存在相互聯系的關系,關系與關系之間的聯系是通過公共屬性來實現的。根據實體完整性要求,主關鍵字不得取空值。

4、用戶定義完整性作用是根據應用環境的要求和實際的需要,對某一具體應用所涉及的數據提出約束性條件。這一約束機制一般不應由應用程序提供,而應有由關系模型提供定義並檢驗,用戶定義完整性主要包括欄位有效性約束和記錄有效性。

(2)資料庫關系完整性包括擴展閱讀:

關系完整性模型

關系完整性模型中常用的關系操作包括:選擇、投影、連接、並、交、差等查詢操作和增加、刪除、修改操作兩大部分。查詢的表達能力是其中最重要的部分。

關系操作的的特點是集合操作方式,即操作對象和結構都是集合。這種操作方式也為一次一集合的方式。相應地,非關系數據模型的數據操作方式則為一次一記錄的方式。

早期的關系操作能力通常用代數方式或邏輯方式來表示,分別稱為關系代數和關系演算。關系代數用對關系的運算來表達查詢要求的方式。關系代數、元組關系演算和域關系演算三種語言在表達能力是完全等價的。

關系語言是一種高度非過程化的語言,用戶不必請求DBA為其建立特殊的存取路徑,存取路徑的選擇由DBMS的優化機制來完成,此外,用戶不必求助於循環結構就可以完成數據操作。

㈢ VF中。資料庫完整性包括哪三個完整性

有四個完整性,包括實體完整性、域完整性、參照完整性和用戶定義的完整性。

1、實體完整性:表中行的完整性。主要用於保證操作的數據非空、唯一且不重復。即實體完整性要求每個關系(表)有且僅有一個主鍵,每一個主鍵值必須唯一,而且不允許為「空」或重復。

2、域完整性:資料庫表中的列必須滿足某種特定的數據類型或約束。其中約束又包括取值范圍、精度等規定。CHECK、FOREIGN KEY 約束和DEFAULT、 NOT NULL定義都屬於域完整性的范疇。

3、參照完整性:屬於表間規則,是對於更新、插入或刪除表間數據的完整性。通常,在客觀現實中的實體之間存在一定聯系,在關系模型中實體及實體間的聯系都是以關系進行描述,因此,操作時就可能存在著關系與關系間的關聯和引用。

4、用戶定義完整性:是對數據表中欄位屬性的約束,包括欄位的值域、欄位的類型和欄位的有效規則(如小數位數)等約束,是由確定關系結構時所定義的欄位的屬性決定的。

(3)資料庫關系完整性包括擴展閱讀:

資料庫完整性設計原則

1、要根據業務規則對資料庫完整性進行細致的測試,以盡早排除隱含的完整性約束間的沖突和對性能的影響。

2、要有專職的資料庫設計小組,自始至終負責資料庫的分析、設計、測試、實施及早期維護。資料庫設計人員不僅負責基於DBMS的資料庫完整性約束的設計實現,還要負責對應用軟體實現的資料庫完整性約束進行審核。

3、應採用合適的CASE工具來降低資料庫設計各階段的工作量。好的CASE工具能夠支持整個資料庫的生命周期,這將使資料庫設計人員的工作效率得到很大提高,同時也容易與用戶溝通。

㈣ 資料庫的完整性包含哪些完整性約束

數據完整性約束指的是為了防止不符合規范的數據進入資料庫,在用戶對數據進行插入、修改、刪除等操作時,DBMS自動按照一定的約束條件對數據進行監測,使不符合規范的數據不能進入資料庫,以確保資料庫中存儲的數據正確、有效、相容。

資料庫的完整性約束包含以下類型:

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

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

3) 斷言(Assertion):在斷言定義時定義的一種約束,它可以與一個或多個表進行關聯。

(4)資料庫關系完整性包括擴展閱讀:

數據的完整性

分為以下四類:

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

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

3) 參照完整性:是指兩個表的主關鍵字和外關鍵字的數據應一致,保證了表之間的數據的一致性,防止了數據丟失或無意義的數據在資料庫中擴散。

4) 用戶定義的完整性:不同的關系資料庫系統根據其應用環境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性即是針對某個特定關系資料庫的約束條件,它反映某一具體應用必須滿足的語義要求。

㈤ 關系資料庫完整性有哪幾類 分別可以使用那些技術實現

關系資料庫完整性有域(列)、實體(行)、參照(引用)整性類。

1、域(列)完整性的技術實現:通常指數據的有效性,它包括欄位的值域、欄位的類型及欄位的有效規則等約束,它是由確定關系結構時所定義的欄位的屬性決定的。

2、實體(行)完整性的技術實現:關系中的主屬性值不能為Null且不能有相同值。

3、參照(引用)完整性的技術實現:對關系資料庫中建立關聯關系的數據表間數據參照引用的約束,也就是對外鍵的約束。

數據完整性分析

資料庫採用多種方法來保證數據完整性,包括外鍵、約束、規則和觸發器。系統很好地處理了這四者的關系,並針對不同的具體情況用不同的方法進行,相互交叉使用,相補缺點。

從外界輸入的,而數據的輸入由於種種原因,會發生輸入無效或錯誤信息。保證輸入的數據符合規定,成為了資料庫系統,尤其是多用戶的關系資料庫系統首要關注的問題。

㈥ 關系模型的數據完整性包含哪些內容

1、實體完整性

實體完整性要求每個表都有唯一標識符,每一個表中的主鍵欄位不能為空或者重復的值。

2、參照完整性

參照完整性要求關系中不允許引用不存在的實體。設定相應的更新刪除插入規則來更新參考表。

3、用戶自定義完整性

用戶自定義完整性是針對某一具體關系資料庫的約束條件,它反映某一具體應用所涉及的數據必須滿足的語義要求。

也就是說:某個表你設置這一列為null,not null,default,check等。包括:非空約束、唯一約束、檢查約束、主鍵約束 、外鍵約束。

(6)資料庫關系完整性包括擴展閱讀:

關系模型的數據完整性約束的實施:

實現完整性約束的方法依類別不同而不同。完整性約束可以分為兩大類:靜態約束和動態約束。

靜態約束 靜態約束是對資料庫狀態的約束,有可分為固定約束、隱含約束和顯示約束。[1]

固定約束 是數據模型固有的約束,如關系的屬性是原子的,即滿足INF的約束。固有約束在DBMS實現時已經考慮。

隱含約束 指隱含於數據模式中的約束,一般用數據定義語言(DDL)語句說明,並存於數據目錄中。例如,域完整性約束、實體完整性以及參照完整性約束,都由相應的DDL語句說明。

㈦ 什麼是資料庫的關系完整性

原理編輯
資料庫完整性對於資料庫應用系統非常關鍵,其作用主要體現在以下幾個方面:
1.資料庫完整性約束能夠防止合法用戶使用資料庫時向資料庫中添加不合語義的數據。
2.利用基於DBMS的完整性控制機制來實現業務規則,易於定義,容易理解,而且可以降低應用程序的復雜性,提高應用程序的運行效率。同時,基於DBMS的完整性控制機制是集中管理的,因此比應用程序更容易實現資料庫的完整性。
3.合理的資料庫完整性設計,能夠同時兼顧資料庫的完整性和系統的效能。比如裝載大量數據時,只要在裝載之前臨時使基於DBMS的資料庫完整性約束失效,此後再使其生效,就能保證既不影響數據裝載的效率又能保證資料庫的完整性。
4.在應用軟體的功能測試中,完善的資料庫完整性有助於盡早發現應用軟體的錯誤。
資料庫完整性約束可分為6類:列級靜態約束、元組級靜態約束、關系級靜態約束、列級動態約束、元組級動態約束、關系級動態約束。動態約束通常由應用軟體來實現。不同DBMS支持的資料庫完整性基本相同。
關系模型
關系完整性的用於保證資料庫中數據的正確性。系統在進行更新、插入或刪除等操作時都要檢查數據的完整性,核實其約束條件,即關系模型的完整性規則。在關系模型中有四類完整性約束:實體完整性、域完整性、參照完整性和用戶定義的完整性,其中實體完整性和參照完整性約束條件,稱為關系的兩個不變性。
實體
關系資料庫的完整性規則是資料庫設計的重要內容。絕大部分關系型資料庫管理系統RDBMS都可自動支持關系完整性規則,只要用戶在定義(建立)表的結構時,注意選定主鍵、外鍵及其參照表,RDBMS可自動實現其完整性約束條件。
(1)實體完整性(Entity Integrity)。實體完整性指表中行的完整性。主要用於保證操作的數據(記錄)非空、唯一且不重復。即實體完整性要求每個關系(表)有且僅有一個主鍵,每一個主鍵值必須唯一,而且不允許為「空」(NULL)或重復。
(2)實體完整性規則要求。若屬性A是基本關系R的主屬性,則屬性A不能取空值,即主屬性不可為空值。其中的空值(NULL)不是0,也不是空隔或空字元串,而是沒有值。實際上,空值是指暫時「沒有存放的值」、「不知道」或「無意義」的值。由於主鍵是實體數據(記錄)的惟一標識,若主屬性取空值,關系中就會存在不可標識(區分)的實體數據(記錄),這與實體的定義矛盾,而對於非主屬性可以取空值(NULL),因此,將此規則稱為實體完整性規則。如學籍關系(表)中主屬性「學號」(列)中不能有空值,否則無法操作調用學籍表中的數據(記錄)。
域完整性
域完整性(Domain Integrity)是指資料庫表中的列必須滿足某種特定的數據類型或約束。其中約束又包括取值范圍、精度等規定。表中的CHECK、FOREIGN KEY 約束和DEFAULT、 NOT NULL定義都屬於域完整性的范疇。
參照完整性
參照完整性(Referential Integrity)屬於表間規則。對於永久關系的相關表,在更新、插入或刪除記錄時,如果只改其一,就會影響數據的完整性。如刪除父表的某記錄後,子表的相應記錄未刪除,致使這些記錄稱為孤立記錄。對於更新、插入或刪除表間數據的完整性,統稱為參照完整性。通常,在客觀現實中的實體之間存在一定聯系,在關系模型中實體及實體間的聯系都是以關系進行描述,因此,操作時就可能存在著關系與關系間的關聯和引用。
在關系資料庫中,關系之間的聯系是通過公共屬性實現的。這個公共屬性經常是一個表的主鍵,同時是另一個表的外鍵。參照完整性體現在兩個方面:實現了表與表之間的聯系,外鍵的取值必須是另一個表的主鍵的有效值,或是「空」值。
參照完整性規則(Referential Integrity)要求:若屬性組F是關系模式R1的主鍵,同時F也是關系模式R2的外鍵,則在R2的關系中,F的取值只允許兩種可能:空值或等於R1關系中某個主鍵值。
R1稱為「被參照關系」模式,R2稱為「參照關系」模式。
注意:在實際應用中,外鍵不一定與對應的主鍵同名。外鍵常用下劃曲線標出。
用戶定義完整性
用戶定義完整性(User-defined Integrity)是對數據表中欄位屬性的約束,用戶定義完整性規則(User-defined integrity)也稱域完整性規則。包括欄位的值域、欄位的類型和欄位的有效規則(如小數位數)等約束,是由確定關系結構時所定義的欄位的屬性決定的。如,百分製成績的取值范圍在0~100之間等。

2設計階段編輯
一個好的資料庫完整性設計首先需要在需求分析階段確定要通過資料庫完整性約束實現的業務規則,然後在充分了解特定DBMS提供的完整性控制機制的基礎上,依據整個系統的體系結構和性能要求,遵照資料庫設計方法和應用軟體設計方法,合理選擇每個業務規則的實現方式;最後,認真測試,排除隱含的約束沖突和性能問題。基於DBMS的資料庫完整性設計大體分為以下幾個階段:
需求分析
經過系統分析員、資料庫分析員、用戶的共同努力,確定系統模型中應該包含的對象,如人事及工資管理系統中的部門、員工、經理等,以及各種業務規則。
在完成尋找業務規則的工作之後,確定要作為資料庫完整性的業務規則,並對業務規則進行分類。其中作為資料庫模式一部分的完整性設計按下面的過程進行。而由應用軟體來實現的資料庫完整性設計將按照軟體工程的方法進行。
概念設計
概念結構設計階段是將依據需求分析的結果轉換成一個獨立於具體DBMS的概念模型,即實體關系圖(ERD)。在概念結構設計階段就要開始資料庫完整性設計的實質階段,因為此階段的實體關系將在邏輯結構設計階段轉化為實體完整性約束和參照完整性約束,到邏輯結構設計階段將完成設計的主要工作。
邏輯設計
此階段就是將概念結構轉換為某個DBMS所支持的數據模型,並對其進行優化,包括對關系模型的規范化。此時,依據DBMS提供的完整性約束機制,對尚未加入邏輯結構中的完整性約束列表,逐條選擇合適的方式加以實現。
在邏輯結構設計階段結束時,作為資料庫模式一部分的完整性設計也就基本完成了。每種業務規則都可能有好幾種實現方式,應該選擇對資料庫性能影響最小的一種,有時需通過實際測試來決定。

3設計原則編輯
在實施資料庫完整性設計的時候,有一些基本的原則需要把握:
1.根據資料庫完整性約束的類型確定其實現的系統層次和方式,並提前考慮對系統性能的影響。一般情況下,靜態約束應盡量包含在資料庫模式中,而動態約束由應用程序實現。
2.實體完整性約束、參照完整性約束是關系資料庫最重要的完整性約束,在不影響系統關鍵性能的前提下需盡量應用。用一定的時間和空間來換取系統的易用性是值得的。
3.另一方面,觸發器的多級觸發不好控制,容易發生錯誤,非用不可時,最好使用Before型語句級觸發器。
4.在需求分析階段就必須制定完整性約束的命名規范,盡量使用有意義的英文單詞、縮寫詞、表名、列名及下劃線等組合,使其易於識別和記憶,如:CKC_EMP_REAL_INCOME_EMPLOYEE、PK_EMPLOYEE、CKT_EMPLOYEE。如果使用CASE工具,一般有預設的規則,可在此基礎上修改使用。
5.要根據業務規則對資料庫完整性進行細致的測試,以盡早排除隱含的完整性約束間的沖突和對性能的影響。
6.要有專職的資料庫設計小組,自始至終負責資料庫的分析、設計、測試、實施及早期維護。資料庫設計人員不僅負責基於DBMS的資料庫完整性約束的設計實現,還要負責對應用軟體實現的資料庫完整性約束進行審核。
7.應採用合適的CASE工具來降低資料庫設計各階段的工作量。好的CASE工具能夠支持整個資料庫的生命周期,這將使資料庫設計人員的工作效率得到很大提高,同時也容易與用戶溝通。

㈧ 什麼是關系完整性規則關系資料庫中,常見的完整性規則有哪些,試舉例說明

關系完整性規則即指關系的正確性、相容性和有效性。它是給定的關系模型中數據及其聯系的所有制約和依存規則,用以限定資料庫狀態及狀態變化,從而保證數據的正確、相容和有效。

關系模型的完整性舉例:

1、實體完整性

如職工表將編號作為主關鍵字,那麼,該列不得有空值,否則無法對應某個具體的職工,這樣的表格不完整,對應關系不符合實體完整性規則的約束條件。

2、參照完整性

如在學生管理資料庫中,如果將選課表作為參照關系,學生表作為被參照關系,以「學號」作為兩個關系進行關聯的屬性,則「學號「是學生關系的主關鍵字,是選課關系的外部關鍵字。選課關系通過外部關鍵字「學號」參照學生關系。

3、用戶定義的完整性

例如要求「考查」課的分數以60分或40分計,在用戶輸入「考查」課的成績時,要進行檢查,以確保滿足特定的約束要求。再如年齡屬性,如果屬於某一個學生主體,則可能要求年齡在17歲到25歲之間,而如果年輕屬性屬於某一個公司員工主體,則可能要求年齡在18歲到40歲之間等。

(8)資料庫關系完整性包括擴展閱讀

數據的完整性約束是用來確保數據的准確性和一致性。數據的完整性就是對數據的准確性和一致性的一種保證。

數據完整性(Data Integrity)是指數據的精確(Accuracy)和可靠性(Reliability)。

分為以下四類:

1、實體完整性:規定表的每一行在表中是惟一的實體。

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

3、參照完整性:是指兩個表的主關鍵字和外關鍵字的數據應一致,保證了表之間的數據的一致性,防止了數據丟失或無意義的數據在資料庫中擴散。

4、用戶定義的完整性:不同的關系資料庫系統根據其應用環境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性即是針對某個特定關系資料庫的約束條件,它反映某一具體應用必須滿足的語義要求。

㈨ 資料庫完整性包括哪些

實體完整性約束 就是主鍵約束
參照完整性約束 就是外鍵約束

用戶自定義完整性約束 一般認為是 NULL和NOT NULL ,CHECK

㈩ 關系的完整性包括哪些內容

關系完整性是為保證資料庫中數據的正確性和相容性:對關系模型提出的某種約束條件或規則,完整性通常包括實體完整性,參照完整性和用戶定義完整性(又稱域完整性其中實體完整性和參照完整性,是關系模型必須滿足的完整性約束條件。
1.實體完整性 實體完整性是指關系的主關鍵字不能取「空值\"。
一個關系對應現實世界中一個實體集。現實世界中的實體是可以相互區分、識別的,也即它們應具有某種惟一性標識。在關系模式中,以主關鍵字作為惟一性標識,而主關鍵字中的屬性(稱為主屬性)不能取空值,否則,表明關系模式中存在著不可標識的實體(因空值是「不確定\"的),這與現實世界的實際情況相矛盾,這樣的實體就不是一個完整實體。按實體完整性規則要求,主屬性不得取空值,如主關鍵字是多個屬性的組合,則所有主屬性均不得取空值。
如表1.1將編號作為主關鍵字,那麼,該列不得有空值,否則無法對應某個具體的職工,這樣的表格不完整,對應關系不符合實體完整性規則的約束條件。
2.參照完整性
參照完整性是定義建立關系之間聯系的主關鍵字與外部關鍵字引用的約束條件。
關系資料庫中通常都包含多個存在相互聯系的關系,關系與關系之間的聯系是通過公共屬性來實現的。所謂公共屬性,它是一個關系R(稱為被參照關系或目標關系)的主關鍵字,同時又是另一關系K(稱為參照關系)的外部關鍵字。如果參照關系K中外部關鍵字的取值,要麼與被參照關系R中某元組主關鍵字的值相同,要麼取空值,那麼,在這兩個關系間建立關聯的主關鍵字和外部關鍵字引用,符合參照完整性規則要求。如果參照關系K的外部關鍵字也是其主關鍵字,根據實體完整性要求,主關鍵字不得取空值,因此,參照關系K外部關鍵字的取值實際上只能取相應被參照關系R中已經存在的主關鍵字值。
在學生管理資料庫中,如果將選課表作為參照關系,學生表作為被參照關系,以「學號\"作為兩個關系進行關聯的屬性,則「學號\"是學生關系的主關鍵字,是選課關系的外部關鍵字。選課關系通過外部關鍵字「學號』』參照學生關系。
3.用戶定義完整性
實體完整性和參照完整性適用於任何關系型資料庫系統,它主要是針對關系的主關鍵字和外部關鍵字取值必須有效而做出的約束。用戶定義完整性則是根據應用環境的要求和實際的需要,對某一具體應用所涉及的數據提出約束性條件。這一約束機制一般不應由應用程序提供,而應有由關系模型提供定義並檢驗,用戶定義完整性主要包括欄位有效性約束和記錄有效性。