首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么不使用所有的范式?

为什么不使用所有的范式?
EN

Stack Overflow用户
提问于 2015-12-26 07:52:37
回答 1查看 174关注 0票数 2

大多数情况下,如果你在互联网上看到只有第三或第四种范式被讨论,如果你读到有多达7种范式,那么为什么人们在互联网上没有讨论它们,无论是在YouTube上还是在任何其他地方,你几乎找不到任何与它们相关的例子。

EN

回答 1

Stack Overflow用户

发布于 2015-12-26 13:20:11

主要是1.忽视好处和2. DBMS的局限性的组合。

人们可以将这些局限性归咎于设计者和实施者的无知,但可能主要是用户的无知,导致没有市场,导致局限性。无知不仅包括规范化的好处,还包括完整性约束的好处。

对更高级别NFs的规范化使用自然连接回基表的组件替换了基表。换句话说,规范化用每个...的一个表替换了一个具有... AND ...表单的行成员资格标准的表。问题AND往往是显而易见的,所以最初的表格设计大多已经在5NF中完成了。

所有的基表都可以归一化到5NF。但是5NF设计可能需要检查自然连接组件&进行投影可以返回组件。有时这需要加入,但它可以涉及更少的内容。公认的智慧,即3NF是足够的,愚蠢地错误地假设3NF关系与5NF只有那么一点点的距离。

DBMS限制问题是5NF完整性所必需的声明性约束(或SQL触发器和原子性)通常不容易获得。但即便如此,如果人们只想使用通常可用的声明性约束(SQL PK、UNIQUE、NOT NULL、FK、CHECK和indexes),那么他们应该规范化到5NF,然后有意识地去规范化。在非正规化中,他们选择避免维护5NF的成本。但为了正确的完整性,他们的代码必须支付处理随后的更新异常的成本。反对5NF的论点批评了前一种成本,但忽略了后一种成本。

PS范式只是已经发现的具有有用性质的不同条件。也有不同的公理和算法。从1NF到6NF的连续体上的范式是那些处理有问题的FD(函数依赖)和JDs (连接依赖)的范式。可以对它们进行排序,以便如果一个关系值或变量满足一个形式,那么它就满足之前的形式,但不一定满足之后的形式。

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

https://stackoverflow.com/questions/34467419

复制
相关文章

相似问题

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