我的关系是:
H = {A,B,C,D,E}
A -> C
{A,D} -> E
B -> C
{B,D} -> E
C -> B
E -> C我必须把这个关系转换成3NF。候选密钥:{A,D}
第一步是最小化。在最小化中,我可以将{A,D} -> E从fds中删除。
H = {A,B,C,D,E}
A -> C
B -> C
{B,D} -> E
C -> B
E -> C分解:
H1 = {A,C} with key A
H2 = {B,C} with key B and FD: B -> C
H3 = {B,D,E} with key {B,D}
H4 = {C,B} with key C and FD: C ->B
H5 = {E,C} with key E
H6 = {A,D} with key A // added because one relation must contains key当我看到H2和H4时,我感到很困惑。他们看起来几乎一样。那么,应该把两者合并成一个吗?为了得到一种关系:
H2 = {B,C} with keys {B},{C} and fds: B -> C, C -> B?
由于relations H1和H6有相同的键,我可以合并它们吗?
谢谢你的帮助
发布于 2017-02-12 20:25:47
H2和H4是完全相同的关系,因为属性的顺序并不重要。一般来说,综合算法要求,在第一阶段之后,您应该删除其他步骤中包含的所有关系。因此,第一个问题的答案是肯定的,当然,关系{B, C}有两个依赖项B → C和C → B,以及两个候选键B和C。
另一方面,H1和H6是不同的关系,不应该合并在一起(而且,它们没有相同的键,因为H1有键A,而H6有键{A, D} (并且没有依赖项))。
https://dba.stackexchange.com/questions/164104
复制相似问题