数据库规范化的几个问题

时间:2015-02-19 03:33:39

标签: database-design database-normalization

我有几个问题(我是数据库设计的初学者)。我知道要在3NF,我需要在1NF,然后2NF;但要进入4NF,我是否需要加入3NFBCNF?现在到第二个问题,我知道传递规则(A-->B, B --> C, which implies A --> C),但如果我有一个例子,FD (CE --> ABD, BD --> E)可以说CE --> ABDE吗?因为BD中有ABD(我相信在这种情况下它是一个微不足道的依赖,因为左边和右边都有E。请让我知道,谢谢大家!

1 个答案:

答案 0 :(得分:1)

归一化通常被教导为一个分解的过程:1NF然后是2NF然后是3NF等。这种逐步的方法基本上是一种教学练习,就像学龄儿童(或以前)被教导一样师;它有助于理解一些基本概念,即使这些步骤不是你可能在课堂外做的事情。理解这是一个学习练习,你应该意识到实际上有不止一种方法可以达到相同的最终结果。例如,你没有提到EKNF,它在逻辑上“介于”3NF和BCNF之间,但经常被忽略。如果您正在学习3NF,BCNF,4NF,那么最合乎逻辑的进展将是这样的顺序:3NF之后和4NF之前的BCNF。

CE - > ABD意味着CE - > ABDE,因为右侧的E是左侧的子集。 CE - > ABDE不是一个简单的依赖,因为琐碎意味着右侧的整个必须是左侧的子集。