数据库——候选码、超码等码的概念

数据库 专栏收录该内容
3 篇文章 0 订阅

在学习码的概念之前,我们必须掌握数据库函数依赖的相关概念。数据库函数依赖的概念

举栗子🌰:假设我们有一个关系模式:S(Sno,Sid,Sname,Cno,Grade),其中Sid表示的是学生的身份证号码。

1、候选码(Candidate Key):若关系中的一个属性或属性组的值能够唯一地标识一个元组,且他的真子集不能唯一的标识一个元组,则称这个属性或属性组做候选码。
用人话来解释:想要知道某位学生的某门课程的成绩Grade,那我们必须要知道该学生的学号Sno以及课程号Cno。此时X[Sno,Cno]称为S的一个候选码。
当然,因为Sid也是唯一的,也就是说[Sid,Cno]也是可以映射到唯一的Grade、Sname、Sno,所以[Sid,Cno]也是候选码。
这也说明了候选码可以存在多个,这时候我们取其中一个作为主码就可以了。

2、超码(Surpkey):是指一个或多个属性的集合,这些属性的组合可以使我们在一个实体集中唯一地标识一个实体。
留意到”超码“说的是一个集合,也就说[Sno,Cno]是一个超码,[Sno,Sid,Cno]也是一个超码,甚至[Sno,Sid,Sname,Cno,Grade]也是一个超码。也就是说,只要你能唯一表出一个元组,那你就是超码!很明显,候选码是最小的超码。

主属性(Prime attribute):包含在任意一个候选码中的属性。
🌰如:Sno,Sid,Cno
非主属性(Nonprime attribute):不包含在任何一个候选码中的属性。
🌰如:Sname,Grade

注:主码、外码在此不做介绍。

  • 10
    点赞
  • 1
    评论
  • 16
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值