数据库 第七章_第1页
数据库 第七章_第2页
数据库 第七章_第3页
数据库 第七章_第4页
数据库 第七章_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库第七章第1页,共67页,2023年,2月20日,星期六2第7章关系数据库规范化理论数据库设计是数据库应用领域中的主要研究课题。关系数据库规范化理论就是数据库设计的一个理论指南。关系数据库的规范化是指面对一个现实问题,如何选择一个比较好的关系模式集合。规范化理论研究的是关系模式中各属性之间的数据依赖关系及其对关系模式性能的影响;以及判断关系模式好坏的理论标准—范式。第2页,共67页,2023年,2月20日,星期六3第7章关系数据库规范化理论关系模式的形式化定义一个完整的关系模式由五部分组成,即它是一个五元组:

R(U,D,DOM,F)R:关系名

U:组成该关系的属性名集合

D:属性组U中属性所来自的域

DOM:属性向域的映象集合

F:属性间数据的依赖关系集合第3页,共67页,2023年,2月20日,星期六4第7章关系数据库规范化理论什么是数据依赖一个关系内部属性与属性之间的约束关系数据依赖的类型函数依赖(FunctionalDependency,简记为FD)多值依赖(MultivaluedDependency,简记为MVD)其他第4页,共67页,2023年,2月20日,星期六5第7章关系数据库规范化理论关系模式的简化表示关系模式R(U,D,DOM,F)简化为一个三元组:

R(U,F)当且仅当U上的一个关系r满足F时,r称为关系模式R(U,F)的一个关系。第5页,共67页,2023年,2月20日,星期六67.1函数依赖设有关系模式R(A1,A2,…,An),X和Y均为{A1,A2,…,An}的子集,r是R的任一具体关系,t1、t2是r中的任意两个元组;如果由t1[X]=t2[X]可以推导出t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X,记为X→Y。。例:Student(Sno,SName,Sdept,Sage)Sno→SName,Sno→Sdept,Sno→Sage例:SC(Sno,Cno,Grade)(Sno,Cno)→Grade第6页,共67页,2023年,2月20日,星期六77.1.2一些术语和符号平凡函数依赖与非平凡函数依赖在关系模式R(U)中,对于U的子集X和Y,如果X→Y,但YX,则称X→Y是非平凡的函数依赖若X→Y,但YX,则称X→Y是平凡的函数依赖例:在关系SC(Sno,Cno,Grade)中,非平凡函数依赖:(Sno,Cno)→

Grade

平凡函数依赖:(Sno,Cno)→

Sno(Sno,Cno)→Cno如不作特别说明,总是讨论非平凡函数依赖。第7页,共67页,2023年,2月20日,星期六87.1.2一些术语和符号若X→Y,则X称为这个函数依赖的决定属性组,也称为决定因素(Determinant)。若X→Y,Y→X,则记作X←→Y。若Y不函数依赖于X,则记作X→Y。第8页,共67页,2023年,2月20日,星期六97.1.2一些术语和符号完全函数依赖与部分函数依赖在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’Y,则称Y对X完全函数依赖,记作

XFY。若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作XPY。例:(Sno,Cno)→Grade是完全函数依赖,

(Sno,Cno)→Sdept是部分函数依赖因为Sno→Sdept成立,且Sno是(Sno,Cno)的真子集第9页,共67页,2023年,2月20日,星期六107.1.2一些术语和符号传递函数依赖在R(U)中,如果X→Y,(YX),Y→XY→Z,则称Z对X传递函数依赖。记为:X→Z注:如果Y→X,即X←→Y,则Z直接依赖于X。例:在关系S(Sno,Sname,Dept,Dept_master)中有:

Sno→dept,Sdept→Dept_masterDept_master传递函数依赖于Sno传递第10页,共67页,2023年,2月20日,星期六117.1.3为什么要讨论函数依赖数据依赖对关系模式的影响例:建立一个描述学校教务的数据库: 学生的学号(Sno)、所在系(Sdept) 系主任姓名(Mname)、课程名(Cname) 成绩(Grade)单一的关系模式:Student<U、F>U={Sno,Sdept,Mname,Cname,Grade}第11页,共67页,2023年,2月20日,星期六127.1.3为什么要讨论函数依赖

属性组U上的一组函数依赖F:

F={Sno→Sdept,Sdept→Mname,(Sno,Cname)→Grade}

SnoCnameSdeptMnameGrade第12页,共67页,2023年,2月20日,星期六137.1.3为什么要讨论函数依赖关系模式Student<U,F>中存在的问题1.数据冗余太大2.更新异常(UpdateAnomalies)3.插入异常(InsertionAnomalies)4.删除异常(DeletionAnomalies)第13页,共67页,2023年,2月20日,星期六147.1.3为什么要讨论函数依赖结论:

Student关系模式不是一个好的模式。“好”的模式:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少原因:由存在于模式中的某些数据依赖引起的解决方法:通过分解关系模式来消除其中不合适的数据依赖第14页,共67页,2023年,2月20日,星期六157.1.3为什么要讨论函数依赖分解关系模式把这个单一模式分成3个关系模式:

S(Sno,Sdept,Sno→Sdept);SC(Sno,Cno,Grade,(Sno,Cno)→Grade);DEPT(Sdept,Mname,Sdept→Mname)第15页,共67页,2023年,2月20日,星期六167.2关系规范化

规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。第16页,共67页,2023年,2月20日,星期六177.2.1关系模式中的码候选码与主码设K为R<U,F>中的属性或属性组合。若K

U,则K称为R的侯选码。若候选码多于一个,则选定其中的一个做为主码。主属性与非主属性包含在任何一个候选码中的属性,称为主属性不包含在任何码中的属性称为非主属性或非码属性全码整个属性组是码,称为全码F第17页,共67页,2023年,2月20日,星期六187.2.1关系模式中的码例:关系模式S(Sno,Sdept,Sage),单个属性Sno是码SC(Sno,Cno,Grade)中,(Sno,Cno)是码关系模式R(P,W,A)

P:演奏者W:作品A:听众一个演奏者可以演奏多个作品某一作品可被多个演奏者演奏听众可以欣赏不同演奏者的不同作品码为(P,W,A),即All-Key第18页,共67页,2023年,2月20日,星期六197.2.1关系模式中的码外部码关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码,也称外码如在SC(Sno,Cno,Grade)中,Sno不是码,但Sno是关系模式S(Sno,Sdept,Sage)的码,则Sno是关系模式SC的外部码主码与外部码一起提供了表示关系间联系的手段第19页,共67页,2023年,2月20日,星期六207.2.2范式范式是符合某一种级别的关系模式的集合关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式范式的种类: 第一范式(1NF)第二范式(2NF)第三范式(3NF)BC范式(BCNF)第四范式(4NF)第五范式(5NF)第20页,共67页,2023年,2月20日,星期六217.2.2范式各种范式之间存在联系:某一关系模式R为第n范式,可简记为R∈nNF。一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化

第21页,共67页,2023年,2月20日,星期六221NF第一范式:如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库但是满足第一范式的关系模式并不一定是一个好的关系模式第22页,共67页,2023年,2月20日,星期六231NF第23页,共67页,2023年,2月20日,星期六242NF第二范式:如果R(U,F)∈1NF,并且R中的每个非主属性都完全函数依赖于主码,则R(U,F)∈2NF例:S-L-C(Sno,Sdept,SLOC,Cno,Grade)函数依赖包括:

(Sno,Cno)FGradeSno→Sdept(Sno,Cno)PSdeptSno→Sloc(Sno,Cno)PSlocSdept→Sloc

存在部分函数依赖,不是2NF。第24页,共67页,2023年,2月20日,星期六252NF(续)S-L-C的码为(Sno,Cno)S-L-C满足第一范式。非主属性Sdept和Sloc部分函数依赖于码(Sno,Cno)SnoCnoGradeSdeptSlocS-L-C第25页,共67页,2023年,2月20日,星期六262NF(续)S-L-C不是一个好的关系模式原因

Sdept、Sloc部分函数依赖于码。解决方法

S-L-C分解为两个关系模式,以消除这些部分函数依赖

第26页,共67页,2023年,2月20日,星期六272NF(续)分解办法首先,对于组成主码的属性集合的每一个子集,用它作为主码构成一个表。然后,将依赖于这些主码的属性放置到相应的表中。最后,去掉只由主码的子集构成的表。S-L-C分解为两个关系模式

SC(Sno,Cno,Grade)

S-L(Sno,Sdept,Sloc)第27页,共67页,2023年,2月20日,星期六282NF(续)分解示例对于S-L-C表,首先分解为如下形式的三张表:

S-L(Sno,…)

C(Cno,…)

S-C(Sno,Cno,…)然后,将依赖于这些主码的属性放置到相应的表中

S-L(Sno,Sdept,Sloc)

C(Cno)

S-C(Sno,Cno,Grade)最后,去掉只由主码的子集构成的表,最终分解为:

S-L(Sno,Sdept,Sloc)

S-C(Sno,Cno,Grade)第28页,共67页,2023年,2月20日,星期六292NF(续)函数依赖图:SnoCnoGradeSCS-LSnoSdeptSloc关系模式SC的码为(Sno,Cno)关系模式S-L的码为Sno这样非主属性对码都是完全函数依赖第29页,共67页,2023年,2月20日,星期六302NF(续)S-L-C(Sno,Sdept,Sloc,Cno,Grade)∈1NFS-L-C(Sno,Sdept,Sloc,Cno,Grade)∈2NFSC(Sno,Cno,Grade)∈2NFS-L(Sno,Sdept,Sloc)∈2NF第30页,共67页,2023年,2月20日,星期六312NF(续)采用投影分解法将一个1NF的关系分解为多个2NF的关系,可以在一定程度上减轻原1NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。将一个1NF关系分解为多个2NF的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。第31页,共67页,2023年,2月20日,星期六322NF(续)S-L(Sno,Sdept,Sloc)存在问题数据冗余:有多少个学生就有多少个重复的Sdept和SLOC;插入异常:当新建一个系时,若还没有招收学生,则无法插入;第32页,共67页,2023年,2月20日,星期六333NF3NF的定义 关系模式R<U,F>

中若不存在这样的码X、属性组Y及非主属性Z(ZY),使得X→Y,Y→Z成立,Y→X,则称R<U,F>∈3NF。若R∈3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。第33页,共67页,2023年,2月20日,星期六343NF(续)例:2NF关系模式S-L(Sno,Sdept,Sloc)中函数依赖:

Sno→SdeptSdept→SnoSdept→Sloc

可得:

Sno→Sloc,即S-L中存在非主属性对码的传递函数依赖,S-L∈3NF传递第34页,共67页,2023年,2月20日,星期六353NF(续)函数依赖图:S-LSnoSdeptSloc第35页,共67页,2023年,2月20日,星期六363NF(续)解决方法采用投影分解法,把S-L分解为两个关系模式,以消除传递函数依赖:S-D(Sno,Sdept)

D-L(Sdept,Sloc)S-D的码为Sno,D-L的码为Sdept。分解后的关系模式S-D与D-L中不再存在传递依赖第36页,共67页,2023年,2月20日,星期六373NF(续)分解过程对于不是候选码的每个决定因子,从表中删去依赖于它的所有属性;

S-D(Sno,Sdept)(主码为Sno)

新建一个表,新表中包含在原表中所有依赖于该决定因子的属性;

S-L(Sdept,Sloc)将决定因子作为新表的主码。

S-L的

主码为Sdept第37页,共67页,2023年,2月20日,星期六383NF(续)S-D的码为Sno,D-L的码为SdeptSnoSdeptS-DSdeptSlocD-LS-L(Sno,Sdept,Sloc)∈2NFS-L(Sno,Sdept,Sloc)∈3NFS-D(Sno,Sdept)∈3NFD-L(Sdept,Sloc)∈3NF第38页,共67页,2023年,2月20日,星期六393NF(续)违反3NF的传递依赖的三种情况第39页,共67页,2023年,2月20日,星期六403NF(续)采用投影分解法将一个2NF的关系分解为多个3NF的关系,可以在一定程度上解决原2NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。将一个2NF关系分解为多个3NF的关系后,仍然不能完全消除关系模式中的各种异常情况和数据冗余。第40页,共67页,2023年,2月20日,星期六41BC范式(BCNF)关系模式R<U,F>∈1NF,若X→Y且YX时X必含有码,则R<U,F>∈BCNF。等价于:每一个决定属性因素都包含码第41页,共67页,2023年,2月20日,星期六42BCNF(续)若R∈BCNF所有非主属性对每一个码都是完全函数依赖所有的主属性对每一个不包含它的码,也是完全函数依赖没有任何属性完全函数依赖于非码的任何一组属性R∈BCNFR∈3NF充分不必要第42页,共67页,2023年,2月20日,星期六43BCNF(续)例:关系模式C(Cno,Cname,Pcno)C∈3NFC∈BCNF例:关系模式S(Sno,Sname,Sdept,Sage)假定S有两个码Sno,SnameS∈3NFS∈BCNF第43页,共67页,2023年,2月20日,星期六44BCNF(续)例:关系模式SJP(S,J,P)函数依赖:(S,J)→P;(J,P)→S(S,J)与(J,P)都可以作为候选码,属性相交SJP∈3NFSJP∈BCNF第44页,共67页,2023年,2月20日,星期六45BCNF(续)例:在关系模式STC(S,T,C)中,S表示学生,T表示教师,C表示课程。函数依赖:

(S,C)→T,(S,T)→C,T→C(S,C)和(S,T)都是候选码第45页,共67页,2023年,2月20日,星期六46BCNF(续)

CSCTSTSTC中的函数依赖第46页,共67页,2023年,2月20日,星期六47BCNF(续)STC∈3NF

没有任何非主属性对码传递依赖或部分依赖

STC∈BCNFT是决定因素,T不包含码第47页,共67页,2023年,2月20日,星期六48BCNF(续)解决方法:将STC分解为二个关系模式:

ST(S,T)∈BCNF,TC(T,C)∈BCNF

没有任何属性对码的部分函数依赖和传递函数依赖STSTTCTC第48页,共67页,2023年,2月20日,星期六49BCNF(续)主属性对候选键的传递依赖第49页,共67页,2023年,2月20日,星期六503NF与BCNF的关系R∈BCNFR∈3NF如果R∈3NF,且R只有一个候选码

R∈BCNFR∈3NF充分不必要充分必要第50页,共67页,2023年,2月20日,星期六51多值依赖与4NF(了解)多值依赖定义设R(U)是一个属性集U上的一个关系模式,X、Y和Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖

X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(YX),X都含有码,则R∈4NF。第51页,共67页,2023年,2月20日,星期六52规范化举例设有关系模式:Student(学号,姓名,导师号,导师名,课程号,课程说明,成绩)语义:一名学生只有一个导师,学生可选多门课。将其规范化成3NF的。第52页,共67页,2023年,2月20日,星期六531.此表是1NF,其函数依赖为: 学号p姓名,学号p导师号,学号p导师名,课程号p课程说明,(学号,课程号)→成绩主码为(学号,课程号)存在部分函数依赖关系,不是2NF,首先将其分解为2NF。学生(学号,姓名,导师号,导师名),课程(课程号,课程说明),成绩(学号,课程号,成绩)均为2NF第53页,共67页,2023年,2月20日,星期六542.判是否为3NF“学生”表不是3NF,其函数依赖为: 学号→姓名,学号→导师号,导师号p导师名,∴学号传递导师名消除依赖于决定者的属性,把它们放在一个单独的表中,得到:学生(学号,姓名,导师号),导师(导师号,导师名)第54页,共67页,2023年,2月20日,星期六557.3关系模式的分解准则模式分解要满足:模式分解具有无损连接性;模式分解能够保持函数依赖。

无损连接是指分解后的关系通过自然连接可以恢复成原来的关系,即通过自然连接得到的关系与原来的关系相比,既不多出信息、又不丢失信息。

保持函数依赖分解是指在模式的分解过程中,函数依赖不能丢失的特性,即模式分解不能破坏原来的语义。第55页,共67页,2023年,2月20日,星期六56关系模式的分解准则(续)

例:S-D-L(Sno,Dept,Loc)有函数依赖:

Sno→Dept,Dept→Loc

不是第三范式的。至少可以有三种分解方案,分别为:方案1:S-L(Sno,Loc),D-L(Dept,Loc)方案2:S-D(Sno,Dept),S-L(Sno,Loc)方案3:S-D(Sno,Dept),D-L(Dept,Loc)这三种分解方案得到的关系模式都是第三范式的,那么如何比较这三种方案的好坏呢?由此在将一个关系模式分解为多个关系模式时除了提高规范化程度之外,还需要考虑其他的一些因素。第56页,共67页,2023年,2月20日,星期六57关系模式的分解准则(续)

将一个关系模式R<U,F>分解为若干个关系模式R1<U1,F1>,R2<U2,F2>,…,Rn<Un,Fn>,意味着将存储在一张二维表r中的数据分散到了若干个二维表r1,r2,…,rn中。这样的分解应该不丢失信息,即能通过对关系r1,r2,…,rn的自然连接运算重新得到关系r中的所有信息。事实上,将关系r投影为r1,r2,…,rn时不会丢失信息,关键是对r1,r2,…,rn做自然连接时可能产生一些r中原来没有的元组,从而无法区别哪些元组是r中原来有的,即数据库中应该存在的数据,哪些是不应该有的。在这个意义上就丢失了信息。第57页,共67页,2023年,2月20日,星期六58关系模式的分解准则(续)这三种分解方案是否都满足分解要求呢?假设此关系模式的数据如表所示,此关系用r表示。Sno

Dept

Loc

S01D1L1S02D2L2S03D3L3S04D4L4第58页,共67页,2023年,2月20日,星期六59关系模式的分解准则(续)若按方案1将S-D-L投影到S-L和D-L的属性上,得到如左边两个表所示的关系。做自然连接得到结果如右表所示。Sno

Loc

S01L1S02L2S03L3S04L4Dept

Loc

D1L1D2L2D3L3D4L4Sno

Dept

Loc

S01D1L1S01D3L1S02D2L2S03D2L2S04D1L1S04D3L41第59页,共67页,2023年,2月20日,星期六60关系模式的分解准则(续)无损连接性将关系模式R<U,F>分解为个关系模式R1<U1,F1>,R2<U2,F2>,…,Rn<Un,Fn>,若对于R中的任何一个可能的r,都有r=r1*r2*…*rn,即r在R1,R2,…,Rn上的投影的自然连接等于r,则称关系模式R的这个分解具有无损连接性。第60页,共67页,2023年,2月20日,星期六61关系模式的分解准则(续)再分析方案2。将S-D-L投影到S-D,S-L的属性上,得到的关系如左边两个表所示。做自然连接得到的关系右表所示。Sno

Loc

S01L1S02L2S03L3S04L4Sno

DeptS01D1S02D2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论