跳过标准化步骤? [英] Skipping steps in Normalization?

查看:97
本文介绍了跳过标准化步骤?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

只是好奇:有人出于某种原因不能一步一步完成所有必要的标准化
吗?归一化是否最终会重绘功能依赖关系(FD)图?我们从FD图/图形开始,最后要以图形表示(顶点是属性,如果b是a上的FD,则属性a,b之间有一条边)表示(编辑)BCNF中的关系?

Just curious: is there some reason why one cannot do all necessary normalizations in a single step? Isnt normalization ultimately the redrawing of the Functional Dependency (FD) graph? We start out with an FD diagram/graph and we want to end up with a graph (vertices are attributes, there is an edge between attributes a,b if b is FD on a ) representing a relation in (Edit) BCNF ?

编辑:我的意思是:我们从FD图开始,这是一个图配对属性a,b,如果b是A上的FD,即我们加入a和b,边缘为iff b = f(a)。
从该图我们想要获得具有某些特征的图(FD)_2,这些特征等同于已经完全标准化,即(FD)_2使用5NF或6NF,使用图之间的图理论关系图和给定的标准形式。如果是,那么我们基本上是将一个图映射到另一个图。我们可以直接使用此方法-作为FD的函数来绘制(FD)_2来跳过标准化步骤吗?

What I mean is : we start with a FD graph , which is a graph pairing attributes a,b iff b is FD on A, i.e., we join a and b with an edge iff b=f(a). From this graph we want to obtain a graph (FD)_2 with certain traits, which are equivalent to having been fully normalized, i.e., (FD)_2 is in 5NF or 6NF, using the graph-theoretical relation between a graph and a given normal form. If So we are basically mapping one graph to another graph. Can we use this approch-- drawing (FD)_2 directly, as a function of FD, to skip normalization steps?

推荐答案

是:可以通过重新排列(超级)图形来表征归一化。不必通过按某种顺序遍历普通形式来完成。 (这是一个普遍的误解。)

Yes: Normalization can be characterized by rearranging (hyper)graphs. It does not have to be done by moving through normal forms in some order. (It's just a common misconception that it is.)

从1NF到6NF连续体的正常形式是那些处理有问题的FD(功能依赖性)和JD(联接)的形式。依赖项)。可以对它们进行排序,以使如果关系值或变量满足形式,则它可以满足条件,但不一定满足条件。当前:1NF,2NF,3NF,EKNF,BCNF,4NF,ETNF,RFNF,SKNF,5NF aka PJ / NF,超强PJ / NF,6NF。这种排序本身与分解为较高范式的关系值或变量无关。

The normal forms on the continuum from 1NF to 6NF are those dealing with problematic FDs (functional dependencies) and JDs (join dependencies). They can be ordered so that if a relation value or variable satisfies a form then it satisfies the forms before but not necessarily after. Currently: 1NF, 2NF, 3NF, EKNF, BCNF, 4NF, ETNF, RFNF, SKNF, 5NF aka PJ/NF, Overstrong PJ/NF, 6NF. This ordering has nothing to do per se with decomposing to relation values or variables that are in higher normal forms. It is not necessary to decompose through a sequence of forms.

正常形式只是发现了有用特性的不同条件。而且,正常形式就是已经发现的形式。可能还有其他有用的属性要加以区分。我们不会通过他们来规范 now 。 ETNF是2012年!

The normal forms are just different conditions that have been found with helpful properties. Moreover, the normal forms are just those that have been discovered; there may well be other helpful properties to be distinguished. We don't pass through them to normalize now. ETNF is 2012!

关于您的图形特征:

FD设置了 属性作为行列式。它确定另一个 set 。但是,由于只有当一个人确定每个集合中恰好包含另一个成员时,一个人才能确定另一个人,因此,我们非正式地但毫不含糊地讨论了确定属性的一组属性。 FD {...}-> a满足iff a = f(...)。 (可以有零个或多个行列式属性。)BCNF是有问题的FD的最高正常形式FD,但是存在有问题的JD的较高的正常形式。具有给定组件的JD如果始终是它们的联接,则保持关系。即,其含义/谓词可以表示为组件的AND。因此,FD {...}-> A成立,只要JD持有与合取A = F(...)的含义/谓词相对应! MVD(多值依赖项)对应于某个二进制JD。 5NF表示持有的每个JD都由键暗示(一个技术术语)。

A FD has a set of attributes as determinant. Which determines another set. But since the one determines the other if and only if the one determines each of the sets that contain exactly one member of the other, informally but unambiguously we also talk about a set of attributes determining an attribute. A FD {...} -> a holds iff a = f(...). (There can be zero or more determinant attributes.) BCNF is the highest normal form re problematic FDs, but there are higher normal forms re problematic JDs. A JD with given components holds in a relation iff it is always their join. Ie its meaning/predicate can be expressed as the AND of the components'. So a FD {...} -> A holds iff a JD holds corresponding to a meaning/predicate with conjunct A = F(...)! A MVD (multi-valued dependency) corresponds to a certain binary JD. 5NF means that every JD that holds is "implied by the keys" (a technical term).

有些算法以FD开头直接分解为2NF,直接分解为3NF并直接传递给BCNF(具有其他各种属性,例如FD的保存)。请参见爱丽丝书。只需分解直到没有无关紧要的JD,而不考虑FD,就可以分解为6NF。

There are algorithms that starting with FDs decompose directly to 2NF, directly to 3NF and directly to BCNF (with various other properties like preservation of FDs). See the Alice book. One can decompose to 6NF simply by decomposing until there are no nontrivial JDs, without regard to FDs.

(请参阅CJ Date的数据库设计和关系理论:范式和所有爵士乐。)

(See C. J. Date's Database Design and Relational Theory: Normal Forms and All That Jazz.)

这篇关于跳过标准化步骤?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆