首页 > 试题广场 >

一个表的候选码一定是主码。

[单选题]
 一个表的候选码一定是主码。 
  • 正确
  • 错误
码是数据系统中的基本概念。所谓码就是能唯一标识实体的属性,他是整个实体集的性质,而不是单个实体的性质。它包括超码,候选码,主码。  超码是一个或多个属性的集合,这些属性可以让我们在一个实体集中唯一地标识一个实体。如果K是一个超码,那么K的任意超集也是超码,也就是说如果K是超码,那么所有包含K的集合也是超码。  候选码是从超码中选出的,自然地候选码也是一个或多个属性的集合。因为超码的范围太广,很多是我们并不感兴趣即无用处的。所以候选码是最小超码,它们的任意真子集都不能成为超码。例如,如果K是超码,那么所有包含K的集合都不能是候选码;如果K,J都不是超码,那么K和J组成的集合(K,J)有可能是候选码。  是从多个候选码中任意选出一个做为主码,如果候选码只有一个,那么候选码就是主码。虽然说主码的选择是比较随意的,但在实际开发中还是要靠一定的经验,不然开发出来的系统会出现很多问题。一般来说主码都应该选择那此从不或者极少变化的的属性。
超码:一个或多个属性的集合,这些属性的组合可以使我们在一个实体集中唯一的标识一个实体。
发表于 2019-05-09 22:23:13 回复(0)
更多回答
答案为B。
主码是人为设置的,所以不存在这种一定关系。
举个例子
学生表中:
属性:学号、姓名、性别、年龄、班级、系
一般学号就可以唯一的标识出一个同学的身份,我们可以设置学号为主码。是最简单的候选码。
那么 学号+姓名当然也可以作为唯一标识,也可以用来作为候选码。
同理,学号+姓名+性别也可以作为候选码。以此类推,最极端的情况是全表都用来做主码,这时的主码也叫全码。
发表于 2018-08-23 15:58:13 回复(0)

例如:学生是一个实体,则学生的集合是一个实体集,而超码是用来在学生的集合中区分不同的学生。假设学生(实体)具有多个属性:学号,身份证号,姓名,性别。因为通过学号可以找到唯一一个学生,所以{学号}是一个超码,同理{学号,身份证号}、{学号,身份证号,姓名}、{学号,身份证号,姓名,性别}、{身份证号}、{身份证号,姓名}、{身份证号,姓名、性别}也是超码.在这里,因为不同的学生可能拥有相同的姓名,所以姓名不可以区别一个学生,既{姓名}不是一个超码,{性别}、{姓名、性别}也不是。

虽然超码可以唯一标识一个实体,但是可能大多数超码中含有多余的属性。所以我们需要候选码。


候选码:如果任意超码的真子集不能包括超码,则称其为候选码;超码包括候选码;

在上例中,只有{学号}、{身份证号}都是候选码;另外,如果性别和姓名可以唯一标识一个学生,则{姓名,性别}也为超码。


主码:被数据库设计者选中的,用来在同一实体集中区分不同实体的候选码;此外,应该选择哪些从不或极少变化的属性;

发表于 2017-09-05 15:21:35 回复(0)
从候选码中选出主码,候选码有多个,主码唯一。
发表于 2019-02-11 11:08:48 回复(0)
主码是从候选码里面选择出来的
发表于 2021-07-24 22:32:52 回复(0)

主码是从候选码中选出的 必然是候选码一般主码特殊 题目叙述反了

发表于 2020-02-07 13:08:08 回复(0)
主码只有一个候选码可以有多个
编辑于 2024-03-21 02:34:06 回复(0)
一个表可以有多个候选码,可以选择一个作为主码,但一个表只能有一个主码只有
发表于 2019-11-27 16:08:57 回复(0)