每個字段可以定義多個check約束 數(shù)據(jù)完整性5個原則?
數(shù)據(jù)完整性5個原則?數(shù)據(jù)庫完整性對于數(shù)據(jù)庫應用系統(tǒng)非常重要,其作用主要體現(xiàn)在以下幾個方面:1.數(shù)據(jù)庫完整性約束可以防止合法用戶在使用數(shù)據(jù)庫時向數(shù)據(jù)庫添加語義數(shù)據(jù)。2.使用基于DBMS的完整性控制機制實
數(shù)據(jù)完整性5個原則?
數(shù)據(jù)庫完整性對于數(shù)據(jù)庫應用系統(tǒng)非常重要,其作用主要體現(xiàn)在以下幾個方面:
1.數(shù)據(jù)庫完整性約束可以防止合法用戶在使用數(shù)據(jù)庫時向數(shù)據(jù)庫添加語義數(shù)據(jù)。
2.使用基于DBMS的完整性控制機制實現(xiàn)業(yè)務規(guī)則,易于定義和理解,可以降低應用程序的復雜度,提高應用程序的運行效率。同時,基于DBMS的完整性控制機制是集中管理,所以數(shù)據(jù)庫比應用程序更容易實現(xiàn)完整性。
3.合理的數(shù)據(jù)庫完整性設計可以兼顧數(shù)據(jù)庫完整性和系統(tǒng)效率。比如在加載大量數(shù)據(jù)時,只要在加載前暫時使基于DBMS的數(shù)據(jù)庫完整性約束失效,然后生效,就可以在不影響數(shù)據(jù)庫完整性的情況下保證數(shù)據(jù)加載的效率。
4.在應用軟件的功能測試中,完善的數(shù)據(jù)庫完整性有助于盡早發(fā)現(xiàn)應用軟件的錯誤。
數(shù)據(jù)庫完整性約束可以分為六類:列級靜態(tài)約束、元組級靜態(tài)約束、關系級靜態(tài)約束、列級動態(tài)約束、元組級動態(tài)約束和關系級動態(tài)約束。動態(tài)約束通常由應用軟件實現(xiàn)。不同DBMS支持的數(shù)據(jù)庫完整性基本相同。
關系模型
關系完整性用于確保數(shù)據(jù)庫中數(shù)據(jù)的正確性。在更新、插入或刪除時,系統(tǒng)應檢查數(shù)據(jù)的完整性并驗證其約束,即關系模型的完整性規(guī)則。關系模型中有四種類型的完整性約束:實體完整性、域完整性、參照完整性和用戶定義完整性,其中實體完整性和參照完整性約束被稱為關系的兩個不變量。
實體
關系數(shù)據(jù)庫的完整性規(guī)則是數(shù)據(jù)庫設計的重要內(nèi)容。大多數(shù)關系數(shù)據(jù)庫管理系統(tǒng)RDBMS可以自動支持關系完整性規(guī)則。只要用戶在定義(建立)表的結(jié)構(gòu)時注意選擇主鍵、外鍵及其引用表,RDBMS就能自動實現(xiàn)其完整性約束。
(1)實體完整性。實體完整性是指表中行的完整性。主要用于保證操作的數(shù)據(jù)(記錄)非空、唯一、不重復。即實體完整性要求每個關系(表)只有一個主鍵,每個主鍵的值必須唯一,不允許 "零 "或者重復。
(2)實體完整性規(guī)則要求。如果屬性A是基本關系R的主屬性,則屬性A不能為空,即主屬性不能為空。其中NULL不是0、空格或空字符串,但沒有值。事實上,空值指的是一個臨時的值沒有儲值 ", "未知 "or "無意義 "。因為主鍵是實體數(shù)據(jù)(記錄)的唯一標識,如果主屬性為空,那么在關系中就會出現(xiàn)無法識別(區(qū)分)的實體數(shù)據(jù)(記錄),與實體的定義相矛盾,但是對于非主屬性,可以取空值,所以這個規(guī)則叫做實體完整性規(guī)則。如果主屬性中沒有空值 "學生編號 "(列)在學籍關系(表)中,否則學籍表中的數(shù)據(jù)(記錄)無法調(diào)用。
域完整性
域完整性意味著數(shù)據(jù)庫表中的列必須滿足特定的數(shù)據(jù)類型或約束。其中,約束條件包括取值范圍、精度等規(guī)定。表中的校驗、外鍵約束以及D
數(shù)據(jù)庫中怎么設置成績字段的大于等于0、小于等于100檢查約束?
構(gòu)建表時,需要使用SQL語句并添加check(字段名0和字段名100)。PS:例子如下:創(chuàng)建表Biao(CJNumber(3),Check (CJ0和CJ 100));