三者定义
码:表中的某个属性组,它可以唯一确定一个元组。
候选码:若关系中某一属性组的值能唯一的标识一个元组,则称该属性组为候选码。
主码:若一个关系有多个候选码,择选其中一个为主码。
候选码中的所有属性都是必须的,即只有这些属性在一起时才能确定下一个元组,而码却没有最少属性的要求。
例如在学生表S中有如下关系:
S(sid,name,dept)
对于给定一个学号sid便可唯一的确定这个学生的姓名name,所在系dept,所以sid是候选码。
对于(sid,name)的组合也可以唯一确定这个学生(实际上只要包含sid就可以唯一确定这个学生),所以(sid,name)是码,同理(sid,dept)也可以是码。
候选码的个数不等于候选码中属性的个数。
主码不等于主属性,主属性是候选码属性组中所包含的每个属性。
例如在学生选课表SC中有如下关系:
SC(sid,cid,grade)
对于每个学生给定学号sid,和他选课的课程号cid,便可以唯一确定他所选课程的分数grade,所以(sid,cid)是候选码,且是一个候选码,其中sid,cid为两个主属性。主码是从多个候选码中挑一个,由于SC关系只有一个候选码,所以(sid,cid)就是主码。