数据库原理 码和候选码的区别

2024-12-15 14:48:10
推荐回答(4个)
回答1:

先说候选码,候选码就是可以区别一个元组(即表中的一行数据)的属性或属性的集合,比如学生表student(id,name,age,sex,deptno),其中的id是可以唯一标识一个元组的,所以id是可以作为候选码的,既然id都可以做候选码了,那么id和name这两个属性的组合可不可以唯一区别一个元组呢?显然是可以的,此时的id可以成为码,id和name的组合也可以成为码,但是id和name的组合不能称之为候选码,因为即使去掉name属性,剩下的id属性也完全可以唯一标识一个元组,就是说,候选码中的所有属性都是必须的,缺少了任何一个属性,就不能唯一标识一个元组了,给候选码下一个精确的定义就是:可以唯一标识一个元组的最少的属性集合。而码是没有最少属性这个要求的。另外,一个表的候选码可能有多个,从这些个候选码中选择一个做为主码,至于选择哪一个候选码,这个是无所谓的,只要是从候选码中选的就行。

至于主属性,刚才提到了,一个表可以有多个候选码,那么对于某个属性来说,如果这个属性存在于所有的候选码中,它就称之为主属性

说了这么多,有点乱,希望你明白了

回答2:

  码是数据系统中的基本概念。
  所谓码就是能唯一标识实体的属性,他是整个实体集的性质,而不是单个实体的性质。它包括超码,候选码,主码。所有码都是一个集合。所有可以用来在实体集中标识唯一实体的集合,都是超码。如果任意超码的真子集不能包括超码,则称其为候选码。被数据库设计者选中的,用来在同一实体集中区分不同实体的候选码。超码包括候选码,候选码包括主码。

  候选码(Candidatekey)
  若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码。
  简单的情况:候选码只包含一个属性。

回答3:

主码表示可以唯一表示一条记录的东西。
比如记录一个学生,你可以通过学号或者身份证找到唯一的一个同学。
这时候学号和身份证号码就是候选码,表示你可以从里面选一个出来做主码。比如选中学号标识你,学号就是主码了(主键)。

回答4:

主码,简单地说,在一个关系表中主码能够唯一地标识每一个元组。也就是说,元组在主码属性上是不能有重复的。例如,把学生表的学号当主码的话,就不能有两个学号是一样的学生。
主码是一个属性或属性组。
候选码,一个关系表里只能有一个主码,成为主码的条件上面说了:够唯一地标识每一个元组。凡是达到这个条件的属性,都是候选码。主码就是从候选码里选出来的。
主属性,当主码只有一个属性时,那主属性自然是主码了。当主码是一个属性组时,这个属性组包含的属性都是主属性。
换一种说法,非主属性就是除开主码以外的属性。这样应该好理解多了。