2021-4-26课程——数据库范式例题+Markdown-Unicode-LaTeX使用

本篇主要整理几道关于数据库范式的例题,同时练习使用一下数学符号的应用,Markdown编辑器最爱的仍然是Typora,强烈安利!
MarkDown-Unicode-LaTeX使用(以数据依赖关系中使用的符号为例)
Unicode Arrows:

← → ↑ ↓ ↚ ↛ ↮
X → Y; X ↛ Y

Unicode Math Symbols :

⊂ ⊃ ⊄ ⊅ ⊆ ⊇ ⊈ ⊉
X ⊂ Y; X ⊄ Y

LaTeX:
效果展示:

在这里插入图片描述

实现代码:
$X \leftarrow Y$ $X \rightarrow Y$ 
$X \nleftarrow Y$ $X \nrightarrow Y$
$X \not\leftarrow Y$ $X  \not\rightarrow Y$
$X \overset F \rightarrow Y$ $X \overset F \longrightarrow Y$
$X \overset P \rightarrow Y$  $X \overset P \longrightarrow Y$
$X \overset {传递} \rightarrow Y$ $X \overset {传递} \longrightarrow Y$
$(Sno,Cno) \overset F \rightarrow Grade$
$X \stackrel {F} {\longrightarrow} Y$
效果展示:

在这里插入图片描述

实现代码:
$X \subset Y$ $X \supset Y$ $X \not\subset Y$ $X \not\supset Y$
$X \subseteq Y$ $X \supseteq Y$ $X \nsubseteq Y$ $X \nsupseteq Y$

关于这一部分的内容,老师还推荐了网站,这里也一并附上。
链接1
链接2
链接3

数据库范式例题
解题过程:使用笨方法进行分析,后边的题也是一样的做法,就不再赘述了,这里只以第一题说明做题的思路和技巧。

一 .
Y(X1,X2,X3,X4)
(X1,X2)→X3
X2→X4

候选码?
属于第几范式?

一共有四个属性,每一个都考虑,这样不容易漏情况,当然这也是相对耗费时间的一种做法。
①考虑1个
X1不能推出X2,X3,X4,不是候选码
X2不能推出X1,不是候选码
X3不能推出X1, X2,不是候选码
X4不能推出X2,不是候选码
②考虑2个
(X1, X2)可以推出X3, X2单独又可以推出X4,全部属性都包含了,是候选码。√
(X1, X3)不能推出X2,直接排除,不是候选码
(X1, X4)不能推出X2,直接排除,不是候选码
(X2, X3)不能推出X1,直接排除,不是候选码
(X2, X4)不能推出X1,直接排除,不是候选码
(X3, X4)不能推出X1,X2,排除,不是候选码
考虑2个属性的已经得到候选码,直接结束,候选码是最小的超码!。所以候选码就是(X1, X2),对应的非主属性为X3, X4
因为(X1,X2)→X4, X2→X4,存在非主属性X4对候选码(X1,X2)的部分函数依赖;所以不属于2NF。
结论:候选码(X1,X2),属于第一范式。

小技巧,节省做题时间:
可以发现,在箭头右边的,一定不是候选码,因为他需要由其他属性推出;如果一个属性在左边,而要判断是否为候选码的属性组中没有该属性,则不是候选码;左边属性个数>=2,则任意单独一个不可以作为候选码。

二.
R(A,B,C,D)
F={AB→D,AC→BD,B→C}

候选码?
最高属于第几范式?

易得A, B, C, D不是候选码。(A, B)可以推出D,B单独又可推出C,所以为候选码。(A, C)可以推出B,也可推出D,所以为候选码。
所以非主属性为D,因为D没有部分依赖或传递依赖于码,所以为第三范式,即3NF。不是BCNF,因为B->C,但决定因素B不是码。

三.
R(X,Y,Z,W)
F={Y←→W,XY→Z}

候选码??
最高属于第几范式?

XY→X,XY→Y,XY→Z,因为Y→W,所以XY→W 所以 (X,Y)是候选码
XW→X,XW→W, 因为W→Y,XW→XY,因为XY→Z,XW→Z,XW→W,W→Y,XW→Y 所以(X,W)是候选码
非主属性为Z
是2NF,因为Z完全依赖于码
是3NF,因为Z没有传递依赖于码
不是BCNF 因为W→Y,决定者W不包含码
所以最高为3NF

四.
R(A,B,C,D,E) F={A→B,CE→A,E→D}

1 求候选码

CE→A,A→B,E→D,所以CE为候选码,即(C,E)

2 最高属于第几范式,为什么?

最高位第一范式。
不是2NF,因为非主属性D部分依赖于(C, E),所以也不可能是3NF

3 分解到3NF

首先分解到2NF
R1(A,B,C,E),R2(D,E)
因为 CE→A,A∕→CE,A→B ,存在非主属性对码的传递函数依赖,所以不属于3NF
分解为:R1(A,C,E),R2(A,B),R3(D,E)

五.
R(商店编号,商品编号,数量,部门编号,负责人)
每个商店的每种商品只在一个部门销售,
每个商店的每个部门只有一个负责人
每个商店的每种商品只有一个库存数量

1 求候选码

按照题意,设R(A,B,C,D,E),且有F={AB→D,AD→E,AB→C}
所以候选码为(A,B),因为AB→C, AB→D,因为AD→E,而D可由AB导出,所以AB→E。

2 R已达第几范式?为什么?

R已为2NF,非主属性为C D E,每一个非主属性都完全依赖于码,不可由码中的任意单独一个主属性蕴涵得出。
R不为3NF,因为AB→AD, AD→E(且E为非主属性),AD↛ AB,存在非主属性对码的传递依赖关系。

3 若不属于3NF,分解成3NF

R1(A,B,C,D)
R2(A,D,E)

六.
R(A,B,C,D,E,F) F={A→C,AB→D,C→E,D→BF}

1 写出关键字

候选码为(A,B)和(A,D)。
(A,B):因为A→C,所以AB→C,又因为C→E,所以AB→E;AB→D。所以AB为码
(A,D):因为A→C,所以AD→C,又因为C→E,所以AD→E;D→B,所以AD→B。所以AD为码

2 分解到2NF

非主属性为C E
AB→A,A→C 所以 AB→C,A→C 部分函数依赖
AD→F,D→F也是部分函数依赖
因此,根据第二范式的定义可分解为:R1(A,B,D),R2(A,C,E),R3(D,F)

3 分解到3NF

在2NF的基础上继续分解。
A→C,C\→A,C→E 传递依赖
所以将2NF中的R2(A,C,E)分为 (A,C),(C,E)
因此最终分解为R1(A,B,D),R2(A,C),R3(C,E),R4(D,F)

4 分解到4NF

这个老师还没有讲,自己看了一下书,不过还是有点蒙的,尤其是多值函数依赖那里。。
D→B,但D不包含码
R1 分解成 (A,D),(B,D),这样(A,D)和(B,D)中就都有主属性了。
因此最终分解为 R1(A,B),R2(B,D),R3(A,C),R4(C,E),R5(D,F)

猜你喜欢

转载自blog.csdn.net/weixin_45845039/article/details/116144771