数据库作业15:关系数据理论

一、本章总结

本章总结–链接

二、本章习题

数据库作业15:关系数据理论

(1)
【学生】Student(Sno,Sname,Sbirth,Deptname,Cno,Rno)
【班级】Class(Cno,Pname,Deptname,Cnum,Cyear)
【系】Dept(Deptname,Deptno,Deptadd,Dnum)
【学会】M(Mname,Myear,Madd,Mnum)
【学会人员信息】SM(Sno,Mname,SMyear)
(2)
【学生】不存在:不存在就是找不到,我感觉这里因为所有属性对学号都是直接依赖。(主要是有很多互相依赖,就不存在传递了)
【班级】不存在:函数传递如下:
班号→ 专业名→系名
班号→系名
班号→ 人数
班号→入学年份
(专业名,入校年份)→班号
班号→(专业名,入校年份)
【系】不存在
【学会】不存在
【学会人员信息】不存在
如图:emm怎么传上来这么大
数据库作业15:关系数据理论
(3)
(专业名,入校年份)→班号
(学号,学会名)→入会年份
这两个都是完全函数依赖

其他的、是部分函数依赖,有点多,因为跟语义无关,就不都写出来了(主要是确实麻烦)

(4)
【学生】Sno(学号)是候选码,Cno(班号)和Deptname(系名)是外码。
【班级】Cno(班号)和(专业名,入校年份)是候选码,Deptname(系名)是外码。
【系】Deptname(系名)和Deptno(系号)是候选码。
【学会】Mname(学会名)是候选码。
【学会人员信息】(Sno,Mname)(学号,学会名)是候选码。Sno,Mname是外码。

全码不存在,因为不存在U对U的完全函数依赖。

数据库作业15:关系数据理论
(1)
设R是BCNF
BCNF每一个决定属性集都包含候选码,所以BC也是候选码。
答:BC是候选码的时候R是BCNF

(2)
解:
L=CE
R=∅
LR=ABD
L肯定是码,把LR和R依次带入L判断可得R的所有码:ACE,BCE,DCE
如何求关系模式的码

(3)函数依赖的决定属性集并不含有码,所以R属于3NF。

数据库作业15:关系数据理论
(1)正确
(2)正确
(3)正确
(4)错误,当函数依赖B→A在R上成立时,关系R(A,B,C)也等于其投影R1(A,B)和R2(A,C)的连接。
(5)正确
(6)正确
(7)正确
(8)错误,比如(学号,科目)→成绩,单独的任何一个都不能确定具体成绩

数据库作业15:关系数据理论
(1)证明:
设R是BCNF,不是3NF。
则R中必然存在这样的码X、属性组Y及非主属性Z(Z ⊇ Y),使得X→Y,Y→Z成立,Y ↛ X不成立,
Y →Z且Z ⊆ Y,Y不含有码
R若是BCNF,则若X →Y且Y ⊆ X时X必含有码定义冲突,所以证得:R若是BDNF则必是3NF

若R是3NF,存在非主属性对码的传递依赖,则不是BCNF.

(2)证明:
定义1:R中若不存在这样的码X、属性组Y及非主属性Z(Z ⊇ Y),使得X→Y,Y→Z成立,Y ↛ X不成立,则R是3NF。
定义2:2NF的每一个非主属性都完全函数依赖于任何一个候选码

设R不属于2NF
因为2NF的每一个非主属性都完全函数依赖于任何一个候选码
所以R必然有一个非主属性Z是部分依赖于一个候选码,我们设这个候选码是(X,Y)
设Y→Z,则X ↛ Z,(X,Y)→Y,Y↛(X,Y)
(X,Y)是码,Y是属性组,Z是非主属性
所以得到(X,Y)→Y,Y↛(X,Y),Y→Z,
与3NF定义冲突,则“R属于3NF不属于2NF”是错的
证得:如果R属于3NF,则必属于2NF

三、附加题

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

解:候选码(X1,X2)
第一范式满足
(X1,X2)→X3, X2→X4,存在非主属性X4对码(X1,X2)的部分函数依赖
第二范式不满足
Y最高属于第一范式

  1. R(A,B,C,D)
    F={AB→D,AC→BD,B→C}
    (1)侯选码?
    (2) 最高属于第几范式?

解:
L=A
R=D
LR=ABCD
候选码为:(A,B),(A,C),非主属性D
第一范式满足
第二范式满足
第三范式满足(无传递依赖)
B→C,决定属性B不包含候选码,非BCNF
R最高属于第三范式

  1. R(X,Y,Z,W),F={Y←→W,XY→Z}
    (1)侯选码?
    (2)最高属于第几范式?

解:候选码为(X,Y),(X,W)
第一范式满足
第二范式满足
第三范式满足(无传递依赖)
Y←→W,决定因素YM都不包含码,不是BCNF.
R最高属于第三范式

  1. R(A,B,C,D,E) F={A→B,CE→A,E→D}
    (1)求候选码。
    (2)最高属于第几范式,为什么?
    1NF。非主属性B、D并不完全依赖于码,非2NF。
    (3)分解到3NF。

解:候选码:(C,E)
第一范式满足
E→D,存在非主属性D对主码的部分函数依赖,不满足2NF
R最高属于第一范式
分解到2NF
R1(E,D)
R2(A,B,C,E)
分解到3NF
R1(E,D)
R2(B,C,E)
R3(A,B)

  1. R(商店编号,商品编号,数量,部门编号,负责人)
    每个商店的每种商品只在一个部门销售,
    每个商店的每个部门只有一个负责人,
    每个商店的每种商品只有一个库存数量。
    (1)求候选码。
    (2)R已达第几范式?为什么?
    (3)若不属于3NF,分解成3NF。
    R1(A,B,C,D),R2(A,D,E)

解:R(A,B,C,D,E),F(AB→CD,AD→E)
候选码:(A,B)
第一范式满足
第二范式满足(。。。感觉可能有点问题,但是说不出来
非主属性E完全依赖于AD,AD依赖于码,存在非主属性对码的传递依赖
R最高属于第二范式
分解成3NF
R1(A,B,C,D)
R2(A,D,E)

  1. R(A,B,C,D,E,F) F={A→C,AB→D,C→E,D→BF}
    (1)写出关键字。
    (2)分解到2NF。
    R1(A,B,D,F),R2(A,C,E)
    (3)分解到3NF。
    R1(A,B),R2(C,D,F,E)
    (4)分解到4NF。
    R1(A,B),R2(C,E),R3(D,F)

解:
L=A
R=EF
候选码:(A,B),(A,D)
分解到2NF,非主属性完全函数依赖于任何一个候选码
R1(A,B,D)
R2(A,C,E)
R3(B,D,F)

分解到3NF,消除非主属性对码的传递依赖
R1(A,B,D)
R2(C,E)
R3(B,D,F)

分解到4NF,消除非凡且非函数依赖的多值依赖
R1(A,B,D)
R2(C,E)
R3(D,F)

The end
大概用时:5.5h,有的地方还是弄得不是很清楚。。