彻底搞懂数据库中的超码,候选码,主码,主属性,非主属性,全码的区别

  1. 超码:某一个能够唯一标识一条记录的属性或属性集
  2. 候选码:某一个属性组的值能够唯一的标识一个元组,而其子集不能,则称该属性组为候选码,候选码是一类特殊的超码,包含候选码的属性组一定是超码
  3. 主码:若一个关系中有多个候选码,则选定其中的一个为主码
  4. 主属性:候选码属性组中的各个属性称为主属性
  5. 非主属性:不包含在候选码中的属性称为非主属性
  6. 全码:关系模式的所有属性是这个关系的候选码,则称该属性组为全码
  • 例子:学生表(学号、姓名、性别、年龄、班级、系)
    • 学号可以唯一的标识出一个同学的身份,我们可以设置学号为主码。是最简单的候选码。
    • 当姓名不重复的时候姓名也可以作为唯一标识,也可以用来作为候选码,所以姓名也可以作为候选码
    • 以此类推,最极端的情况是全表都用来做主码,这时的主码也叫全码。
    • 所以这里候选码可以是学号,或者姓名(前提是姓名不重复),但是学号+姓名不是候选码,由于它的子集例如学号,姓名能唯一标识一个元组,故不符合定义,它是超码,也就是说候选码中的所有属性都是必须的,缺少了任何一个属性,就不能唯一标识一个元组了,候选码是可以唯一标识一个元组的最少的属性集合。而超码是没有最少属性这个要求的。
    • 由主码的定义可知,主码可以从这两者者之间选择一个即可
    • 主属性为候选码属性组之间的各个属性,例如,候选码:学号,主属性为学号,非主属性为姓名,性别,年龄,班级,系
    • 注意:主属性不能唯一的标识一个元组,而主码必定能够标识(因为主码必定是候选码),两者是不同的.
  • 参考文章:
  • 25
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值