我是一名计算机科学专业的学生,正在学习数据库模块,现在正在教授规范化和功能依赖。然后我遇到了这个我无法弄清楚的问题。如果您有任何想法,请提供帮助。
问:函数依赖集合F存在关系R(A,B,C,D)。
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}}
我的程序:
第一步:{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 }},但我无法找到正确的答案,有人知道如何继续吗?谢谢
最佳答案
我认为正确答案是,嗯,不正确。
Correct Ans: {{A}→{B}, {A}→{C}, {C}→{A},{B}→{A}}
因为{B}→{A}
,和{A}→{C}
,你能不能把这两个FD换成{B} →{C}
?
你也可以从 {C, D}→{D}
中删除属性 C,对吧?
关于database - 函数依赖的最小覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5609284/