Database 关于3NF的一个条件
R={A,B,C,D} 函数依赖项F={A->B,B->C,C->D} 在加工成3NF后: 我们得到{A,B},{B,C},{C,D} 假设Database 关于3NF的一个条件,database,database-normalization,3nf,Database,Database Normalization,3nf,R={A,B,C,D} 函数依赖项F={A->B,B->C,C->D} 在加工成3NF后: 我们得到{A,B},{B,C},{C,D} 假设X->A表示每个函数依赖项 X表示左手侧,A表示右手侧 我的主要问题是3NF的第二个条件--X是一个超级键 那么X是什么的超级键 在3NF中的R={A,B,C,D}或每个关系的{A,B},{B,C}和{C,D} 例如,B是超级键,也是{B,C}的候选键,但不是R={a,B,C,D}的超级键或候选键 我完全糊涂了 如果对于该关系中的每个X->A,以下条件之一成
X->A
表示每个函数依赖项
X
表示左手侧,A
表示右手侧
我的主要问题是3NF的第二个条件--X是一个超级键
那么X
是什么的超级键
在3NF中的R={A,B,C,D}
或每个关系的{A,B},{B,C}和{C,D}
例如,B
是超级键,也是{B,C}
的候选键,但不是R={a,B,C,D}
的超级键或候选键
我完全糊涂了 如果对于该关系中的每个
X->A
,以下条件之一成立,则该关系为3NF:
包含X
(也就是说,A
是微不足道的函数依赖项),或者X->A
是超级键,或X
的每个元素,即A-X
和A
之间的设置差异,都是一个基本属性X
R={A,B,C,D}
的情况下,我们有一个FDB->C
,这样:
不包含B
,并且C
不是B
的超级键,并且R
不是C
的主要属性R
R
不在3NF中
但是,如果我们查看R1={B,C}
中的B->C
,那么:
不包含B
,并且C
是B
的超键,并且R1
不是C
的主要属性R1
因此,
R1
在3NF中。当我们说“将R规范化为xNF”时,我们的意思是“用xNF中的一些投影/组件替换R”。R消失了;它等于组件的连接。每个组件都必须使用自己的FD、超键、CKs等满足xNF的条件。所以在我的示例中R={A,B,C,D}
和F={A->B,B->C,C->D}
,它不在3NF中,对吗?因为B->C
与3NF和C->D
的任何条件都不匹配。如果我想在3NF中匹配,则F中的每个FD必须至少满足其中一个条件。我说的对吗?好的!我完全明白了!我真的很感谢你的帮助!