什么是候选码和主码码的属性是什么

      前几天去一家软件公司,笔试的时候,数据库的知识都忘了,然后今天面试的时候,面试官问我,你数据库的知识不会,回去看了没 瞬间我就懵了,数据库知识很多,一下子搞不定,已经列在了计划表上,但是没有当天立即学习,所以面试官在这里给我提了个醒,这也是今天面试的一点收获吧,遇到问题,迅速解决问题!

1.超码,候选码,主碼,替换码,外码

超码:唯一标识一个元祖的属性集合(解释:现实生活中,有很多人同名,名字就不能唯一标识人,所以名字不能作为超码,***编号是唯一的,所以***编号是超码。因为***编号已经足够唯一标识不同的人了,***编号+姓名自然也可以,***+性别+...都可以唯一标识)

候选碼:一个超码中没有真子集是关系的超码(通俗讲就是:候选码是超码,候选码的真子集中没有超码)

主码:候选码中随便选一个唯一标识元祖

替换码:候选码中,没有被选为主码的其他候选码

外码:一个关系中的属性在另外一个关系中当主码

举个例子就更容易理解了:

那么根据候选码的定义 ,候選码的集合是{a,b,c}

如果我选 b 作主码,那么替换码就是{a,c}

就是a表中每一个元祖,都和b表中的每一个元祖重新组合成一个新的元祖

先给定2个关系,求R÷S

R÷S嘚属性:R有但S没有的属性(R去掉R和S相同的属性组)  所以这里R÷S 得到的属性就是A B(结果属性组)

2.找出满足条件的元祖(结果属性组取值完全相同,且满足S中屬性C和D的所有元祖)

在关系R中,元祖(2,1,a,c) 和(2,1,b,d),他们A和B的属性相同(结果属性组取值相同),而且满足属性C和D中的

参考资料

 

随机推荐