【文档说明】[工学]数据库系统概论-第6章关系数据理论课件.ppt,共(37)页,537.035 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-6043.html
以下为本文档部分文字说明:
1第6章关系数据理论6.1问题的提出6.2规范化25.1问题的提出关系数据库逻辑设计针对具体问题,如何构造一个适合于它的数据模式数据库逻辑设计的工具──关系数据库的规范化理论3关系模式简记为:R(A1,A2,…,An)形式化表示为:五元组R(U,
D,dom,F)关系名属性集合域集合属性向域的映象集合属性间数据的依赖关系集合例子:选修关系可简记为:SC(Sno,Cno,G)形式化表示为:SC(U,D,dom,F)U={Sno,Cno,G}D={字符型,数值型}dom(S
no)=dom(Cno)=字符型;dom(G)=数值型;F={(Sno,Cno)→G}三元组R(U,F)4数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系是现实世界属性间相互联系的抽象是数据内在的性质是语义的体现数据依赖的类型函数依赖(F
unctionalDependency,简记为FD)多值依赖(MultivaluedDependency,简记为MVD)例如:p1795实例:要求设计一个教学管理数据库,面临的对象有:学生:用学号Sno描述.系:用系名Sdept描述系主任:用姓
名Mn描述.课程:用课程名Cname描述成绩:用分数G描述U={Sno,Sdept,Mn,Cname,G}由现实世界已知:①一个系有若干学生,但一个学生只属于一个系.②一个系只有一名系主任.③一个学生可以选修多门课程,每门课程有若干学生选修
.④每个学生学习每一门课程有一个成绩.F={Sno→Sdept,Sdept→Mn,(Sno,Cname)→G}6SnoCnameSdeptMnG函数依赖图:这个教学管理数据库模式S(U,F)有以下三个“毛病”:p171(1)插入异常(2)删除异
常(3)冗余太大把模式S(U,F)分解为三个模式:(称为规范化的过程)S(Sno,Sdept,Sno→Sdept)Sg(Sno,Cname,G,(Sno,Cname)→G)Dept(Sdept,Mn,Sdept→Mn)76.2规范化6.2.1函数依赖1.属性间的联系一对一联系一对多联系多对
多联系例如:S(U,F)U={Sno,Sdept,Mn,Cname,G}82.函数依赖定义:设R(U)是属性集U上的关系.X,Y是U的子集.若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记为X→Y.例子:
R(Sno,Sdept,Mn,Cname,G)Sno→SdeptSdept→Mn(Sno,Cname)→GMn→SdeptSno→GCname→G在一个关系模式中设有属性集X,Y:如果X与Y是一对一联系X→Y,Y→X一对多联系Y→X多
对多联系X→Y,Y→X9一些符号:X→Y,但YX则称X→Y是非平凡的函数依赖.★例子:R(Sno,Sdept,Mn,Cname,G)(Sno,Cname)→Cname(Sno,Cname)→GX→Y,但YX则称X→Y是平凡的函数依赖.
★平凡函数依赖非平凡函数依赖★若X→Y,则X称为决定因素.★若X→Y,Y→X,则记为X→Y例子:Sdept→Mn★若Y函数不依赖于X,则记为X→Y例子:Sno→GCname→G10Sc(Sno,Cno,Grade)
定义:在R(U)中,如果X→Y,并且对于X的任何一个真子集,都有→Y,则称Y对X完全函数依赖,记为若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记为'X'XYXF→YXP→例子:GradeCno
SnoGradeCnoGradeSnoF→→→),(R(Sno,Sname,Sage,Sdept)SageSnameSnoSageSnoP→→),(11定义:在R(U)中,如果X→Y,(YX),Y→X,Y→Z,则称Z对X传递函数依赖.记为:ZX传递→在R(U)中,如果X→Y,(YX),Y→X,
Y→Z,则称Z对X直接函数依赖.记为:ZX直接→例子1:R(Sno,Sname,Sage,Sdept)如果姓名没有重复:Sno→SnameSname→SnoSname→SageSageSno直接→例子2:R(Sno,Sdept,Mn,Cn
ame,G)Sno→SdeptSdept→Snosdept→MnMnSno传递→12定义:设K是R(U,F)中的属性组合,若则K为R的侯选码.若侯选码多于一个则选取其中一个为主码.包含在任何候选码中的属性,称为主属性.不包含在任何一个侯选码中的属性,称为非主属性.
UKF→例子:R(Sno,Sdept,Mn,Cname,G)(Sno)→U(Sno,Sdept)→U(Sno,Sdept,Mn)→U(Sno,Sdept,Mn,Cname)→U(存在部分函数依赖)(Sno,S
dept,Mn,Cname,G)→U(存在部分函数依赖)(Sno,Cname)→U(Sno,Cname,G)→U(存在部分函数依赖)侯选码:(Sno,Cname)(Cno)→U13例子1:关系S(S#,SN,SD,SA)关系S的候选
码:(S#)(SN)关系S的主码:(S#)关系S的主属性:S#SN关系S的非主属性:SDSA例子2:关系SC(S#,C#,G)关系SC的候选码:关系SC的主码:关系SC的主属性:关系SC的非主属性:(S#,C#)(S#,C#)S#C#G例子3:关系R(P,W,A)关系R的候选码:(P,W,A
)关系R的主码:(P,W,A)关系R的主属性:PWA关系R的非主属性:全码14定义:关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码,也称外码.例子:Sc(sno,cno
,G)S(Sno,Sname,Sdept,Sage)属性Sno是SC的外码例子:Dept(Sdept,Mn,Sdept→Mn)S(Sno,Sname,Sdept,Sage)属性Sdept是S的外码155.2.2范式1NF2NF3NF4NFBCNF5NF规范化:一个低一级范式的关系模式,通过模
式分解转换为若干个高一级范式的关系模式的集合.5NF4NFBCNF3NF2NF1NF165.2.31NF1NF的定义如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为
关系数据库。但是满足第一范式的关系模式并不一定是一个好的关系模式。例子:S(U,F)U={Sno,Sdept,Mn,Cname,G}F={Sno→Sdept,Sdept→Mn,Sno→Mn,(Sno,Cname
)→G}175.2.42NF定义:若R∈1NF,且每一个非主属性完全函数依赖于码,则R∈2NF例子1:判定关系模式SC(Sno,Cno,G)是否属于2NF.(1)SC∈1NF(2)候选码:(Sno,Cno)主属性:Sno,Cno非主属性:G∵Sno→GCno→G
GCnoSnoF→),(SC∈2NF18例子2:判定关系模式S-L-C(Sno,Sdept,Sloc,Cno,G)是否属于2NF.注:Sloc为学生住处,假设每个系的学生住在同一个地方。S-L-C的函数依赖
有:Sno→SdeptSdept→SlocSno→Sloc(Sno,Cno)→GSnoCnoGSdeptSloc函数依赖图:19(1)S-L-C∈1NF(2)候选码:(Sno,Cno)主属性:Sno,Cno非主属性:Sdept,Sloc,G∵Sno→GCno→GGCnoSn
oF→),(∵Sno→SdeptSdeptCnoSnoP→),(∵Sno→SLocSlocCnoSnoP→),(S-L-C∈2NF解:20关系模式S-L-C(Sno,Sdept,Sloc,Cno,G)存
在以下问题:(1)插入异常(2)删除异常(3)修改复杂解决的方法:分解模式把关系模式S-L-C分解为:SC(Sno,Cno,G)S-L(Sno,Sdept,Sloc)(例:Sno=95102,Sdept=IS,Sloc=N的插入)(例:Sno=95001,S
dept=CS,Cno=3的删除)(例:Sno=95004,Sdept=IS,Sloc=N转系)原因Sdept、Sloc部分函数依赖于码(Sno,Cno)。215.2.53NF定义:若R∈2NF,且每一个非主属性都不传递依赖于码,则R∈3NF。例:分析关系模式SC
是否是3NF。解:SC(SNO,CNO,G)(1)SC∈2NF(2)候选码:(SNO,CNO)非主属性:G∵无传递依赖存在∴SC∈3NFSnoCnoGSC22例:分析关系模式S-L是否是3NF。解:S-L(SNO,SDEPT
,SLOC)(1)S-L∈2NF(2)候选码:SNO非主属性:SDEPT,SLOC∵SNO→SDEPTSDEPT→SNO,SDEPT→SLOC∴S-L∈3NF∴SNO→SLOC传递SnoSdeptSloc23关系模式S-L(SNO,SDEPT,SLOC)不属于
3NF,它存在下列问题:(1)插入异常(2)删除异常(3)修改复杂解决的方法:将S-L分解:S-L(SNO,SDEPT,SLOC)S-D(SNO,SDEPT)D-L(SDEPT,SLOC)∈3NF∈3NF(例:Sdept=MA,Sloc=4A
的插入)(例:Sno=95001,Sdept=CS,Sloc=D的删除)(例:Sdept=IS,Sloc=N系换地址)原因Sloc传递函数依赖于码(Sno)。24S-L-CS-LS-D(SNO,SDEPT)D-L(SDEPT,SLOC)SC(SNO,CNO,G)∈3N
F∈3NF∈3NF关系模式S-L-CS(Sno,Sdept,Sloc,Cno,G)经过2次分解后:(1)插入无异常(2)删除无异常(3)修改不复杂3NF消除了非主属性对候选码的:(1)部份函数依赖(2)传递函数依赖25例:关系模式STJ(S,T,J)S表示学生,T表示教师,J表示课程。每
一个教师只教一门课。每门课有若干教师,某一学生选定某门课程,就对应一个固定的教师。某个学生选修某个教师的课就确定了所选课的名称。J与T是一对多联系:T→JS与J是多对多联系:S与T是多对多联系:(S,J)
→T(S,T)→J如图:SJTSTJ26分析模式STJ(S,T,J):(1)STJ∈1NF(2)候选码:(S,T)(S,J)非主属性:无∴STJ∈3NF存在问题:(1)插入异常(2)删除异常(3)数据冗余(例:T=张三,J=
物理的插入)(例:S=95001,T=张三,J=物理的删除)(例:T=张三,J=物理老师换课)273NF还隐含主属性对候选码:(1)部份函数依赖(2)传递函数依赖285.2.6BCNF(扩展的第三范式
)定义:若R∈3NF,且每一个决定因素都包含码。则R∈BCNF例1:分析关系模式S(SNO,SNAME,SDEPT,SAGE)(1)S∈1NF(2)候选码:SNO非主属性:SNAME,SDEPT,SAGE∴S∈2NFFFF∵SNO→SNAMESNO→
SDEPTSNO→SAGE29(3)非主属性无传递函数依赖于码∴S∈3NF(4)决定因素只有SNO∴S∈BCNF例2:分析关系模式SC(SNO,CNO,G)(1)SC∈3NF(2)(SNO,CNO)→G决定因素(SNO,CNO)是码∴SC∈BCNF30例3SJP(S,J,
P)中,S是学生,J表示课程,P表示名次。每一个学生选修每门课程的成绩有一定的名次,每门课程中每一名次只有一个学生(即没有并列名次)。由语义可得到下面的函数依赖:(S,J)→P(J,P)→S分析:(1)SJP∈1NF(2)候选码:(S,J)(J,P)非主属
性:无∴SJP∈3NF(3)决定因素(S,J)(J,P)是码∴SJP∈BCNF31(1)STJ∈3NF(2)候选码:(S,J)(S,T)∵T→J决定因素T不包含码∴STJ∈BCNFSJTSTJ例4:分析关系模式STJ(S,T,J)32STJ存在下列问题:(1)插入异常(2)删除异常(3)
数据冗余解决的方法:分解STJ(S,T,J)STJ(S,T,J)ST(S,T)TJ(T,J)∈BCNF∈BCNFSTSTTJTJ33小结:(1)如果只考虑函数依赖,则属于BCNF的关系模式规范化程度已经是最高的了。
(2)如果考虑多值依赖,则属于4NF的关系模式规范化程度已经是最高的了。(3)函数依赖是多值依赖的一种特殊情况,而多值依赖又是连接依赖的一种特殊情况。34小结:规范化的基本思想是:P182消除不合适的数据依赖各关系模
式达到某种程度的“分离”采用“一事一地”的模式设计原则让一个关系描述一个概念、一个实体或者实体间的一种联系。若多于一个概念就把它“分离”出去所谓规范化实质上是概念的单一化35不能说规范化程度越高的关系模式就越好在设计数据库模式结构时,必须对现实世界的实际情况和用户应用需求作进
一步分析,确定一个合适的、能够反映现实世界的模式上面的规范化步骤可以在其中任何一步终止361NF2NF3NFBCNF4NF消除非主属性对码的部分函数依赖消除非主属性对码的传递函数依赖消除主属性对码的部分和传递函数依赖消除非平凡且非函数依赖的多值依赖37(5)若R.A→R
.B,R.B→R.C,则R.A→R.C。√(6)若R.A→R.B,R.A→R.C,则R.A→R.(B,C)。√(7)若R.B→R.A,R.C→R.A,则R.(B,C)→R.A。√(8)若R.(B,C)→R.A,则R.B→R.A,R.C→R.A。×(4)当且仅当函数依赖A→B在R上成立,关系R(A,
B,C)等于其投影R1(A,B)和R2(A,C)的连接。×