在一个关系R中,N属性有多少函数依赖(包括平凡)?
我知道那些琐碎的依赖关系是右手边是左手边的一部分,但我不知道如何计算依赖关系的上限。
非常感谢有关答案及其处理方法的任何信息。
答案 0 :(得分:0)
最大可能的功能依赖性数量是
我们包含了微不足道的功能依赖关系,因此可能的左侧数量等于可能的右侧数量。所以这简化为
我们说你有R {∅AB}。有三个属性。 1 可能的左侧数量是
等于3+3+1
或7.因此对于具有三个属性的任何R,最多有7个 2 可能的函数依赖性:49。属性的顺序并不重要,所以我们使用公式进行组合,而不是排列。
如果你从R {∅ABC}开始,你有
等于4+6+4+1
或15.因此对于具有四个属性的任何R,最多有15个 2 可能的函数依赖性:225。
了解此公式后,使用电子表格可以轻松完成这些计算。使用Ruby或Python等脚本语言编写程序来生成所有可能的函数依赖也很容易。
The Wikipedia article on combinations提供了如何使用和不使用阶乘来计算组合的示例。
R {∅AB}的所有可能组合:
A->A A->B A->∅ A->AB A->A∅ A->B∅ A->AB∅ B->A B->B B->∅ B->AB B->A∅ B->B∅ B->AB∅ ∅->A ∅->B ∅->∅ ∅->AB ∅->A∅ ∅->B∅ ∅->AB∅ AB->A AB->B AB->∅ AB->AB AB->A∅ AB->B∅ AB->AB∅ A∅->A A∅->B A∅->∅ A∅->AB A∅->A∅ A∅->B∅ A∅->AB∅ B∅->A B∅->B B∅->∅ B∅->AB B∅->A∅ B∅->B∅ B∅->AB∅ AB∅->A AB∅->B AB∅->∅ AB∅->AB AB∅->A∅ AB∅->B∅ AB∅->AB∅