首页 > 编程知识 正文

数据库中闭包候选键的概念及候选键的求解方法是,数据库中闭包候选键的概念及候选键的求解方法是什么

时间:2023-05-05 22:48:01 阅读:242628 作者:2209

前言:这篇文章只要认真看完一定能懂本篇文章讲的几个概念

闭包
设M为R关系模式上的函数依赖集,被M所逻辑蕴含的全体构成的集合,称为M的闭包,记做 M + M^+ M+(这里只要了解闭包的符号就好,嘿嘿!)

注意:求 “x” 的闭包就是求 “x” 能直接或者间接推出的属性的集合
(可能这句话稍微有那么一丢丢抽象,我们稍微看看下面的例子就懂了)

example
关系R(A,B,C)满足函数依赖M(A -> B,A -> C,B -> AC)求A,B,C的闭包

①求A的闭包
A -> B,A -> C, A -> A,A -> ∅
由上可知由A可以推出A,B,C。A的闭包就是A所推出的元素组成的集合即ABC(其中空集可以省略)

②求B的闭包
B -> AC,B -> B,B -> ∅
所以由B可以推出A,B,C。故B的闭包也是ABC
③求C的闭包
C -> C,C -> ∅
故C的闭包就是C

候选键
若P为R<U,M>上的一个属性集,如果U完全依赖于P,则称P为M上的候选键

解释一下上面那句话的意思
如果P的闭包为U的话,那么P就为U上的候选键(其中U为R中所有的元素即ABC)
在上面例题中的R(A,B,C)中,A的闭包为ABC,A就为R上的候选键,B的闭包为也为ABC所以B也是R上的候选键,C的闭包为C,故C不是R上的候选键。

小结一下已知关系模式和函数依赖求候选码的步骤:

①只在右边出现的属性,不属于候选码;
②只在左边出现的属性,一定存在于某候选码当中;
③左右都不出现的属性一定存在于任何候选码当中;
④其他属性逐个与2,3的属性组合,求属性闭包,若闭包等于U,则为候选码。
example:

关系模式R(A,B,C)
存在函数依赖F={AB->C, C->B}
求R的候选码。

只在左边出现 : A
只在右边出现 : 没有
左右都不出现 : 没有
左右都出现的 : B, C

首先看AB(A为存在于候选码中的码,所以用A与其他码组合),AB本身自包AB,而AB->C,所以AB的闭包是ABC=U。
再看AC,AC本身自包AC,而C->B,所以AC的闭包是ABC=U。
故而R的候选码是AB,AC。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。