候选码、主码、全码、外码、主属性、主键、主关键字、非主属性
一、讲解
首先说明 键字=码字,所以 主键=主码=主关键字,候选键=候选码=候选关键字…
所谓关系键,指的是一个表中的一个(或一组)属性,用来标识该表的每一行或与另一个表产生联系。
话不多说,上图:
相信这个图已经画得很清晰了,下面逐一解释:
1、码=超键:能够唯一标识一条记录的属性或属性集。
标识性:一个数据表的所有记录都具有不同的超键
非空性:不能为空
有些时候也把码称作“键”
2、候选键=候选码:能够唯一标识一条记录的最小属性集
标识性:一个数据表的所有记录都具有不同的候选键
最小性:任一候选键的任何真子集都不能唯一标识一个记录(比如在成绩表中(学号,课程号)是一个候选键,单独的学号,课程号都不能决定一条记录)
非空性:不能为空
候选键是没有多余属性的超键
举例:学生ID是候选码,那么含有候选码的都是码。
少部分地方也有叫超级码的,但是见得不多
3、主键=主码:某个能够唯一标识一条记录的最小属性集(是从候选码里人为挑选的一条)
唯一性:一个数据表只能有一个主键
标识性:一个数据表的所有记录都具有不同的主键取值
非空性:不能为空
人为的选取某个候选码为主码
4、主属性 包含在任一候选码中的属性称主属性。简单来说,主属性是候选码所有属性的并集
非主属性 不包含在候选码中的属性称为非主属性。 非主属性是相对于主属性来定义的。
5、外键(foreign key):子数据表中出现的父数据表的主键,称为子数据表的外键。
6、全码:当所有的属性共同构成一个候选码时,这时该候选码为全码。(教师,课程,学生)假如一个教师可以讲授多门课程,某门课程可以有多个教师讲授,学生可以听不同教师讲授的不同课程,那么,要区分关系中的每一个元组,这个关系模式R的候选码应为全部属性构成 (教师、课程、学生),即主码。
7、代理键:当不适合用任何一个候选键作为主键时(如数据太长等),添加一个没有实际意义的键作为主键,这个键就是代理键。(如常用的序号1、2、3)
8、自然键:自然生活中唯一能够标识一条记录的键(如身份证)
二、例子
下面举例说明
课本上的定义过于笼统,下面我用一张学生成绩信息表给大家详细的说一下:
学生成绩信息表中有(学号、姓名、性别、年龄、系别、专业等)
超键/码:
由于学号能确定一个学生,因此学生表中含有学号的任意组合都为此表的超键。如:(学号)、(学号,姓名)、(学号,性别)等
若我们假设学生的姓名唯一,没有重名的现象。
学号唯一,所以是一个超键姓名唯一,所以是一个超键(姓名,性别)唯一,所以是一个超键(姓名,年龄)唯一,所以是一个超键(姓名,性别,年龄)唯一,所以是一个超键
候选键:
学号唯一,而且没有多余属性,所以是一个候选键
姓名唯一,而且没有多余属性,所以是一个候选键
(姓名,性别)唯一,但是单独姓名一个属性就能确定这个人是谁,所以性别这个属性就是多余属性,所以(姓名,性别)不是候选键
(姓名,年龄),(姓名,性别,年龄)同上,也不是候选键
主键:
主键就是候选键里面的一个,是人为规定的,例如学生表中,我们通常会让“学号”做主键,学号能唯一标识这一个元组。
外键:
外键就很简单了,假如我们还有一个教师表,每个教师都有自己的编号,假设老师编号在教师表中是主键,在学生表中它就是外键。
三、练习
做一道练习题巩固一下(假设名字可能有重复):
参考答案:
1.答案:
(1)候选关键字2个:(学号),(身份证号)
(2)主关键字:(学号)
(3)主属性2个:学号,身份证号
(4)非主属性2个:姓名,系别
2. 答案:
(1)候选关键字1个:(学号,课程号)
(2)主关键字:(学号,课程号)
(3)主属性2个:学号,课程号
(4)非主属性1个:成绩
(5)外部关键字:学号(引用学生信息表中的学号),课程号(引用课程信息表中的课程号)
3.答案:
(1)候选关键字1个:(课程号)
(2)主关键字:(课程号)
(3)主属性1个:课程号
(4)非主属性2个:课程名,学分
如有疑问请在评论区留言,如有帮助麻烦右上角点个赞~~蟹蟹(▽)
候选码、主码、全码、外码、主属性、主键、主关键字、非主属性相关推荐
- 码、候选码、主码、全码和外码的区分
关系数据库中的几个容易混淆的几个概念 码 也称码键.表中的某个属性组,它可以唯一确定一个元组.比如学号 候选码 若关系中某一属性组的值能唯一的标识一个元组,而其子集不能,则称该属性组为候选码 候选码的 ...
- mysql 中外码和主码_数据库原理与应用(6)——关系的候选码、主码和外码、关系完整性、关系代数、元组关系的演算、域关系演算...
一.关系的候选码 候选码(Candidate Key):能唯一标识关系中元组的一个属性或属性集 性质:唯一性,最小性 二.关系的主码和外码 主码(Primary Key):从多个候选码中选择一个作为查 ...
- 数据库(笔记)——候选码、主码、外码以及关系的完整性
关系的码与关系的完整性 关系的码 1. 候选码 2. 主码 3. 外码 关系的完整性 总结 关系的码 1. 候选码 候选码是能够唯一标识关系中某一个元组的一个属性或属性集,也叫候选键 如: 学生关系中 ...
- 【数据库】码,超码,候选码与主码,外码
码的作用 用于区分不同元组.也就是不同行,此表中则为区分不同学生. 超码 超码 是一个或多个属性的集合,这些属性的组合可以使我们在一个关系中唯一地标识一个元组: e.g. 在上表中,{学号} 可唯一标 ...
- 三、外码、关系的完整性约束、关系代数
一.外码(外键,FOREIGN KEY) 学生关系:学号是主码 选课关系:(学号,课程号)是主码,学号是外码,取值参照了学生关系的主码"学号"的值:课程号也是外码,取值参照了课程关 ...
- 输入码(外码),国标码,区位码,机内码,字型码的概念与关系
输入码: 又称汉字外码,无论是区位码或国标码都不利于输入汉字,为方便汉字的输入而制定的汉字编码,称为汉字输入码.汉字输入码属于外码.不同的输入方法,形成了不同的汉字外码.常见的输入法有以下几类: 按汉 ...
- 数据库中的候选码、主码、全码、外码、主属性
1.候选码:能够唯一标识一条记录的最小属性集.若关系中的一个属性或属性组的值能够唯一地标识一个元组,且他的真子集不能唯一的标识一个元组,则称这个属性或属性组做候选码. 2.主码:主码指主关键字.主关键 ...
- 主码,候选码,外码,全码,主属性,非主属性的区别
主码:唯一标识,相当于身份证号外码也可以当主码,即在财务表里引用信息表的身份证号,这个身份证号也可以在财务表里做唯一标识 候选码:在学校里,院系,专业,班级,班里第多少号学生(非学号)可以唯一标识一个 ...
- 数据库系统--码,超码,候选码,主属性,非主属性,主码,全码,外码基本概念
当然,上述只针对学生这一个关系.若涉及参照关系还要引入外码(Foreign Key) ,A关系的其中一个属性同时是B关系的主码,那么该属性则是A关系的一个外码,参照B关系.
- 数据库—属性 码 候选码 主码 外码 主属性 非主属性
问题产生:在学习第6章关系数据理论时,由于之前关于码的各种概念不熟悉,导致不理解. 资料来源:数据库系统概论–王珊 概念及举例 (1):基础定义 实体:客观存在的物体 属性:一个实体的某个特征 码:能 ...
最新文章
- eclipse team 没有svn
- 为UC做准备:部署Exchange 2010及SP1
- 微软10亿美元砸入OpenAI:明为AGI,暗争谷歌,被指云计算换投资
- ug11许可证文件路径安装在哪_Matlab2012a安装教程
- tomcat中添加直接访问的文件
- Effective C# 原则48:了解更多的工具和资源(译)
- docker mysql开机自启动_Docker 学会让容器开机自启服务
- Myslq 之创建数据表
- 让你的网站首页自动选择语言转跳
- matlab cy11,matlab解线性回归方程,y=a0+a1*A+a2*B+a3*C+a4*D+a5*E+a6*F; 数据足够,求a0,a
- java方法_Java方法
- python卸载_微软再出神器,这次终于对Python下手了!
- esxi update patch
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛.J强迫症的序列
- 2018最新手机号码正则表达式
- 高项 人力资源管理论文
- ORA-3136错误分析——WARNING Inbound Connection Timed Out
- 一文读懂java内部类
- 利用curl进行ftp的下载和上传
- 【Kotlin】Android-使用WebDAV协议云存储文件(详细)—附demo源码