首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >理解每个范式很重要吗?

理解每个范式很重要吗?
EN

Stack Overflow用户
提问于 2018-05-24 01:05:10
回答 4查看 1.2K关注 0票数 -2

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

由于任何时候数据都是第三范式,它已经自动成为第二和第一范式,通过从一开始就完全标准化数据,整个过程实际上可以更轻松地完成。通过安排数据,每个表中的列(而不是主键)只依赖于整个主键,就可以很容易地做到这一点。

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

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

EN

回答 4

Stack Overflow用户

发布于 2018-06-04 20:10:24

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

一步一步地通过不同的范式,将帮助你弄清楚为什么我们这样做,这是为了达到E.F.Codd指定的目标。规范化的目标如下: 1.将关系集合从不必要的插入、更新和删除依赖中释放出来。2.减少在引入新类型的数据时对关系集合进行重组的需要,从而增加应用程序的寿命。3.使关系模型对用户更具信息性。4.使关系集合对查询统计信息保持中立,这些统计信息可能会随着时间的推移而变化。

这里有一张图片可以帮助你更好地理解不同的范式。P.S. BCNF实际上是3.5NF而不是4NF

票数 4
EN

Stack Overflow用户

发布于 2018-05-29 03:57:42

这不是这样的情况,如果它在3 NF中,它在1 NF中,nad 2 NF .it类似于,如果它在2 NF中,它必须事先在1 NF中,对于3NF .for归一化到3NF,它必须清除1和2 NF形式。

第一范式声明不应该存在多值属性。2NF指出,不应该存在对非主属性的部分依赖。3NF指出,不应该有传递性依赖。

谢谢

票数 -1
EN

Stack Overflow用户

发布于 2018-06-03 06:57:33

唯一重要的NF (范式)是5NF。

一个关系(值或变量)在5NF中,对于它可以被无损分解的每一种方式,组件可以按某种顺序连接回来,其中每个连接的公共列是原始连接的超键。(Fagin的PJ/NF论文的成员资格算法。)

这允许一个表是具有重叠含义但没有更新异常的其他表的连接。(尽管更新异常在ETNF停止,在4NF和5NF之间。)

无论如何,如果你想要一个较低的NF,你应该标准化到5NF,然后反规范化。人们满足于较低的NFs的主要原因是无知。有一定的成本和好处,但人们不知道或解决它们--代码必须限制更新,以解决有问题的更新异常。对给定NF的归一化不是通过较低的NFs来完成的;人们对所需的NF使用适当的算法。(大多数教科书都清楚地表明了这一点,尽管有些人错误地说要通过较低的NF,但放入较低的NF可以阻止原始的高NF的好版本在以后出现。)

PS没有单一的概念1NF,它与更高的NFs的所有共同点是都寻求“更好的”设计。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50493873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档