更新時(shí)間:2022-11-30 來(lái)源:黑馬程序員 瀏覽量:
為了保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性和相容性,需要對(duì)關(guān)系模型進(jìn)行完整性約束。完整性通常包括實(shí)體完整性、參照完整性和用戶自定義完整性,具體解釋如下。
(1)實(shí)體完整性。實(shí)體完整性要求關(guān)系中的主鍵不能重復(fù),且不能取空值??罩凳侵覆恢馈⒉淮嬖诨驘o(wú)意義的值。由于關(guān)系中的元組對(duì)應(yīng)現(xiàn)實(shí)世界中互相之間可區(qū)分的個(gè)體,這些個(gè)體使用主鍵來(lái)唯一標(biāo)識(shí),若主鍵為空或重復(fù),則無(wú)法唯一標(biāo)識(shí)每個(gè)個(gè)體。
(2)參照完整性。參照完整性要求關(guān)系中的外鍵要么取空值,要么取被參照關(guān)系中的某個(gè)元組的主鍵值。例如,通過(guò)學(xué)生所屬的班級(jí)號(hào)可以找到對(duì)應(yīng)的班級(jí),這就符合參照完整性;而如果對(duì)應(yīng)的班級(jí)被刪除了,學(xué)生通過(guò)班級(jí)號(hào)找不到班級(jí),就不符合參照完整性。
(3)用戶自定義完整性。用戶自定義完整性是用戶針對(duì)具體的應(yīng)用環(huán)境定義的完整性約束條件,由DBMS檢查用戶自定義的完整性。例如,用戶名不允許重復(fù)。