我正在学习数据库理论课程,在阅读之后我不清楚如何在给定一组函数依赖项的情况下推断出键.
我有一个示例问题:
查找具有功能依赖关系的关系R(ABCDEFG)的所有键
AB ? C
CD ? E
EF ? G
FG ? E
DE ? C
BC ? A
Run Code Online (Sandbox Code Playgroud)
通过确定以下哪一项是关键来证明您的知识.
a. BCDEF
b. ADFG
c. BDFG
d. BCDE
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何分解功能依赖关系以得出某些属性组合是关键的结论吗?我希望我会遇到很多这类问题,我需要了解如何处理它.
模式R =(A,B,C,D,E,F)
FD F = {ABC - > D,CD - > B,BCF - > D,CDF - > BE,BCDF - > E}
找到Fc,F的最小封面(又名.规范封面).
这是我书中使用的方法:
示例:abc - > xyz
如果(bc)+⊇a,a是多余的(无关的); 如果(abc)+⊇x,则x是多余的.
注意:这里,闭包是使用F计算的,其中a或x分别从abc - > xyz中删除.
我不明白最后一句大胆的句子.
一个解决方案是:
考虑CDF - > BE
B是多余的:(CDF)+ =(CDFBE)⊇(B)
F变为{ABC - > D,CD - > B,BCF - > D,CDF - > E }
但我不明白.
根据这个逻辑:
E也可以是多余的,
堂妹:
考虑CDF - > BE
E是多余的:(CDF)+ =(CDFBE)⊇(E)
F变为{ABC - > D,CD - > B,BCF - …