2015-09-20 66 views
0

只是好奇:有一个原因,为什么一步不能做所有必要的标准化 ? Isnt归一化最终是重绘功能依赖(FD)图吗?我们从一个FD图/图开始,并且我们希望最终得到一个图(顶点是属性,属性a,b之间存在一条边,如果b是FD上的FD)代表(编辑)BCNF中的关系?编辑:我的意思是:我们从一个FD图形开始,这是一个图形配对属性a,b如果b是FD上的A,也就是说,我们加入a和b的边缘iff b = f(a )。 从这张图中,我们想要得到一个图(FD)_2,其具有某些性状,相当于已经完全归一化,即(FD)_2在5NF或6NF中,使用图和图之间的图 - 理论关系给定正常形式。如果我们基本上是将一个图形映射到另一个图形。作为FD的函数,我们是否可以直接使用这种方法来绘制(FD)_2来跳过标准化步骤?跳过规范化的步骤?

+0

@philipxy:ISNT一个FD图表从所述组属性以自身的地图,接合两个属性A,B当且仅当B = F(A),即,如果b为FD上一个? – gary

回答

1

是:标准化可以通过重新排列(超)图来表征。它不必通过以某种顺序通过正常形式来完成。 (这只是一个常见的误解。)

从1NF到6NF的连续体上的正常形式是处理有问题的FD(功能依赖性)和JD(联合依赖性)的那些。可以对它们进行排序,以便如果一个关系值或变量满足一个表单,则它满足之前的表单但不一定在之后。目前:1NF,2NF,3NF,EKNF,BCNF,4NF,ETNF,RFNF,SKNF,5NF又名PJ/NF,超强PJ/NF,6NF。这种排序本身无关,分解为关系值或高正常形式的变量。没有必要通过一系列的形式来分解。

正常形式只是不同的条件,已发现有用的属性。而且,正常形式只是那些已经被发现的形式;可能还有其他有用的特性需要加以区分。我们不通过他们正常化现在。 ETNF是2012年!

至于你的图形特性:

一个FD有设定的属性决定的。这决定了另一个集合。但是,由于一个人确定其他人是否仅仅确定每个集合恰好包含另一个集合的集合,非正式但明确地确定了其他集合,我们还讨论了确定属性的一组属性。 FD {...} - > a保存iff a = f(...)。 (可以有零个或多个行列式属性。)BCNF是存在问题的FD的最高正常形式,但有更高的正常形式是有问题的JD。具有给定组件的JD持有关系,如果它始终是它们的连接。即其含义/谓词可以表示为组件的“与”。所以FD {...} - > A成立,如果一个JD拥有对应于含有A = F(...)的意义/谓词! MVD(多值依赖)对应于某个二进制JD。 5NF意味着每一个拥有的JD都是“隐含在键中”(一个技术术语)。有些算法从FD开始直接分解为2NF,直接分解为3NF并直接分解到BCNF(具有各种其他属性,如保存FD)。见the Alice book。可以简单地通过分解直到不存在不平凡的JD,而不考虑FD来分解为6NF。

(参见CJ日期的Database Design and Relational Theory: Normal Forms and All That Jazz。)

+0

谢谢,请给我时间仔细阅读。 – gary