參照完整性是對(duì)什么的約束 SQL中,什么是數(shù)據(jù)完整性?數(shù)據(jù)完整性分為幾種?
SQL中,什么是數(shù)據(jù)完整性?數(shù)據(jù)完整性分為幾種?數(shù)據(jù)完整性是指數(shù)據(jù)的準(zhǔn)確性和可靠性。提出防止數(shù)據(jù)庫中存在不符合語義規(guī)定的數(shù)據(jù),防止錯(cuò)誤信息的輸入和輸出導(dǎo)致無效操作或錯(cuò)誤信息。數(shù)據(jù)完整性分為四類:實(shí)體完
SQL中,什么是數(shù)據(jù)完整性?數(shù)據(jù)完整性分為幾種?
數(shù)據(jù)完整性是指數(shù)據(jù)的準(zhǔn)確性和可靠性。提出防止數(shù)據(jù)庫中存在不符合語義規(guī)定的數(shù)據(jù),防止錯(cuò)誤信息的輸入和輸出導(dǎo)致無效操作或錯(cuò)誤信息。數(shù)據(jù)完整性分為四類:實(shí)體完整性、域完整性、引用完整性和用戶定義完整性。數(shù)據(jù)庫使用多種方法來保證數(shù)據(jù)的完整性,包括外鍵、約束、規(guī)則和觸發(fā)器。該制度很好地處理了四者之間的關(guān)系,并根據(jù)不同的具體情況采用不同的方法,相輔相成。
SQL基本表的創(chuàng)建中是通過什么實(shí)現(xiàn)參照完整性規(guī)則的?
例如,在類表中有一個(gè)學(xué)校表、一個(gè)類表、一個(gè)學(xué)生表、一個(gè)類表、一個(gè)學(xué)校,創(chuàng)建一個(gè)外鍵約束來限制學(xué)生表中的類,并創(chuàng)建一個(gè)外鍵約束。例如,在創(chuàng)建之后,我在張三(1類)、李四(2類)和王武(3類)的數(shù)據(jù)創(chuàng)建之后插入以下數(shù)據(jù)。如果沒有外鍵,我就把大學(xué)刪除了,那么班級(jí)里的數(shù)據(jù)就有問題了。查詢學(xué)校的班級(jí),有數(shù)據(jù),但查詢學(xué)校,發(fā)現(xiàn)學(xué)校不存在。如果我刪除2012級(jí)3班,王武的數(shù)據(jù)會(huì)有問題。去查,顯示王武班是3班,但班表上沒有這個(gè)記錄。這導(dǎo)致數(shù)據(jù)不完整。如果存在外鍵約束。當(dāng)我刪除大學(xué)時(shí),默認(rèn)情況下,數(shù)據(jù)庫會(huì)拒絕我的操作,并提示我有外鍵數(shù)據(jù),所以我不能刪除2012級(jí)3班。默認(rèn)情況下,數(shù)據(jù)庫會(huì)拒絕我的操作,并提示我有外鍵數(shù)據(jù),不能刪除。我要把王武的班從三班改到二班,確定2012級(jí)三班以下沒有學(xué)生,然后我就可以刪除2012級(jí)三班了
事實(shí)上,你可以直接查書。
有三種數(shù)據(jù)庫完整性約束:實(shí)體完整性約束、引用完整性約束和用戶定義的完整性約束。
實(shí)體完整性:如果屬性m是關(guān)系R的主要屬性,那么m不能為空。
引用完整性:如果屬性m是關(guān)系R的外部代碼,則m的值為空或等于引用表的主代碼值。(大致來說,表中外鍵的值應(yīng)該與連接表的主鍵的值一致。如果不一致,則外鍵的值應(yīng)設(shè)置為空)
用戶定義的完整性:用戶為特定關(guān)系定義的完整性約束。有三種情況:列值不為空,列值唯一,列值是否滿足布爾表達(dá)式(檢查)
創(chuàng)建表學(xué)生(
SnO int primary key,-main code,entity integrity,main code不為空
courseno int foreign key references course,-external code,引用完整性
coursename nvarchar(50)不為空,--用戶定義的完整性,課程名稱不為空
sname nvarchar(50)唯一,--用戶定義的完整性,學(xué)生名稱唯一
sage int,
check(sage>0和sage<100)-用戶定義的完整性,檢查學(xué)生年齡是否在正常范圍(0-100)
數(shù)據(jù)庫完整性約束的主要功能是保證數(shù)據(jù)的正確性和兼容性。
例如,如果數(shù)據(jù)庫中有年齡項(xiàng)目,則應(yīng)確保該項(xiàng)目不是負(fù)數(shù),并且有性別項(xiàng)目。你應(yīng)該確保它只能是“男”或“女”等。簡(jiǎn)而言之,你應(yīng)該確保數(shù)據(jù)是語義和正確的。