函数依赖的最小覆盖

时间:2011-04-10 02:04:32

标签: database

我是一名计算机科学专业的学生,​​正在学习数据库模块,现在教授规范化和功能依赖。然后我遇到了这个问题,我无法弄明白。如果您有任何想法,请提供帮助。

问:R(A,B,C,D)与函数依赖集F有关系。

F = {{A}→{B},{B}→{C},{C}→{A},{C}→{A,B},{C,A,D}→{A ,D},{C}→{B}}

找到F的最小封面。

正确答案:{{A}→{B},{A}→{C},{C}→{A},{B}→{A}}

我的程序:

第1步:{C}→{A,B}可以成为{C}→{A}和{C}→{B}因此{C}→{A,B}被删除

第二步:{C,A,D}→{A,D}可以成为{C,A,D}→{A}和{C,A,D}→{D},但因为{C} →{A},{C,A,D}→{A}被删除,{C,A,D}→{D}变为{C,D}→{D}

两个步骤使我的回答变为{{A}→{B},{B}→{C},{C}→{A},{C}→{B},{C,D}→{D但是,我无法达到正确的答案,任何人都知道如何继续?感谢

2 个答案:

答案 0 :(得分:0)

我认为正确的答案是,嗯,不正确。

  

纠正答案:{{A}→{B},{A}→{C},   {C}→{A},{B}→{A}}

由于{B}→{A}{A}→{C},您不能用{B}→{C}替换这两个FD吗?

你也可以从{C, D}→{D}消除属性C,对吗?

答案 1 :(得分:0)

首先,CAD-> AD是微不足道的,因为如果你知道CAD的价值是什么,显然你知道什么是AD的值。

目前为止:F = {{A}→{B},{B}→{C},{C}→{A},{C}→{A,B},{C}→{B }}

其次,如你所提到的,{C}→{A,B}是多余的。

所以现在:F = {{A}→{B},{B}→{C},{C}→{A},{C}→{B}}

第三,你可以看到B存在于F- {C-> B}的C +中,因此C-> B是冗余的。

所以这是F的许多最小封面之一:G = {{A}→{B},{B}→{C},{C}→{A}}

你的proffesor建议的Minimal Cover也是有效的,因为集合中没有redundent依赖。

相关问题