【发布时间】:2015-12-13 15:01:45
【问题描述】:
考虑R(A,B,C,D,E)
F = {BC->AE, A->D, D->C, ABD->E}。
我需要找到模式的所有候选键。
我知道BA,BC,BD 是关键,但我想知道如何发现它们。
我在candidate keys from functional dependencies = 中看到了一些答案,但我并没有完全理解它们。
形成他们的建议,我得到了L={B},M={A,C,D},R={E}
现在我需要从M 一次添加一个到L。
我从A 开始,我得到BA。所以BA->A,BA->B(微不足道)因为A->D所以BA->D,因为D->C我们得到BA->C。
但是,我们如何获得E?
【问题讨论】:
-
该算法是一种计算最小覆盖集的算法,即覆盖所有依赖关系并且在具有相同属性的其他集中最小的集
-
"但是,我们如何得到 E?",你没有使用所有的依赖关系,如果你这样做了,你会到达
E -
@NikosM。你能指出我错过的关系吗?
标签: database key candidate-key