sql数据库习题,规范化过程中的范式及模式分解问题

sql数据库习题,规范化过程中的范式及模式分解问题,第1张

(1) 试说明R不是2NF模式的理由。

存在部分依赖,所以R不是2NF

 (2) 试把R分解成2NF模式集。

   R1(ABC),R2(AD)  说明:消除部分依赖关系

2.(1)R存在传递依赖。

(2)R1(CB),R2(BA)  说明:消除传递依赖关系

这个问题很难一言以蔽之,我给你举一个我常用的例子,希望对你有帮助:

设关系模式R(U,F)中,U={A,B,C,D,E},F={AB→C,C→D,D→E},R的一个分解ρ={ R1(A,B,C),R2(C,D),R3(D,E)}。试判断ρ具有无损连接性。

解:① 首先构造初始表,如图(a)所示。

A B C D E

R1(A,B,C) a1 a2 a3 b14 b15

R2(C,D) b21 b22 a3 a4 b25

R3(D,E) b31 b32 b33 a4 a5

(a)

A B C D E

R1(A,B,C) a1 a2 a3 a4 a5

R2(C,D) b21 b22 a3 a4 b25

R3(D,E) b31 b32 b33 a4 a5

(b)

图:分解的无损连接判断表

② 按下列次序反复检查函数依赖和修改M:

AB→C,属性A、B(第1、2列)中都没有相同的分量值,故M值不变;

C→D,属性C中有相同值,故应改变D属性中的M值,b14改为a4;

D→E,属性D中有相同值,b15、b25均改为a5。

结果如图(b)所示。

③ 此时第一行已为a1,a2,a3,a4,a5,所以ρ具有无损连接性。

说明:在上例步骤后,如果没有出现a1,a2,a3,a4,a5,并不能马上判断ρ不具有无损连接性。而应该进行第二次的函数依赖检查和修改M。直至M值不能改变,才能判断ρ是否具有无损连接性。

F在AB上的投影是:{A->B}

F在AC上的投影是:{A->C}

F在AD上的投影是:{A->D}

主要是根据投影的定义:设F是属性集U上的函数依赖集,Z包含于U,则F在Z上的投影为:{X->Y|X->Y属于F+,且X和Y的并集包含于Z}

以第一个为例:F在AB上的投影结果只可能是A->B、B->A,而F+={A->B,B->C,A->D,D->C,A->C,...}可知A->B属于F+但B->A不属于F+中,故F在AB上的投影是{A->B}

这种方法求F+比较麻烦,对于一些简单的题目可以这样,要是复杂一点的就要用另外一种方法了,不过本质上也是差不多的。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9632905.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存