2

我用谷歌搜索了很多,但我没有找到这个问题的答案。

前三个范式是常识。它们用于保存一致性并避免异常。但是为什么我们需要 BCNF 和第四范式呢?

(第五个我都不敢问了,因为我连它的作用都不懂)

4

2 回答 2

3

符合 BCNF 或 4NF 的好处与符合 2NF 或 3NF 的好处非常相似。它消除了一些有害的冗余,从而防止了数据库自相矛盾的某些情况。

表可以在 3NF 中但不能在 BCNF 或 4NF 中的情况很少见。但是它们确实发生了,并且它们被记录在对正常形式的完整描述中。

例如,请参阅此说明: https ://en.wikipedia.org/wiki/Boyce%E2%80%93Codd_normal_form 此说明显示了一个 3NF 但不是 BCNF 的表。

您应该花费多少精力来确保设计符合 BCNF 或 4NF,这取决于您的项目的性质。在许多设计情况下,检查是否符合 3NF 就足够了。

于 2015-08-19T10:12:09.270 回答
1

任何范式的好处是数据完整性和数据库设计,可以简洁准确地为一组给定的业务规则建模。3NF 和 4NF 不是特别重要或有用。BCNF 和 5NF 很重要。BCNF 关注强制执行正确的功能依赖集;5NF 关注强制执行正确的连接依赖集。

正如nvogel评论的那样

于 2015-09-15T13:08:34.303 回答