单元关系数据理论.pptx
第七单元关系数据理论;关系数据库由一组关系组成
关系数据库的设计:如何构造关系?
如何解决数据冗余和更新异常问题;第七单元关系数据理论;7.1问题的提出
什么是数据依赖?
数据依赖是一种特殊的约束,定义属性值间的相互关连(主要体现于值的相等与否)。
一个关系内部属性与属性之间的约束关系;
现实世界属性间相互联系的抽象;
数据内在的性质;
语义的体现。
;7.1问题的提出;分析:数据依赖对关系模式的影响
[例1]创建关系模式sdc(Sno,Sname,dno,dmanager,cname,grade)。
单一的关系模式:sdc(U,F),U:属性集F:函数依赖集
U={Sno,Sname,dno,dmanager,cname,grade}
F={Sno→dno,Sno→Sname,dno→dmanager,(Sno,Cname)→grade}
分析:主码?
存在的问题:数据冗余、操作(增、删、改)异常。;原因:由存在于模式中的某些数据依赖引起的。
解决方法:通过分解关系模式来消除其中不合适的数据依赖。
如:将单一的关系模式分成3个关系模式:
S(Sno,Sname,dno,Sno→dno);
S_C(Sno,Cname,Grade,(Sno,Cname)→Grade);
D(dno,dmanager,dno→dmanager);;7.2规范化
规范化(理论)是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。;7.2规范化;需要区分的几种函数依赖(举例说明):
非平凡的函数依赖
平凡的函数依赖
完全函数依赖
部分函数依赖
传递函数依赖
;范式
范式是符合某一种级别的关系模式的集合。
关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。
范式的种类:
第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BC范式(BCNF)、第四范式(4NF)等。
;第一范式(1NF)--关系模式的基本要求
定义如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。
分析:关系模式sdc(Sno,Sname,dno,dmanager,cname,grade)∈1NF
主码:(Sno,Cname)(Sno,Cname)→dno
存在:非主属性(dno)对码(sno,cname)的部分函数依赖!
;第二范式(2NF)
定义若R∈1NF,且每一个非主属性完全函数依赖于码,则R∈2NF。
例:sdc(Sno,Sname,dno,dmanager,cname,grade)∈2NF
分解后:sc(Sno,Cname,Grade)∈2NF
sd(Sno,sname,dno,dmanager)∈2NF
问题:将一个1NF关系分解为多个2NF的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。
(对sd关系模式进行分析!)
;原因:2NF关系模式sd(sno,sname,dno,dmanager)中函数依赖:
(sno→dno,dno→dmanager)?sno→dmanager
发现:
SD中存在非主属性(dmanager)对码的传递函数依赖!
这种函数依赖是导致冗余和异常的直接原因;
应设法消除关系模式中非主属性对码的传递函数依赖。
;第三范式3NF
定义关系模式RU,F中若不存在这样的码X、属性组Y及非主属性Z(Z?Y),使得X→Y,Y→Z成立,Y→X,则称RU,F∈3NF。
若R∈3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。
上例中,SD∈3NF;问题的解决
采用投影分解法,把SD分解为两个关系模式,消除传递依赖:
s(sno,sname,dno)
d(dno,dmanager)
s的码为sno,d的码为dno。
分解后的关系模式s与d中不再存在传递依赖,均属于3NF。;BC范式(BCNF)
例题分析
关系模式STJ(S,T,J),S表示学生,T表示教师,J表示课程。
应用语义:
每个教师只教一门课;
每门课可以有多个教师;
每个学生选定某门课,就