我正在解决教科书中的问题,为我的考试做准备,我很难弄清楚这个问题。
考虑关系S(B,O,I,S,Q,D)
FDs: S->D, I->B, IS->Q, B->O
我需要做BCNF分解,然后确定S的所有键。我做了BCNF分解并确定IS是一个超级键,但我无法弄清楚分解的其余部分来找出其他键。
我还需要为给定的 FDS 找到一个最小基,并使用 3NF 合成算法找到将 S 分解为 3NF 的无损连接依赖保持分解。
非常感谢任何帮助,我在这里感到困惑,并且真的在为这个问题而苦苦挣扎。
{I S} 是唯一的键,这很容易显示。属性 I 和 S 仅出现在功能依赖项的左侧部分,因此它们必须属于任何键。而且由于它们已经是一个(超级)键,因此不存在其他键。
功能依赖关系已经是最小的覆盖(或最小的基础),因为:a)每个正确的部分只有一个属性;b)在依赖关系IS→Q中,左侧部分没有属性是多余的,c)没有依赖是多余的。
所以3NF分解是:
R1 <(B O),{ B → O }>
R2 <(B I),{ I → B }>
R3 <(I S Q),{ I S → Q }>
R4 <(D S),{ S → D }>
等于 BCNF 中分解的结果。