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