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