数据库原理中(清大出版社)对候选码的定义“如果一个属性集的值能够唯一标示一个关系……”属性集指什么

数据库原理中(清大出版社)对候选码的定义“如果一个属性集的值能够唯一标示一个关系……”属性集指什么,第1张

先说候选码,候选码就是可以区别一个元组(即表中的一行数据)的属性或属性的集合,比如学生表student(id,name,age,sex,deptno),其中的id是可以唯一标识一个元组的,所以id是可以作为候选码的,既然id都可以做候选码了,那么id和name这两个属性的组合可不可以唯一区别一个元组呢?显然是可以的,此时的id可以成为码,id和name的组合也可以成为码,但是id和name的组合不能称之为候选码,因为即使去掉name属性,剩下的id属性也完全可以唯一标识一个元组,就是说,候选码中的所有属性都是必须的,缺少了任何一个属性,就不能唯一标识一个元组了,给候选码下一个精确的定义就是:可以唯一标识一个元组的最少的属性集合。而码是没有最少属性这个要求的。另外,一个表的候选码可能有多个,从这些个候选码中选择一个做为主码,至于选择哪一个候选码,这个是无所谓的,只要是从候选码中选的就行。

至于主属性,刚才提到了,一个表可以有多个候选码,那么对于某个属性来说,如果这个属性存在于所有的候选码中,它就称之为主属性

说了这么多,有点乱,希望你明白了

计算属性集闭包X+的算法如下:

输入:X,F

输出:

X+

 迭代算法的步骤:

选取X+的初始值为X

,即X+={X};

计算X+,

X+={XZ}

,其中Z要满足如下条件:

YX+,且F中存在一函数依赖Y→Z。实际上就是以X+中的属性子集作为函数依赖的决定因素,在F中搜索函数依赖集,找到函数依赖的被决定属性Z放到X+中。

判断:如果X+没有变化?或X+等于U?则X+就是所求的结果,算法终止。否则转②。

 因为U是有穷的,所以上述迭代过程经过有限步骤之后就会终止。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9907999.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-03
下一篇2023-05-03

发表评论

登录后才能评论

评论列表(0条)

    保存