BCNF 分解能否在给定 F = {AB -> E, BC -> G, C-> BG, CD->A, EC->D, G->CH} 的情况下保留所有函数依赖性?
Can BCNF decomposition preserve all functional dependencies given F = {AB -> E, BC -> G, C-> BG, CD->A, EC->D, G->CH}?
Given F = {AB -> E, BC -> G, C-> BG, CD->A, EC->D, G->CH}
, perform a BCNF decomposition and check whether it preserves all functional dependencies.
最小封面是R = {AB->E,C->B,C->G,CD->A,EC->D,G->C,G->H}
我在 R
上执行了 BCNF 分解(必须在最小覆盖上执行)并且我保留了两个依赖项,一个保留,一个不保留。在答案中,他们告诉我所有的依赖关系都被保留了下来。任何人都可以证实这一点吗?
从规范覆盖开始,我们可以看到 A B → E
的行列式不是超键,因此 R
可以替换为:
R1 < (A B E) , { A B → E } >
和:
R2 < (A B C D G H) ,
{ G → C
G → H
C → B
C → G
C D → A
A B C → D } >
在 R2 中,G → C
的行列式不是超级键,因此 R2
可以替换为:
R3 < (B C G H) ,
{ G → C
G → H
C → B
C → G } >
和:
R4 < (A D G) ,
{ D G → A
A G → D } >
所以,最终分解为:
R1 < (A B E) ,
{ A B → E } >
R3 < (B C G H) ,
{ G → C
G → H
C → B
C → G } >
R4 < (A D G) ,
{ D G → A
A G → D } >
和依赖项:
{ C E → D }
未保留。
ABE, CBG, CDA, CE D,GCH 在 BCNF 和无松散连接和依赖保留中。关系键在 bold
只要这个新关系在 BCNF 中,总是有可能添加一个新关系来保留依赖关系。
Given
F = {AB -> E, BC -> G, C-> BG, CD->A, EC->D, G->CH}
, perform a BCNF decomposition and check whether it preserves all functional dependencies.
最小封面是R = {AB->E,C->B,C->G,CD->A,EC->D,G->C,G->H}
我在 R
上执行了 BCNF 分解(必须在最小覆盖上执行)并且我保留了两个依赖项,一个保留,一个不保留。在答案中,他们告诉我所有的依赖关系都被保留了下来。任何人都可以证实这一点吗?
从规范覆盖开始,我们可以看到 A B → E
的行列式不是超键,因此 R
可以替换为:
R1 < (A B E) , { A B → E } >
和:
R2 < (A B C D G H) ,
{ G → C
G → H
C → B
C → G
C D → A
A B C → D } >
在 R2 中,G → C
的行列式不是超级键,因此 R2
可以替换为:
R3 < (B C G H) ,
{ G → C
G → H
C → B
C → G } >
和:
R4 < (A D G) ,
{ D G → A
A G → D } >
所以,最终分解为:
R1 < (A B E) ,
{ A B → E } >
R3 < (B C G H) ,
{ G → C
G → H
C → B
C → G } >
R4 < (A D G) ,
{ D G → A
A G → D } >
和依赖项:
{ C E → D }
未保留。
ABE, CBG, CDA, CE D,GCH 在 BCNF 和无松散连接和依赖保留中。关系键在 bold
只要这个新关系在 BCNF 中,总是有可能添加一个新关系来保留依赖关系。