第四范式有什么好处?
what is the benefit of the Fourth normal form?
我用谷歌搜索了很多,但没有找到该问题的答案。
前三个范式是常识。它们用于保存一致性并避免异常。但是为什么我们需要BCNF和第四范式呢?
(第五个我都不敢问,因为我连它的作用都不懂)
符合 BCNF 或 4NF 的好处与符合 2NF 或 3NF 的好处非常相似。它消除了一些有害的冗余,从而防止了数据库自相矛盾的某些情况。
table 可以在 3NF 中但不能在 BCNF 或 4NF 中的情况很少见。但它们确实会发生,并且会在范式的完整描述中记录下来。
例如,看到这个描述:https://en.wikipedia.org/wiki/Boyce%E2%80%93Codd_normal_form
此描述显示 table 属于 3NF 而不是 BCNF。
为了确保设计符合 BCNF 或 4NF,您应该付出多少努力取决于您项目的性质。在许多设计情况下,检查是否符合 3NF 就足够了。
The benefits of any normal form are data integrity and a database design that concisely and accurately models a given set of business rules. 3NF and 4NF are not particularly important or useful. BCNF and 5NF are important. BCNF is concerned with enforcing the right set of functional dependencies; 5NF is concerned with enforcing the right set of join dependencies.
评论
我用谷歌搜索了很多,但没有找到该问题的答案。
前三个范式是常识。它们用于保存一致性并避免异常。但是为什么我们需要BCNF和第四范式呢?
(第五个我都不敢问,因为我连它的作用都不懂)
符合 BCNF 或 4NF 的好处与符合 2NF 或 3NF 的好处非常相似。它消除了一些有害的冗余,从而防止了数据库自相矛盾的某些情况。
table 可以在 3NF 中但不能在 BCNF 或 4NF 中的情况很少见。但它们确实会发生,并且会在范式的完整描述中记录下来。
例如,看到这个描述:https://en.wikipedia.org/wiki/Boyce%E2%80%93Codd_normal_form 此描述显示 table 属于 3NF 而不是 BCNF。
为了确保设计符合 BCNF 或 4NF,您应该付出多少努力取决于您项目的性质。在许多设计情况下,检查是否符合 3NF 就足够了。
评论The benefits of any normal form are data integrity and a database design that concisely and accurately models a given set of business rules. 3NF and 4NF are not particularly important or useful. BCNF and 5NF are important. BCNF is concerned with enforcing the right set of functional dependencies; 5NF is concerned with enforcing the right set of join dependencies.