数据库-超码、候选码、主码

超码(superkey)绝对算得上计算机术语中翻译以后看起来更复杂的一个典型。

超码和码其实没有任何关系它本质上是一组属性的集合。这一组集合可以唯一的标识出一个元组,就是说不同元组的超码中的属性是不全相同的。

表中的一行就是一个元组,一列就是一个属性

比如在上图的关系中,ID这一个属性就足够区分所有的元组,所以ID这个属性就是一个超码

因为教师可能出现重名的情况,所以name不一定能区分元组,所以name就不是超码。

候选码就是最小超码子集,有点像极小连通子图。当一个超码删除掉任何一个属性之后都不是超码了,我们就把这个超码称为候选码。如{ID}和{name,dept_name}都是候选码。但是{ID,name}就不是候选码,虽然可以唯一区分元组,但是ID这个属性自己就是超码,所以{ID,name}不是候选码。

主码就是数据库设计者选定的、用来主要区分元组的候选码。一般选择那些从不或极少变化的属性,并且把它们列在其他属性的前面。如上表中的ID属性。

三者关系如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值