码-主码-候选码辨析

三者定义

码:表中的某个属性组,它可以唯一确定一个元组。

候选码:若关系中某一属性组的值能唯一的标识一个元组,则称该属性组为候选码。

主码:若一个关系有多个候选码,择选其中一个为主码

 

候选码中的所有属性都是必须的,即只有这些属性在一起时才能确定下一个元组,而码却没有最少属性的要求。

例如在学生表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)是候选码,且是一个候选码,其中sidcid为两个主属性。主码是从多个候选码中挑一个,由于SC关系只有一个候选码,所以(sid,cid)就是主码。

 

原文地址:https://www.cnblogs.com/kanjian2016/p/6964772.html