BCNF 分解和密钥
BCNF Decomposition and Keys
我一直在寻找将以下关系从其当前状态分解为具有三个函数依赖关系的 BCNF。
采用格言
the key, the whole key, and nothing but the key
我得出结论,B-->C 传递函数依赖意味着它在 2NF 中,应该分解以将其移除到
我认为这也应该在 BCNF 中。但是,我的问题是,A,B --> C FD 是否打破了这一点——因为它似乎与上述格言的 'nothing but the key' 方面不匹配? (并且 A、B 的 'B' 部分 --> FD 不是关键属性,而是 'B' 是关键的补充)
你应该注意三个依赖:
A → B
A B → D
B → C
不是规范封面(给定 A → B
,A B → D
可以简化为 A → D
。所以,规范封面是:
A → B
A → D
B → C
并且由于密钥是 A
,您在分解关系时是正确的:
R1<(B, C), {B → C}>
R2<(A, B, D), {A → B, A → D}>
注意所有的依赖都满足BCNF定义,因为R1
的key是B
,R2
的key是A
,每个依赖都有它的 LHS 是一个键。
我一直在寻找将以下关系从其当前状态分解为具有三个函数依赖关系的 BCNF。
采用格言
the key, the whole key, and nothing but the key
我得出结论,B-->C 传递函数依赖意味着它在 2NF 中,应该分解以将其移除到
我认为这也应该在 BCNF 中。但是,我的问题是,A,B --> C FD 是否打破了这一点——因为它似乎与上述格言的 'nothing but the key' 方面不匹配? (并且 A、B 的 'B' 部分 --> FD 不是关键属性,而是 'B' 是关键的补充)
你应该注意三个依赖:
A → B
A B → D
B → C
不是规范封面(给定 A → B
,A B → D
可以简化为 A → D
。所以,规范封面是:
A → B
A → D
B → C
并且由于密钥是 A
,您在分解关系时是正确的:
R1<(B, C), {B → C}>
R2<(A, B, D), {A → B, A → D}>
注意所有的依赖都满足BCNF定义,因为R1
的key是B
,R2
的key是A
,每个依赖都有它的 LHS 是一个键。