5NF and Database Design
2 days ago
- #logical modeling
- #database normalization
- #fifth normal form
- 文章批评了第五范式(5NF)的传统教学,认为其不必要地复杂化,并提出了更实用的设计方法。
- 调查了维基百科、Decomplexify和Barry Johnson博客中的例子,指出了其中人为场景的问题,尤其是维基百科中不清晰的示例。
- 强调数据库设计应从业务需求的逻辑模型出发,从而推导出规范化的物理模式,而非直接使用5NF。
- 描述了两个关键的设计模式:AB-BC-AC三角形(如冰淇淋偏好)和ABC+D星形(如音乐会中的音乐家)。
- 解释了物理表设计涉及选择,如基于唯一性约束的复合主键与合成主键。
- 通过扩展示例展示模式可以共存,如在冰淇淋模型中添加特定偏好。
- 讨论了其他概念,如音乐家示例中的技能关联,强调了其与表演记录的独立性。
- 引用了关于规范化的历史文献,建议以逆序教学,将6NF作为基础。
- 结论是5NF过于复杂,主张采用需求驱动、逻辑模型的方法来避免冗余和异常。