【数据库作业15】第六章: 关系数据理论

数据依赖

是一个关系内部属性与属性之间的一种约束关系;通过属性间值的相等与否体现出来的数据间相互联系;是现实世界属性间相互联系的抽象;是数据内在的性质;是语义的体现
主要类型: 函数依赖、多值依赖
1、函数依赖

函数依赖简单点说就是:某个属性集决定另一个属性集时,称另一属性集依赖于该属性集。函数依赖又分为:平凡函数依赖、非平凡函数依赖。
平凡函数依赖即为自己确定自己的一部分,例如:ABC全部为真 \rightarrow A为真,因此这部分比较简单我们不做过多讨论。
非平凡函数依赖即为自己确定他人。
在一个关系中,若某个非主属性数据项依赖于全部关键字称之为完全函数依赖
在关系模式R(U)中,如果X→Y,并且存在X的一个真子集 X 0 X_0 ,使得 X 0 X_0 →Y,则称Y对X部分函数依赖
在关系模式R(U)中,如果X→Y(Y⊈X),Y↛X,Y→Z,Z⊈Y, 则称Z对X传递函数依赖

2、多值依赖
设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。
平凡多值依赖和非平凡的多值依赖:
若X→→Y,而Z=Ф,则称X→→Y为平凡的多值依赖
否则称X→→Y为非平凡的多值依赖
K为R<U,F>中的属性或属性组合。若K → U,则K称为R的一个候选码(Candidate Key)。
如果U部分函数依赖于K,即K → U,则K称为超码候选码是最小的超码,即K的任意真子集都不是候选码。
若关系模式R有多个候选码,则选定其中的一个做为主码(Primary key)。
关系模式 R中属性或属性组X 并非 R的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码(Foreign key)也称外码
主码与外码一起提供了表示关系间联系的手段。
包含在任何一个候选码中的属性 ,称为主属性
不包含在任何码中的属性称为非主属性
整个属性组是码,称为全码(All-key)。
范式是符合某一种级别的关系模式的集合
某一关系模式R为第n范式,可简记为R∈nNF。
一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化。
关于范式这一部分可以参考一下以下的博客,讲的也是非常清楚:

数据库范式简单讲解(1NF、2NF、3NF、4NF、BCNF)

习题:

在这里插入图片描述
建立关系数据库:
在这里插入图片描述
对每个关系进行讨论:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(1)正确:二目关系是说只有两个属性的表。即只有两个属性不存在传递函数依赖。
(2)正确:只有两个属性,决定因素必含有码。
(3)正确:只有两个属性不存在非平凡的多值依赖,属于4NF。
(4)错误:当且仅当去掉或者多值依赖A->->B
(5)正确
(6)正确
(7)正确
(8)错误:Student(sno,cno) \rightarrow Student.grade,但是学号和课程号不能分别的推出成绩。

8、证明:
(1)如果R是BCNF关系模式,则R是3NF关系模式,反之则不然。
假设R \in BCNF,但R \notin 3NF
则R中存在码X,属性组Y,非属性组Z,Y↛X,Z \notin Y,使得X \rightarrow Y,Y \rightarrow Z成立
Y不是R的候选码,由以上可知R中存在传递关系,则R \notin BCNF,假设不成立。
(2)如果R是3NF关系模式,则R一定是2NF关系模式。
若R \in 3NF,则R消除了非主属性对候选键的传递依赖
此时若有非主属性因素Z局部依赖候选键(A,B)中的A,则仍然存在非主属性对候选键的传递依赖,因此不存在局部依赖
即R \in 2NF

附加题:
一.
Y(X1,X2,X3,X4)
(X1,X2)→X3
X2→X4
1.侯选码?
2.属于第几范式?

二.
R(A,B,C,D)
F={AB→D,AC→BD,B→C}
侯选码?最高属于第几范式?
三.
R(X,Y,Z,W)
F={Y←→W,XY→Z}
1.侯选码?
2.最高属于第几范式?
四.
R(A,B,C,D,E) F={A→B,CE→A,E→D}
1.求候选码。
2.最高属于第几范式,为什么?
3.分解到3NF。
五.
R(商店编号,商品编号,数量,部门编号,负责人)
每个商店的每种商品只在一个部门销售,
每个商店的每个部门只有一个负责人,
每个商店的每种商品只有一个库存数量。
1.求候选码。
2.R已达第几范式?为什么?
3.若不属于3NF,分解成3NF。
六.
R(A,B,C,D,E,F) F={A→C,AB→D,C→E,D→BF}
1.写出关键字。
2.分解到2NF。
3.分解到3NF。
4.分解到4NF。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这一部分用时比较长,具体时间记得不太清楚了,虽然上课当时感觉听懂了,但隔了两天再做题感觉基本上又不会了,所以开始的时候还是边查资料边做题,到了后面才又有感觉了,基本上就是直接写答案。这一部分整体做下来有些题目心里还是没底。而且排版上也不是很好,开始是想使用latex编辑符号来着,不过后面发现这部分需要编辑的符号太多而且耗费时间,把做题的注意力都耗费在了编辑符号上面,所以后面又选择了直接通过文字来写的,总的来说后面还需要多练习。

原创文章 25 获赞 20 访问量 9733

猜你喜欢

转载自blog.csdn.net/Freedomhy/article/details/105526802