我有几个问题(我是数据库设计的初学者)。我知道要在3NF,我需要在1NF
,然后2NF
;但要进入4NF
,我是否需要加入3NF
或BCNF
?现在到第二个问题,我知道传递规则(A-->B, B --> C, which implies A --> C)
,但如果我有一个例子,FD (CE --> ABD, BD --> E)
可以说CE --> ABDE
吗?因为BD
中有ABD
(我相信在这种情况下它是一个微不足道的依赖,因为左边和右边都有E
。请让我知道,谢谢大家!
答案 0 :(得分:1)
归一化通常被教导为一个分解的过程:1NF然后是2NF然后是3NF等。这种逐步的方法基本上是一种教学练习,就像学龄儿童(或以前)被教导一样师;它有助于理解一些基本概念,即使这些步骤不是你可能在课堂外做的事情。理解这是一个学习练习,你应该意识到实际上有不止一种方法可以达到相同的最终结果。例如,你没有提到EKNF,它在逻辑上“介于”3NF和BCNF之间,但经常被忽略。如果您正在学习3NF,BCNF,4NF,那么最合乎逻辑的进展将是这样的顺序:3NF之后和4NF之前的BCNF。
CE - > ABD意味着CE - > ABDE,因为右侧的E是左侧的子集。 CE - > ABDE不是一个简单的依赖,因为琐碎意味着右侧的整个必须是左侧的子集。