首页 > 解决方案 > 了解每个范式是否重要

问题描述

我已经学习数据库设计和编程很长一段时间了,但我仍然无法理解每个单独的范式(1NF,2NF,3NF。)

看到任何时候数据处于第三范式,它已经自动处于第二和第一范式,通过从一开始就对数据进行完全标准化,整个过程实际上可以不那么繁琐。我可以通过排列数据来轻松完成此操作,以便每个表中的列(除了主键之外)仅依赖于整个主键。

如果我们可以通过执行我所描述的操作来简单地完全规范化数据,那么理解每个单独的范式有多重要?

编辑:我最终要问的是:在对数据进行规范化时,通过每个范式的步骤是否重要,或者只进入第三范式是否合适,因为结果最终是相同的?

标签: databasedatabase-normalization

解决方案


我强烈建议您了解每个范式,因为这将帮助您确定或调查当前数据库可能存在的任何问题,因为有时您可能每次都没有完美的场景,了解每个范式将帮助您了解现有数据库的当前问题数据库设计(如果有的话)。

逐步通过不同的范式将帮助您弄清楚我们为什么这样做,这是为了实现 EF Codd 指定的目标。规范化的目标如下: 1. 将关系集合从不需要的插入、更新和删除依赖中解放出来。2. 减少随着新类型数据的引入而重新构建关系集合的需要,从而增加应用程序的生命周期。3. 使关系模型为用户提供更多信息。4. 使关​​系的收集与查询统计无关,因为这些统计可能随着时间的推移而改变。

这是一张图片,可以帮助您更好地理解不同的范式。PS BCNF 实际上是 3.5NF 而不是 4NF

1NF、2NF、3NF、BCNF


推荐阅读