Database design 3NF与BCNF:示例

Database design 3NF与BCNF:示例,database-design,relational-database,database-normalization,3nf,bcnf,Database Design,Relational Database,Database Normalization,3nf,Bcnf,哥们 好的,我有一个数据库类,这个例子让我觉得我真的没有完全理解这两个NFs之间的区别 我知道 对于R满足的每个非平凡FD X->A,关系R在3NF iff中至少满足以下条件之一: X是R的超级键,或 ba是R的一个关键属性 及 对于满足的每个非平凡FD X->A,在BCNF iff中有一个关系R 根据R,以下条件为真: X是R的超级键 下面是一个例子: R=A,B,C,df={AB->C,AB->D,C->A,D->B} 1.R在3NF中,为什么? 如果不是,则将其分解为3NF Sol: Ye

哥们

好的,我有一个数据库类,这个例子让我觉得我真的没有完全理解这两个NFs之间的区别

我知道

对于R满足的每个非平凡FD X->A,关系R在3NF iff中至少满足以下条件之一:

X是R的超级键,或

ba是R的一个关键属性

对于满足的每个非平凡FD X->A,在BCNF iff中有一个关系R 根据R,以下条件为真:

X是R的超级键

下面是一个例子:

R=A,B,C,df={AB->C,AB->D,C->A,D->B} 1.R在3NF中,为什么? 如果不是,则将其分解为3NF

Sol:
Yes. Find all the Candidate Keys:
AB, BC, CD, AD
Check all FDs in F for 3NF condition

那么,C->A不会导致违规吗?C不是一个超级键,它也不是微不足道的,D->B也是如此

但它不是BCNF:

R在BCNF中,为什么?如果不是,则将其分解为BCNF 不,因为对于C->A,C不是超级键。类似于D->B R1={C, D} ,R2={A,C},R3={B,D}
那么,C->A不会导致违规吗?C不是一个超级键,它也不是一个微不足道的

那么3NF的第二个条件呢?是R中某个键的属性吗


提示:这些练习的部分目的也是向您展示为什么3NF不是一个非常有用的范式,以及3NF和BCNF之间的区别很重要的情况,C->a不会导致违反吗?C不是一个超级键,它也不是一个微不足道的

那么3NF的第二个条件呢?是R中某个键的属性吗


提示:这些练习的部分目的也是为了向您展示为什么3NF不是一个非常有用的范式,以及3NF和BCNF之间的区别很重要的情况

可能重复@mostymostatacho好吧,我已经读到了这一点和其他3个线程,但是仍然…@MostyMostacho我不能在那里发表评论,我需要问你早期回答中的一些事情。@MostyMostacho可能是重复的。@MostyMostacho好吧,我已经读了这篇文章和其他3篇文章,但是仍然…@MostyMostacho我不能在那里发表评论,我需要问你早期回答中的一些事情。。