找出关系中的函数依赖

Posted

技术标签:

【中文标题】找出关系中的函数依赖【英文标题】:Find the functional dependencies that hold in a relation 【发布时间】:2015-07-20 17:59:44 【问题描述】:

我的书中有一个问题提出以下问题:

假设我们有关系 R(A,B,C,D,E),其中有一组 功能依赖(FD),我们希望将这些 FD 投影到 关系 S(A,B,C)。如果 FD 为 R,则给出 S 中的 FD 是:

A->D
BD->E
AC->E
DE->B

在每种情况下,为 S 的完整 FD 集提供最小基础就足够了。

所以我尝试计算 (A,B,C) 的所有子集的属性闭包。我找不到 S 的 FD 的任何最小基础。我计算了 A、B、C 和 AC 的闭包,但我无法获得所有属性。 A 仅暗示 AD,B 仅暗示 B,C 仅暗示 C,AC 仅暗示 ACE。我找不到左侧有一个属性暗示右侧所有属性的功能依赖项。

【问题讨论】:

您提到您找不到任何一个属性暗示所有其他属性的 FD。我说没有这样的属性,可以用作键的最小属性集是(A,B,C)。 【参考方案1】:

如您所见,没有暗示 A 或 C 的属性,而且您也找不到任何带有 A 或 C 在左侧和 B 在右侧(A==>B 或 A==>C)的 FD。所以关系 (A,B,C) 除了 (A,B,C)==>(A,B,C) 之外没有 FD。

【讨论】:

好吧,问题本身就是找到 S 的全套 FD 的最小基础。我发现的是 (A,B,C)-->(A,B,C)也是。你能确认这是否是 S 的最小基唯一可能的 FD 吗?干杯,由于您只是回应,因此我会将您的回答评为有用。

以上是关于找出关系中的函数依赖的主要内容,如果未能解决你的问题,请参考以下文章

函数依赖关系学习

关系数据库设计基础(函数依赖无损连接性保持函数依赖范式)(转)

如何:查看数据库对象的依赖关系

1-3范式,bcnf,关系模型完整性约束

部分函数依赖,完全函数依赖,传递函数依赖,平凡函数依赖和非平凡函数依赖

函数依赖概念理解与判断