⑴ sql数据键 侯选键 主键 外健之间的区别
例如一个表id,name,sex,age四个字段,也就是四个属性.
其中id,name是能唯一标识一条记录的字段集,也就是属性集.
候选键(Candidate Key):不含有多余属性的超键称为候选键。也就是在候选键中,若要再删除属性,就不能唯一标识元组了。
id,name是候选键,因为删除了哪一个属性,都不能唯一标识一个元组。
主键:(Primary Key):用户选作元组标识的一个侯选键称为主键。一般,如不加说明,则键是指主键。
如果你选择一个候选键作为标识,这个候选键就称为主键,比如说上面的表里还有个字段叫no,代表你的学号,那么no就也是一个候选键,但你没用它做主键。
外键(foreign key):一张表(关系)的列(属性)它同时存在表1和表2中,它不是表1的主键,而是表2的主键,就可以说他是表1的外键
⑵ 什么是候选码、主码、全码、外码
候选码:若关系中的一个属性或属性组的值能够唯一地标识一个元组,且他的真子集不能唯一的标识一个元组,则称这个属性或属性组做候选码。
主码:主码一般指主关键字。主关键字是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定记录。
全码:All-key关系模型的所有属性组组成该关系模式的候选码,称为全码。即所有属性当作一个码。若关系中只有一个候选码,且这个候选码中包含全部属性,则该候选码为全码。
外码:某个关系的主码相应的属性在另一关系中出现,此时该主码在就是另一关系的外码。
(2)sql候选码和外部码有什么区别扩展阅读:
主码作用:
1、保证实体的完整性;
2、加快数据库的操作速度;
3、在表中添加新记录时,ACCESS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复;
4、ACCESS自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记录。
参考资料:网络-候选码
网络-主码
⑶ sql数据库中主码外码候选码等等一共有哪些码 都是什么意思
候选码是能够唯一标识一个记录的一组或一个属性,主码是从多个候选码中选择出的一组
外码是在本关系中的属性,但在另一个关系中作为主码的属性
⑷ 数据库中数据库中 码、候选码、外部码之间的关系是什么
主码是从候选码中挑出来的一个作为主码,主码和外部码提供了一种表示不同关系之间相互关联的手段。
数据库中码又称数据库主码,是数据库中唯一能标识一个记录值的内部记录标志符。
若关系中的一个属性或属性组的值能够唯一地标识一个元组,且他的真子集不能唯一的标识一个元组,则称这个属性或属性组做候选码。
关系模式R中属性或属性组X并非R的候选码,但X是另一个关系模式的候选码,且X与R的主码对应,则称X是R的外部码,也称外码。
(4)sql候选码和外部码有什么区别扩展阅读:
在两个表的关系中,主码用来在一个表中引用来自于另一个表中的特定记录。主码表定义的一部分。一个表的主键可以由多个主码共同组成,并且主码的列不能包含空值。主码是可选的,并且可在 CREATE TABLE 或 ALTER TABLE 语句中定义。
一个表中只能有一个主键。如果在其他字段上建立主键,则原来的主键就会取消。主键的值不可重复,也不可为空(NULL)。
⑸ 候选码与码的区别
码是关系模式中一个重要概念(候选码,主码,外码,全码)。
候选码是码的一种,设K为关系模式R<U,F>中的属性或属性组合,若K--F-->U(U对K完全函数依赖),则K为R的候选码。
⑹ 请教候选码与主码有区别吗
一、含义不同:
主码唯一标识,候选码是可以作为主码的码,主码一定是候选码的子集,但候选码不一定是主码。
二、作用不同:
主码:被数据库设计者选中的,用来在同一实体集中区分不同实体的候选码;此外,应该选择哪些从不或极少变化的属性;
候选码:如果任意超码的真子集不能包括超码,则称其为候选码;超码包括候选码;
建立主键应该遵循的原则
主键应当是对用户没有意义的。如果用户看到了一个表示多对多关系的连接表中的数据,并抱怨它没有什么用处,那就证明它的主键设计地很好。
永远也不要更新主键。实际上,因为主键除了唯一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。
以上内容参考:网络-主关键字
⑺ 数据库中的键码,候选键码,主键码,公共键码,外键码有什么区别求高人,谢谢了
楼主写的都不是标准的吧,键码:就是具有唯一性的属性,或者几个最小单位的组合能够体现唯一性,而候选键和主键都具有唯一性,本来两个没有区别,但是多个可以表示唯一性的属性时,你必然会选择其中一个表示这个表的唯一性,那这个就是主键码,剩下的唯一性的属性自然都是候选码,对于公共键,汗,表示没听过,书上貌似也没有,不知是不是你写错了,还是怎么的,而外键码:举个例子,有两个表,在其中一个表中的主键,却是另外一个表的候选码,OK,对于那个候选码的表,这个属性就是外键码了。
不知说的请不清,但还希望采纳!不懂的地方也可以继续问我,知道的,就给你解答
⑻ 数据库应用中,主码和码还有候选码有区别么都代表什么意思
码是数据系统中的基本概念。所谓码就是能唯一标识实体的属性,他是整个实体集的性质,而不是单个实体的性质。它包括超码,候选码,主码。超码是一个或多个属性的集合,这些属性可以让我们在一个实体集中唯一地标识一个实体。如果k是一个超码,那么k的任意超集也是超码,也就是说如果k是超码,那么所有包含k的集合也是超码。候选码是从超码中选出的,自然地候选码也是一个或多个属性的集合。因为超码的范围太广,很多是我们并不感兴趣即无用处的。所以候选码是最小超码,它们的任意真子集都不能成为超码。例如,如果k是超码,那么所有包含k的集合都不能是候选码;如果k,j都不是超码,那么k和j组成的集合(k,j)有可能是候选码。是从多个候选码中任意选出一个做为主码,如果候选码只有一个,那么候选码就是主码。虽然说主码的选择是比较随意的,但在实际开发中还是要靠一定的经验,不然开发出来的系统会出现很多问题。一般来说主码都应该选择那此从不或者极少变化的的属性。
⑼ 主码、候选码、外部码之间的联系与区别
主码包含候选码和码,候选码包含码。
1、含义不同:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码;若一个关系有多个候选码,其中任何一个都可以做主码,主码的诸属性就称为主属性;一个表中如果有一个字段,存储另外一个表的主键,这个字段就是外键,又称外码。
2、实际操作不同:码是可以确定一个元组的所有信息的属性名或属性名组。
例如在{a,b,c,d}中,假设知道a的值就能确定a,b,c,d的值,假设知道c,d的值就可以确定a,b,c,d的值,那么{a}就是码,{c,d}就是码。
并且{a,b},{a,c},{a,b,c},{a,b,c,d}等也都是码,因为它们也可以确定一个元组的所有值,即使很多余。
候选码的真子集中不存在码,候选码可以有多个。
就上面的例子而言,{a}是候选码,{c,d}是候选码,因为它们的真子集中不存在码。
而诸如{a,b}并不是候选码,因为它的真子集中含有{a},且{a}是码。
主码就是主键的意思,主码是任意一个候选码,还是上面的例子,主码是候选码{a},{c,d}中的其中一个,既可以是{a},也可以是{c,d}。
3、定义概念不同:码是数据系统中的基本概念。所谓码就是能唯一标识实体的属性,他是整个实体集的性质,而不是单个实体的性质。它包括超码,候选码,主码。
超码是一个或多个属性的集合,这些属性可以让我们在一个实体集中唯一地标识一个实体。如果K是一个超码,那么K的任意超集也是超码,也就是说如果K是超码,那么所有包含K的集合也是超码。
候选码是从超码中选出的,自然地候选码也是一个或多个属性的集合。因为超码的范围太广,很多是我们并不感兴趣即无用处的。
所以候选码是最小超码,它们的任意真子集都不能成为超码。例如,如果K是超码,那么所有包含K的集合都不能是候选码;如果K,J都不是超码,那么K和J组成的集合(K,J)有可能是候选码。
按照上面码的定义看看外码的定义如下:
设F是基本关系R的一个或者一组属性,但不是关系R的码。K(s)是基本关系S的主码。如果F与K(s)相对对应,则称F是R的外码。
综上:F是非主属性组,必定可以取空值,但是课本例子包括课后题都说F可以是主属性,当为主属性时,为了保持实体完整性,不可以取空值。
(9)sql候选码和外部码有什么区别扩展阅读:
码=超键:能够唯一标识一条记录的属性或属性集。
标识性:一个数据表的所有记录都具有不同的超键;非空性:不能为空;有些时候也把码称作“键”。
候选键=候选码:能够唯一标识一条记录的最小属性集;标识性:一个数据表的所有记录都具有不同的候选键;
最小性:任一候选键的任何真子集都不能唯一标识一个记录(比如在成绩表中(学号,课程号)是一个候选键,单独的学号,课程号都不能决定一条记录)。
非空性:不能为空;候选键是没有多余属性的超键;举例:学生ID是候选码,那么含有候选码的都是码,少部分地方也有叫超级码的,但是见得不多。
主键=主码:某个能够唯一标识一条记录的最小属性集(是从候选码里人为挑选的一条)。
唯一性:一个数据表只能有一个主键;标识性:一个数据表的所有记录都具有不同的主键取值;
非空性:不能为空;人为的选取某个候选码为主码。
⑽ 数据库中什么是超码、候选码、主码
码是数据系统中的基本概念。所谓码就是能唯一标识实体的属性,他是整个实体集的性质,而不是单个实体的性质。它包括超码,候选码,主码。超码是一个或多个属性的集合,这些属性可以让我们在一个实体集中唯一地标识一个实体。如果K是一个超码,那么K的任意超集也是超码,也就是说如果K是超码,那么所有包含K的集合也是超码。候选码是从超码中选出的,自然地候选码也是一个或多个属性的集合。因为超码的范围太广,很多是我们并不感兴趣即无用处的。所以候选码是最小超码,它们的任意真子集都不能成为超码。例如,如果K是超码,那么所有包含K的集合都不能是候选码;如果K,J都不是超码,那么K和J组成的集合(K,J)有可能是候选码。是从多个候选码中任意选出一个做为主码,如果候选码只有一个,那么候选码就是主码。虽然说主码的选择是比较随意的,但在实际开发中还是要靠一定的经验,不然开发出来的系统会出现很多问题。一般来说主码都应该选择那此从不或者极少变化的的属性。
超码:一个或多个属性的集合,这些属性的组合可以使我们在一个实体集中唯一的标识一个实体。
例如:学生是一个实体,则学生的集合是一个实体集,而超码是用来在学生的集合中区分不同的学生。假设学生(实体)具有多个属性:学号,身份证号,姓名,性别。因为通过学号可以找到唯一一个学生,所以{学号}是一个超码,同理{学号,身份证号}、{学号,身份证号,姓名}、{学号,身份证号,姓名,性别}、{身份证号}、{身份证号,姓名}、{身份证号,姓名、性别}也是超码.在这里,因为不同的学生可能拥有相同的姓名,所以姓名不可以区别一个学生,既{姓名}不是一个超码,{性别}、{姓名、性别}也不是。
虽然超码可以唯一标识一个实体,但是可能大多数超码中含有多余的属性。所以我们需要候选码。
候选码:如果任意超码的真子集不能包括超码,则称其为候选码;超码包括候选码;
在上例中,只有{学号}、{身份证号}都是候选码;另外,如果性别和姓名可以唯一标识一个学生,则{姓名,性别}也为超码。
主码:被数据库设计者选中的,用来在同一实体集中区分不同实体的候选码;此外,应该选择哪些从不或极少变化的属性;
总结:所有码都是一个集合。所有可以用来在实体集中标识唯一实体的集合,都是超码。如果任意超码的真子集不能包括超码,则称其为候选码。被数据库设计者选中的,用来在同一实体集中区分不同实体的候选码。超码包括候选码,候选码包括主码