【实验名称】
范式的判定和规范
【目的与要求】
1.理解不合理的关系模式存在的问题。
2.理解规范化理论
3.理解函数依赖、平凡函数依赖、非平凡函数依赖、完全函数依赖、部分函数依赖、传递函数依赖
4.理解码、掌握码的判定
5.掌握2NF、3NF、BCNF的判断和分解
【实验内容】
1.已知教师关系模式T(Tno,Tname,SD,Sdname,Cno,Coursenum)
其中:Tno教师号、Tname教师姓名、SD系名、Sdname系主任名、CNO课程号、Coursenum周学时。
语义为:
一个系有多个老师,一个老师只能在一个系;每个系都有一个系主任;假设教师有重名,系主任名也可能有重名。每个教师教多门课,一门课可有几个教师开设。当某个老师讲授某门课后,其周学时就固定了。
2.设有关系模式R(A,B,C,D,E,F),其函数依赖集为F=。
【操作步骤】
针对实验内容1完成如下3个小题:
(1)写出关系模式T的基本函数依赖和主码。
令其相应对应为A,B,C,D,E,F。
T=(C->D, A->BC, AE->F)
AE为主码
(2)原关系模式T为几范式?为什么?分解成高一级范式,并说明为什么?
为一范式。
A决定BC,B部分依赖于A,故为一范式。
T1(AEF)
T2(ABCD)
F完全依赖于AE。B,C,D完全依赖于A。为二范式。
(3)将关系模式分解成3NF,并说明为什么?
T1(AEF)
T2(ABC)
T3(CD)
F完全依赖于AE,BC完全依赖于A,D完全依赖于C。
针对实验内容2完成如下3个小题:
(1)指出R的所有候选码并说明原因。
CE
CE可以推出其他ABDF属性。
(2)R属于几范式,为什么?
为一范式。
因为F由CE共同决定,F部分依赖于C。
(3)将R分解为高一级范式。
R1(ED)
R2(ABC)
R3(CEF)
【分析与思考】
(1)不合理的关系模式存在什么问题?
数据冗余太大,更新异常,插入异常,删除异常
(2)平凡函数依赖、非平凡函数依赖、完全函数依赖、部分函数依赖和什么不同?
非平凡函数依赖:设一个关系为R(U),X和Y为属性集U上的子集,若XY且X不包含Y,则称XY为非平凡函数依赖。 平凡函数依赖:(接上非平凡函数依赖定义)若Y包含于X,则称XY称为平凡函数依赖。 部分函数依赖:设X,Y是关系R的两个属性集合,存在XY,若X’是X的真子集,存在X’Y,则称Y部分函数依赖于X,此处的x'是有可能和Y相等的,也就是说Y有可能包含于X,而此时也就成了平凡函数依赖。 所以呢非平凡函数依赖和部分函数依赖的区别就在于X包不包含Y,也就是Y是不是X的子集的区别。
(3)2NF、3NF分别允许有什么依赖,不允许有什么依赖?
满足第二范式,非主属性值要完全依赖于主码 非码属性不相互依赖
满足第三范式,不存在传递依赖。
领取专属 10元无门槛券
私享最新 技术干货