數(shù)據(jù)庫系統(tǒng)2-3:實(shí)體完整性約束

字號:

關(guān)系模型有三類完整性約束條件:實(shí)體完整性約束、參照完整性約束和用戶定義完整性約束。這三類約束條件中前兩類是關(guān)系模型必須滿足的完整性約束條件,由關(guān)系系統(tǒng)自動支持,而后一類約束條件是用戶針對特定的數(shù)據(jù)庫設(shè)置的約束條件。
     在關(guān)系模式中,能標(biāo)識一個元組的屬性或?qū)傩越M稱為候選碼,則選中其中一個為主碼。包含在任何一個候選碼中的屬性稱為主屬性。不包含在任何候選碼中的屬性稱為非主屬性。
    實(shí)體完整性規(guī)則: 若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。
    這個規(guī)則很容易理解,因?yàn)橹鲗傩阅軜?biāo)識關(guān)系中的元組,若取空值,便失去元組功能。例如關(guān)系模式 學(xué)生(學(xué)號,姓名,性別,年齡,籍貫,專業(yè)名稱),其中學(xué)號是主碼,而主碼對應(yīng)的屬性只有學(xué)號,所以學(xué)號也是主屬性。根據(jù)實(shí)體完整性約束規(guī)則,學(xué)號不能取空值。在學(xué)生選課關(guān)系模式中,選修(學(xué)號,課程編碼,成績)中,屬性組“學(xué)號”和“課程編碼”為主碼,同時也是主屬性,所以這兩個屬性均不能取空值。
     實(shí)體完整性規(guī)則是針對基本關(guān)系而言,即針對現(xiàn)實(shí)世界的一個實(shí)體集,而現(xiàn)實(shí)世界中的實(shí)體是可區(qū)分的。該規(guī)則的目的是利用關(guān)系模式中的主碼或主屬性來區(qū)分現(xiàn)實(shí)世界中的實(shí)體集中的實(shí)體,所以不能取空值