abendrobotor 发表于 2006-7-9 10:47

询问关于SQL的Normalformen

这里有SQL的高手吗?
我请教个几个Normalform的定义。我们上课,讲到了3种Normalformen.

问题一:什么样的表才算Zweite Normalform?后边提到的prim是个什么概念?
用个例子,表Prof其中有四个属性,Professor,Dienststelle,Zimmer,Telefon 简单称P,D,Z,T
值P和D确定了值Z, 值Z确定了值T
所以可以写成:Prof = {PD bestimmt Z, Z bestimmt T}
情况一:Z和T不是prim
情况二:PD和Z都不是Schlüsselkandidat(书上这里写的互相矛盾了,其实是Schlüsselkandidat,所以这里我也不太明白)
在这个例子里Z和T都nichtprim,而且{PD}和{Z}都不是Schlüsselkandidat,所以表Prof符合Zweite Normalform

问题二,什么样的表算Dritte Normalform?有高手能大概讲讲么?
也是两种情况,
情况一:Z和T不是prim
情况二:PD和Z都必须是Superkandidat
比如上边PLZ的例子就不是Dritte Normalform,但是跟Superkandidat没什么关系吧?

basset 发表于 2006-7-9 16:09

讲起来比较麻烦。不过你去网上搜一下关键字:2NF和3NF就好了

no1rock 发表于 2006-7-9 16:38

这是数据库的内容,不是sql的内容,normalform是来评价数据库的设计的
问题一:什么样的表才算Zweite Normalform?后边提到的prim是个什么概念?
prim是candidate key中的一个,2NF没有prim-》none key

用个例子,表Prof其中有四个属性,Professor,Dienststelle,Zimmer,Telefon 简单称P,D,Z,T
值P和D确定了值Z, 值Z确定了值T
所以可以写成:Prof = {PD bestimmt Z, Z bestimmt T}
情况一:Z和T不是prim
情况二:PD和Z都不是Schlüsselkandidat(书上这里写的互相矛盾了,其实是Schlüsselkandidat,所以这里我也不太明白)
在这个例子里Z和T都nichtprim,而且{PD}和{Z}都不是Schlüsselkandidat,所以表Prof符合Zweite Normalform

PD是candidate key
P,D是prim
没有none key vollfunktional abhaengig von P或D
Prof is in 2NF

问题二,什么样的表算Dritte Normalform?有高手能大概讲讲么?
也是两种情况,
情况一:Z和T不是prim
情况二:PD和Z都必须是Superkandidat
比如上边PLZ的例子就不是Dritte Normalform,但是跟Superkandidat没什么关系吧?

针对所有functional dependencyX->Y满足以下条件中的一种
规则1:Y是X的子集(废话)
规则2:Y是prim
规则3:X是Superschluessel
例子
Z->T, Z不是Superschluessel,T也不是prim,所以violate了3NF的规则
符合的例子
M:{A,B,C,D}
F:{ABC->D,ABD->C}

$支持$$支持$$支持$

abendrobotor 发表于 2006-7-9 20:58

原帖由 no1rock 于 2006-7-9 17:38 发表
没有none key vollfunktional abhaengig von P或D
先谢谢你的解答,不过还有一点不太懂:
1,这句话是什么意思,能用单一一种语言解释一下么?三国语言有点看不懂的说.
2,prim在2NF里是什么意思?呆板的?静止的?硬的?还是什么?

chela 发表于 2006-7-9 23:21

用中文搜索 第一范式 第二范式。

wabh0052 发表于 2006-7-10 10:47

同意楼上的,看中文最直接了

这几个范式我理解是用来去除Redundanz(也就是冗余)的。。具体每个范式的规则要LZ仔细看看中文教材的解释,因为上面有些例子楼主一看就明了了。。我们在这里说也很难说太清楚

大厨 发表于 2006-7-10 13:17

上课肯定没有好好听讲的说,prim就是primaerschluessel

很简单,zwei Norm 有两点,1 是erste Norm 2 jede Attribute von ganzen Prim abhaengig ist

同理, dritte Norm也是两点, 1 是 zweite Norm 2 jede Attribute von nichts anderem als dem Prim abhaengig ist

所以很简单,先确定Primaer,然后再看其他Attribute和Primaer之间的关系

你举的例子,俺感觉更像是脑筋急转弯,没有什么实际意义

[ 本帖最后由 大厨 于 2006-7-10 14:20 编辑 ]
页: [1]
查看完整版本: 询问关于SQL的Normalformen