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

