数据库利用闭包求关系模式的候选码

Posted lightice

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库利用闭包求关系模式的候选码相关的知识,希望对你有一定的参考价值。

数据库利用闭包求关系模式的候选码

求关系模式的候选码:

实例

给定关系模式R(A, B, C, D, E),如果存在依赖:A→B,BC→D,DE→A,则该关系模式的码为?

1.分别写出依赖关系两边的所有元素

L:CE

R:none

LR:ABD

L为依赖关系中只在左边出现的元素,这些元素必为码的一部分或者就是码。

R为依赖关系中只在右边出现的元素,这些元素不可能是码。

LR为依赖关系中在两边都出现的元素,这些元素可能是码,我们需要求闭包进一步判断。

2.使用闭包求候选码

因为L有CE两个元素,LR有ABD三个元素,我们一共得到4种组合,CE,ACE,BCE,CDE,用上述的方法进行求闭包,如果闭包的元素为U(全集:ABCDE),则该集合是一个码。

CE:C啥子也不能推出,E啥子也不能推出~,所以自身闭包就是CE,而非U,因此CE不是码

ACE:A→B,则此时闭包为ABCE,BC在ABCE中,BC→D,此时闭包仍然为ABCDE,即闭包为U,满足码的条件,ACE为码,就不用继续看完所有依赖了~

BCE:同理嘛,BC→D,此时闭包为BCDE,DE→A,此时闭包为ABCDE,即U,BCE为码~

CDE:DE→A,此时闭包为ACDE,A→B,此时闭包为ABCDE,即U,所以CDE也为码~

那么最后可以得出ACE,BCE,CDE为候选码,也就是码。

以上是关于数据库利用闭包求关系模式的候选码的主要内容,如果未能解决你的问题,请参考以下文章

数据库系统方面的问题,求最小函数依赖集、候选码、分解满足范式的关系模式

数据库怎样求最小函数依赖集,候选码,分解bcnf例题

1.利用求传递闭包的Warshall算法,给定关系R,编写求R的可传递闭包的C语言程序并利用下列数据测试。

数据库系统概论的范式转换问题

关系型数据库

数据库