我搜索了很多,但我没有找到这个问题的答案。
前三种常规形式是常识。它们用于保持一致性并避免出现异常。但为什么我们需要BCNF和第四种常规形式?
(第五个我甚至不敢问,因为我甚至不明白它的作用)
答案 0 :(得分:1)
符合BCNF或4NF的好处与符合2NF或3NF的益处非常相似。它消除了一些有害的冗余,从而防止了数据库与自身矛盾的某些情况。
这是一种罕见的情况,表格可以在3NF但不能在BCNF或4NF。但它们确实发生了,它们在正常形式的完整描述中有记录。
例如,请参阅此说明:https://en.wikipedia.org/wiki/Boyce%E2%80%93Codd_normal_form 此描述显示的是3NF但不是BCNF的表。
确保设计符合BCNF或4NF需要花费多少精力取决于项目的性质。在许多设计情况下,检查3NF的一致性是否足够好。
答案 1 :(得分:0)
任何普通形式的好处都是数据完整性和数据库设计,可以简明而准确地模拟一组给定的业务规则。 3NF和4NF不是特别重要或有用。 BCNF和5NF很重要。 BCNF关注的是强制执行正确的功能依赖集; 5NF关注的是强制执行正确的连接依赖关系。