码有三个概念:
Ⅰ. 超码:
- 能唯一标识实体的属性或属性组称作超码。
例如ID就是一个超码。 - 超码的任意超集也是超码。
例如ID和任意属性的组合都是超码。
Ⅱ. 候选码:
- 超码这个集合中,如果提取它们的某个子集,这个子集是可以用来区分同一个表中的元组,且该子集只有一个元素或者再从中提取的子集无法用来区分同一个表中的元组,这个集合就是候选码。一个关系表中至少有一个候选码。
例如超码(ID,name)其子集(不包括自身)(ID)可以用来区分同一个表中的元组,那么(ID,name)不是超码。
Ⅲ. 主码:
- 从所有候选码中选定一个用来区别同一实体集中的不同实体称作主码,一个实体集中任意两个实体集在主码上取值不能相同。
Ⅳ. 全码:
个关系中所有属性组组成该关系模式的 候选码,称为 全码。