【数据库】码,超码,候选码与主码,外码

表2.1 学生基本信息表

码的作用

用于区分不同元组、也就是不同行,此表中则为区分不同学生。

超码

超码 是一个或多个属性的集合,这些属性的组合可以使我们在一个关系中唯一地标识一个元组;
e.g. 在上表中,{学号} 可唯一标识学生,所以学号是超码;有重名所以 {姓名} 不能作为唯一标识,但是 {学号,姓名} 组合可以为超码,同样,此表中 {年龄} 不可作为唯一标识,但是 {姓名,年龄} 也可以作为超码,但是这样非常不推荐。
所以综述,本表中超码为:{学号}{学号,姓名}{学号,年龄}{学号,姓名,年龄}{姓名,年龄}

候选码

候选码 与超码之间的关系好比正方形与长方形;候选码属于超码的一种特殊情况,而特殊则是特殊在最小的超码才能称为候选码。
e.g. 所以这么来看,上面的候选码中,只有 {学号}{姓名,年龄} 可以作为候选码。而形如:{学号,姓名} 则是因为学号可以单独作为唯一标识,所以 {学号,姓名} 组合可以化简,不是最小的超码,固不能作为候选码。

主码

主码 性质上与 候选码 类似,但是主码只有一个,而谁是主码则是由数据库设计者选中的,是用来在一个关系中区分不同元组的候选码。
e.g. 主码的选择非常重要,此表中主码会选 {学号} 作为主码的原因在于:
首先第一点,只有一个属性,最简;
其次第二点,虽然此时 {姓名,年龄} 也可以作为主码,但是若表中新增一名同学,不同学号相同姓名相同年龄,则会导致 {姓名,年龄} 不能成为主码、候选码以及超码。

外码 与 参照

在这里插入图片描述
左表中,主码为 {学号} ,右表中,主码为 {年龄}
而在左表中,也存在属性名称为:年龄
所以在左表中,年龄 为左表的外码;且 参照 右表,因为属性 年龄 在右表中为主码。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

脚踏实地的大梦想家

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

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

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

打赏作者

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

抵扣说明:

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

余额充值