1、碼=超鍵:能夠唯一標識一條記錄的屬性或屬性集。
標識性:一個數據表的所有記錄都具有不同的超鍵
非空性:不能為空
有些時候也把碼稱作“鍵”
2、候選鍵=候選碼:能夠唯一標識一條記錄的最小屬性集
標識性:一個數據表的所有記錄都具有不同的候選鍵
最小性:任一候選鍵的任何真子集都不能唯一標識一個記錄(比如在成績表中(學號,課程號)是一個候選鍵,單獨的學號,課程號都不能決定一條記錄)
非空性:不能為空
候選鍵是沒有多余屬性的超鍵
舉例:學生ID是候選碼,那么含有候選碼的都是碼。
少部分地方也有叫超級碼的,但是見得不多
3、主鍵=主碼:某個能夠唯一標識一條記錄的最小屬性集(是從候選碼里人為挑選的一條)
唯一性:一個數據表只能有一個主鍵
標識性:一個數據表的所有記錄都具有不同的主鍵取值
非空性:不能為空
人為的選取某個候選碼為主碼
4、主屬性 包含在任一候選碼中的屬性稱主屬性。簡單來說,主屬性是候選碼所有屬性的並集
非主屬性 不包含在候選碼中的屬性稱為非主屬性。 非主屬性是相對於主屬性來定義的。
5、外鍵(foreign key):子數據表中出現的父數據表的主鍵,稱為子數據表的外鍵。
6、全碼:當所有的屬性共同構成一個候選碼時,這時該候選碼為全碼。(教師,課程,學生)假如一個教師可以講授多門課程,某門課程可以有多個教師講授,學生可以聽不同教師講授的不同課程,那么,要區分關系中的每一個元組,這個關系模式R的候選碼應為全部屬性構成 (教師、課程、學生),即主碼。
7、代理鍵:當不適合用任何一個候選鍵作為主鍵時(如數據太長等),添加一個沒有實際意義的鍵作為主鍵,這個鍵就是代理鍵。(如常用的序號1、2、3)
8、自然鍵:自然生活中唯一能夠標識一條記錄的鍵(如身份證)