BCNF分解和密钥

时间:2016-05-23 18:32:40

标签: database schema normalization 3nf bcnf

我一直在寻求将以下关系从其当前状态分解为具有三个功能依赖关系的BCNF。

enter image description here

采取格言

  

密钥,整个密钥,只有密钥

我得出结论,B - > C传递函数依赖意味着它在2NF,并且应该被分解以将其移除到

enter image description here

我认为这也应该在BCNF。但是,我的问题是,A,B - > C FD打破了这个 - 因为它似乎与不匹配,只有关键',上面的格言方面? (而A,B中的'B'部分 - > FD不是关键属性,而是'B'是关键的补充)

1 个答案:

答案 0 :(得分:2)

您应该注意三个依赖项:

A B → D

不是规范封面(A → D可以简化为A → B,给定A → B A → D B → C )。因此,规范的封面是:

A

并且由于密钥为R1<(B, C), {B → C}> R2<(A, B, D), {A → B, A → D}> ,因此您在解析以下关系时是正确的:

R1

请注意,所有依赖项都满足BCNF定义,因为B的键是R2A的键是{{1}},并且每个依赖都有其LHS这是关键。