SQL小小知识点:超键,候选键,主键,外键基本概念

超键

定义:在关系模式中,可以唯一标识一个元组的属性集称为超键(Super Key)

举个栗子:student(Sno, Sname, Sage, Ssex)

在这个结构中,只有包含Sno的属性集合才能是超键,因为如果不包含Sno,可能会出现同名,同姓的人,也可能出现同岁的人,所以在上面的关系模式中只有通过学号才能找到某个特定的学生。

因此上述关系模式中只有包含学号的属性集才能称之为超键:

例如:(Sno), (Sno, Sname), (Sno, Sname, Sage)等

候选键

定义:在关系模式中,能唯一标识元组并且不含多余属性的属性集称为候选键(Candidate Key)

例如在上面提到的例子中,student(Sno, Sname, Sage, Ssex)

如果没有重名的学生,Sname也可以当成是候选键,这里可以看出候选键是一种特殊的超键,即把超键中多余的属性删除就可以叫做候选键。

所以上述关系中(Sno)(Sname)可以叫做候选键。

主键

定义:在关系模式中的若干个候选键中,随意指定一个作为关键字,此关键字即为主键(Primary Key)

分析:student(Sno, Sname, Sage, Ssex)

  主键很好理解,就在在候选键的基础上任意选择一个作为主键(理解这点就明白了什么可以当主键了),同时衍生出复合主键联合主键 ,假设我们没有学号字段,如果可以通过姓名,年龄,性别一同找到某个特定的学生,那么就称(name, age, sex)为复合主键,全部由主键构成的称为联合主键。

  因此上述关系模式中,姓名,和年龄也能唯一确定学生,那么主键有:

  例:(Sno), (Sname),复合主键(Sname,Sage)

外键

定义:可以把一张表的数据与另一张表关联起来,这种列称为外键(Foreign Key)

分析:student(Sno, Sname, Sage, Ssex,SCredit), score(Sno, Tno, Sco)

  外键是建立在两个关系模式中的,从上述定义中可用知道,某关系模式中主键一定是其候选键,那对于另一关系,只要原关系的主键只表示普通属性,那它就是另一属性的外键,上表中Sno就是score的外键,他把两个表关联起来了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜猫程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值