更新時間:2023年06月12日18時02分 來源:傳智教育 瀏覽次數(shù):
為保證數(shù)據(jù)庫中數(shù)據(jù)的正確性和相容性,需要對關(guān)系模型進(jìn)行完整性約束,所約束的完整性通常包括域完整性、實體完整性、參照完整性和用戶自定義完整性、具體介紹如下。
(1)域完整性。域完整性是保證數(shù)據(jù)庫字段取值的合理性。域完整性約束包括檢查(CHEC)、默認(rèn)值(DEFAULT)、不為空(NOT NULL)、外鍵(FOREIGN KEY)等約束??梢詫Σ迦氲淖侄沃颠M(jìn)行檢查、保證其符合設(shè)置的域完整性約束。
(2)實體完整性。實體完整性要求關(guān)系中的主鍵不能重復(fù),且不能取空值??罩凳侵覆恢馈⒉淮嬖诨驘o意義的值。由于關(guān)系中的元組對應(yīng)現(xiàn)實世界中互相之間可區(qū)分的個體,因此這些個體使用主鍵來唯一標(biāo)識,若主鍵為空或重復(fù),則無法唯一標(biāo)識每個個體。
(3)參照完整性。參照完整性定義了外鍵和主鍵之間的引用規(guī)則,要求關(guān)系中的外鍵要么取空值,要么取參照關(guān)系中的某個元組的主鍵值。例如,學(xué)生表中的班級號對應(yīng)班級表中的班級號,按照參照完整性規(guī)則,學(xué)生的班級號只能取空值或班級表中已經(jīng)存在的某個班級號。當(dāng)取空值時表示該學(xué)生尚未分配班級,當(dāng)取某個班級號時,該班級號必須是班級表中已經(jīng)存在的某個班級號。
(4)用戶自定義完整性。用戶自定義完整性是用戶針對具體的應(yīng)用環(huán)境定義的完整性約束條件,由DBMS檢查用戶自定義完整性。例如,創(chuàng)建數(shù)據(jù)表時,定義用戶名不允許重復(fù)的約束。