|
这是数据库的内容,不是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 dependency X->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}
$支持$$支持$$支持$ |
|