候选码与外码

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

前置:https://blog.csdn.net/jaihk662/article/details/80066225


候选码:

  • 关系中的一个属性组
  • 它可以唯一标识一个元组
  • 若从该属性组中去掉任意一个属性,他就不具备上一个性质

例如性别年龄无法区分学生,但学号可以,因为每个学生学号一定互不相同,那么学号就单独作为一个候选码

除此之外,名字不可以作为候选码,因为可能重名,但是名字+地址就可以了,因为这样就不可能重复


主码/主键(Primary Key):

当有多个候选码时,选定一个作为主码

DBMS以主码为主要线索管理关系中的各个元组

实体完整性:关系的主码中的属性值不允许为空值(不知道不存在或无意义的值)


主属性与非主属性:

包含在任意一个候选码中的属性被称为主属性,否则为非主属性

  • 最简单情况下候选码只包含一个属性(例如学号)
  • 最复杂情况下所有属性构成这个关系的候选码,称为全码(All-Key)


外码/外键(Foreign Key):

关系R中的一个属性组,他不是R的候选码,但它与另一个关系的候选码相对应,则称这个属性组为R的外码/外键

两个关系通常通过外码相互连接

例子如下:


参照完整性:如果关系R1的外码Fk与关系R2的主码Pk相对应,那么R1中所有元素的Fk值要不等于关系R2中的某个Pk值,要不为空值


总结:



用户自定义完整性:用户针对具体的应用环境定义的完整性约束条件

例如一个大学生的岁数不可能超过100,也不可能小于5,性别只能是男和女等


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

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值