主碼唯一標識,候選碼是可以作爲主碼的碼,主碼一定是候選碼的子集,但候選碼不一定是主碼。主碼是被數據庫設計者選中的,用來在同一實體集中區分不同實體的候選碼。候選碼是如果任意超碼的真子集不能包括超碼,則稱其爲候選碼,超碼包括候選碼。
所有碼都是一個集合,所有可以用來在實體集中標識唯一實體的集合,都是超碼。如果任意超碼的真子集不能包括超碼,則稱其爲候選碼。被數據庫設計者選中的,用來在同一實體集中區分不同實體的候選碼。超碼包括候選碼,候選碼包括主碼。若關係中的某一屬性或屬性組的值能唯一的標識一個元組,而其任何、子集都不能再標識,則稱該屬性組爲候選碼。簡單的說,候選碼就是可以被選爲主碼的屬性或屬性組。當一個關係有N個屬性或屬性組可以唯一標識時,則說明該關係有N個候選碼,可以選定其中一個作爲主碼。