10--ch6--关系数据库规范化理论

上传人:dfg****19 文档编号:240763369 上传时间:2024-05-05 格式:PPT 页数:50 大小:1.27MB
返回 下载 相关 举报
10--ch6--关系数据库规范化理论_第1页
第1页 / 共50页
10--ch6--关系数据库规范化理论_第2页
第2页 / 共50页
10--ch6--关系数据库规范化理论_第3页
第3页 / 共50页
点击查看更多>>
资源描述
王建民王建民信息科学与技术学院信息科学与技术学院2011-4-14数据库系统原理数据库系统原理 Theory of Database SystemTheory of Database SystemSTDU_DB-2-22:39问题的提出问题的提出vRe:关系模式:关系模式n五元组:五元组:R(U,D,DOM,F)uR:关系名:关系名uU:组成该关系的属性名集合:组成该关系的属性名集合uD:属性组:属性组U中属性所来自的域中属性所来自的域uDOM:属性向域的映象集合:属性向域的映象集合uF:属性间数据的依赖关系集合:属性间数据的依赖关系集合STDU_DB-3-22:39问题的提出问题的提出(Cont.)v关系模式关系模式R(U,D,DOM,F)n简化为一个三元组简化为一个三元组 R(U,F)n当且仅当当且仅当U上的一个关系上的一个关系r满足满足F时,时,r称为关系模式称为关系模式R(U,F)的一个关系。的一个关系。STDU_DB-4-22:39问题的提出问题的提出(Cont.)v例:例:建立一个描述学校教务的数据库,包括:学生的学建立一个描述学校教务的数据库,包括:学生的学号号(Sno)、所在系()、所在系(Sdept)、系主任姓名()、系主任姓名(Mname)、)、课程名(课程名(Cname)、成绩()、成绩(Grade)n建立建立单一的单一的关系模式关系模式:R(U,F)uU Sno,Sdept,Mname,Cname,Grade STDU_DB-5-22:39问题的提出问题的提出(Cont.)U Sno,Sdept,Mname,Cname,Grade v存在的问题存在的问题n1.数据冗余太大数据冗余太大n2.更新异常(更新异常(Update Anomalies)n3.插入异常(插入异常(Insertion Anomalies)n4.删除异常(删除异常(Deletion Anomalies)STDU_DB-6-22:39存在的问题存在的问题U Sno,Sdept,Mname,Cname,Grade n问题问题1:数据冗余太大:数据冗余太大u学生所在的系学生所在的系Sdept及其系主任姓名及其系主任姓名Mname多次重多次重复出现。复出现。u系系Sdept及其系主任姓名及其系主任姓名Mname不仅随着每个学生不仅随着每个学生Sno重复出现,而且随着每个学生重复出现,而且随着每个学生Sno选的每门课选的每门课Cname重复出现。重复出现。STDU_DB-7-22:39存在的问题存在的问题(Cont.)U Sno,Sdept,Mname,Cname,Grade v存在的问题存在的问题n1.数据冗余太大数据冗余太大n2.更新问题(更新问题(Update Anomalies)n3.插入异常(插入异常(Insertion Anomalies)n4.删除异常(删除异常(Deletion Anomalies)STDU_DB-8-22:39存在的问题存在的问题(Cont.)U Sno,Sdept,Mname,Cname,Grade n问题问题2:更新问题(更新问题(Update Anomalies)u由于数据冗余问题,当更新数据时,需要很高的代价由于数据冗余问题,当更新数据时,需要很高的代价来保证数据库的一致性。来保证数据库的一致性。u如更换系主任后,必须修改与该系学生有关的每一个如更换系主任后,必须修改与该系学生有关的每一个元组中系主任姓名元组中系主任姓名Mname。STDU_DB-9-22:39存在的问题存在的问题(Cont.)U Sno,Sdept,Mname,Cname,Grade v存在的问题存在的问题n1.数据冗余太大数据冗余太大n2.更新问题(更新问题(Update Anomalies)n3.插入异常(插入异常(Insertion Anomalies)n4.删除异常(删除异常(Deletion Anomalies)STDU_DB-10-22:39存在的问题存在的问题(Cont.)U Sno,Sdept,Mname,Cname,Grade n问题问题3:插入异常(插入异常(Insertion Anomalies)u如果学号如果学号Sno是码属性,则当一个系新成立但尚无学是码属性,则当一个系新成立但尚无学生时,其系生时,其系Sdept及系主任姓名及系主任姓名Mname就不能保存至就不能保存至数据库中。数据库中。STDU_DB-11-22:39存在的问题存在的问题(Cont.)U Sno,Sdept,Mname,Cname,Grade v存在的问题存在的问题n1.数据冗余太大数据冗余太大n2.更新问题(更新问题(Update Anomalies)n3.插入异常(插入异常(Insertion Anomalies)n4.删除异常(删除异常(Deletion Anomalies)STDU_DB-12-22:39存在的问题存在的问题(Cont.)U Sno,Sdept,Mname,Cname,Grade n问题问题4:删除异常(删除异常(Deletion Anomalies)u如果某个系的学生全部毕业了,在删除该系学生信息如果某个系的学生全部毕业了,在删除该系学生信息的同时,该系的同时,该系Sdept及系主任姓名及系主任姓名Mname也被删除了。也被删除了。STDU_DB-13-22:39总总 结结v结论结论nR(U,F):USno,Sdept,Mname,Cname,Grade不是一个好的模式。不是一个好的模式。n“好好”的模式:的模式:u不会发生插入异常、删除异常、更新异常,不会发生插入异常、删除异常、更新异常,u数据冗余应尽可能少。数据冗余应尽可能少。v原因原因n关系模式不够关系模式不够“规范规范”。STDU_DB-14-22:39规范化规范化函数依赖函数依赖码码范式(范式(Normal Form)1NF2NF3NFBCNF多值依赖、多值依赖、4NF连接依赖、连接依赖、5NFSTDU_DB-15-22:39第第6 6章章 关系数据库规范化理论关系数据库规范化理论6.1 函数依赖函数依赖 6.2 关系规范化关系规范化 STDU_DB-16-22:39函数依赖函数依赖(Functional Dependency)v函数依赖函数依赖v平凡平凡函数依赖与函数依赖与非平凡非平凡函数依赖函数依赖v完全完全函数依赖与函数依赖与部分部分函数依赖函数依赖v传递传递函数依赖函数依赖STDU_DB-17-22:39函数依赖函数依赖(Cont.)v定义:如果有一个关系模式定义:如果有一个关系模式R(A1,A2,An),X 和和Y为为A1,A2,An的子集,那么对于关系的子集,那么对于关系R中的任意中的任意一个一个X值,都只有一个值,都只有一个Y 值与之对应,则称值与之对应,则称X函数函数决定决定Y,或,或Y函数依赖于函数依赖于X。记做:。记做:X Y STDU_DB-18-22:39函数依赖函数依赖(Cont.)例:例:Student(Sno,SName,Sdept,Sage)SnoSNameSnoSdeptSnoSage 例:例:SC(Sno,Cno,Grade)(Sno,Cno)GradeSTDU_DB-19-22:39学生学生-课程数据库课程数据库 StudentSnoSName、SnoSdept、SnoSage学号学号Sno姓名姓名Sname性别性别Ssex年龄年龄Sage所在系所在系Sdept200215121李勇李勇男男20CS200215122刘晨刘晨女女19IS200215123王敏王敏女女18MA200215125张立张立男男19ISSTDU_DB-20-22:39学生学生-课程数据库课程数据库(Cont.)SC学号学号Sno课程号课程号Cno成绩成绩Grade200215121192200215121285200215121388200215122290200215122380(Sno,Cno)GradeSTDU_DB-21-22:39一些术语和符号一些术语和符号v1.如果如果XY,但,但Y不包含于不包含于X,则称,则称XY是是非平非平凡的函数依赖凡的函数依赖。v2.如果如果XY,但,但Y包含于包含于X,则称,则称XY是是平凡的平凡的函数依赖函数依赖。如不作特别说明,我们总是讨论非平凡函数依赖。如不作特别说明,我们总是讨论非平凡函数依赖。v3.如果如果Y不函数依赖于不函数依赖于X,则记作,则记作XY。v4.如果如果XY,则称,则称X为决定因子。为决定因子。v5.如果如果XY,并且,并且YX,则记作,则记作XY。non trivial 非平凡的非平凡的trivial 平凡的平凡的STDU_DB-22-22:39一些术语和符号一些术语和符号(Cont.)v6.如果如果XY,并且对于,并且对于X的一个任意真子集的一个任意真子集X 都都有有X Y,则称,则称Y完全函数依赖完全函数依赖于于X,记作:,记作:v 7.如果如果XY(YX)、)、YZ,则称,则称Z传递函数依传递函数依赖赖于于X。记作:。记作:如果如果XY成立,则称成立,则称Y部分函数依赖部分函数依赖于于X,记作:,记作:full dependencypartial dependencytransitive dependencySTDU_DB-23-22:39示例示例v例:关系模式:例:关系模式:SC(Sno,Sname,Cno,Credit,Grade)v则函数依赖关系有:则函数依赖关系有:SnoSname(Sno,Cno)Sname(Sno,Cno)GradeSTDU_DB-24-22:39示例示例(Cont.)v例:关系模式:例:关系模式:S(Sno,Sname,Dept,Dept_master)v函数依赖关系有:函数依赖关系有:由于:由于:Sno Dept,Dept Dept_master所以有:所以有:Sno Dept_masterSnameSnotSTDU_DB-25-22:39第第6 6章章 关系数据库规范化理论关系数据库规范化理论6.1 函数依赖函数依赖 6.2 关系规范化关系规范化 STDU_DB-26-22:39关系规范化关系规范化 关系模式中的码关系模式中的码 范式范式STDU_DB-27-22:39码码Re:实体实体联系模型:唯一标识实体的属性集称为联系模型:唯一标识实体的属性集称为码码。关关系系模模式:码码是是表表中中的的某某个个属属性性组组,它它可可以以唯唯一一确定一个元组。确定一个元组。STDU_DB-28-22:39关系模式中的码关系模式中的码v候候选选码码:设设K为为R(U,F)中中的的属属性性或或属属性性组组,若若存存在在KU,则则K为为R的的候候选选码码。(K为为决决定定R全全部部属属性性值的最小属性组)。值的最小属性组)。v主主码码:关关系系R(U,F)中中可可能能有有多多个个候候选选码码,则则选选其其中中一个作为主码。一个作为主码。v全码全码:候选码为整个属性组。:候选码为整个属性组。v主属性主属性与与非主属性非主属性:在在R(U,F)中中,包包含含在在任任一一候候选选码码中中的的属属性性称称为为主主属属性性,不不包包含含在在任任一一候候选选码码中中的属性称为的属性称为非主属性非主属性。fSTDU_DB-29-22:39关系模式中的码关系模式中的码(Cont.)nS(Sno,Sdept,Sage):单属性码单属性码SnonSC(Sno,Cno,Grade):(Sno,Cno)多属性码多属性码 主属性:主属性:SNO、CNO。非主属性:。非主属性:Grade。nR(P,W,A):P:演奏者,:演奏者,W:作品,:作品,A:听众:听众u 一个演奏者可以演奏多个作品一个演奏者可以演奏多个作品u 某一作品可被多个演奏者演奏某一作品可被多个演奏者演奏u 听众可以欣赏不同演奏者的不同作品听众可以欣赏不同演奏者的不同作品u 码为码为(P,W,A),即即全码全码(All-Key)STDU_DB-30-22:39关系模式中的码关系模式中的码(Cont.)v外码外码:用于关系表之间建立关联的属性(组)。:用于关系表之间建立关联的属性(组)。定义:若定义:若R(U,F)的属性(组)的属性(组)X(X U)是另一个关系是另一个关系S的的码,则称码,则称X为为R的外码。的外码。uSno是关系模式是关系模式S(Sno,Sdept,Sage)的码,在的码,在SC(Sno,Cno,Grade)中,中,Sno不是码,不是码,Sno是关系模式是关系模式SC的外的外码。码。主码与外部码一起提供了表示关系间联系的手段。主码与外部码一起提供了表示关系间联系的手段。STDU_DB-31-22:39范式范式v关系模式满足不同标准化程度称为满足不同范式。关系模式满足不同标准化程度称为满足不同范式。v1971-1972年年E.F.Codd系统提出了系统提出了1NF、2NF、3NF。后来。后来又和他人一起提出了又和他人一起提出了BCNF、4NF、5NF。v范式的种类:范式的种类:第一范式第一范式(1NF)第二范式第二范式(2NF)第三范式第三范式(3NF)BC范式范式(BCNF)第四范式第四范式(4NF)第五范式第五范式(5NF)STDU_DB-32-22:39范式范式(Cont.)v各种范式之间存在联系:各种范式之间存在联系:v某一关系模式某一关系模式R为第为第n范式,可简记为范式,可简记为R nNF。v一个一个低一级低一级范式的关系模式,通过范式的关系模式,通过模式分解模式分解可以可以转换为若干个转换为若干个高一级高一级范式的关系模式的集合,这范式的关系模式的集合,这种过程就叫种过程就叫规范化。规范化。STDU_DB-33-22:39第一范式:第一范式:1NFv1NF的定义的定义n如果一个关系模式如果一个关系模式R的所有属性都是的所有属性都是不可分的基本数据项不可分的基本数据项,则则R 1NF。n第一范式是对关系模式的最起码的要求。不满足第一范式第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。的数据库模式不能称为关系数据库。n但是满足第一范式的关系模式并不一定是一个好的关系模但是满足第一范式的关系模式并不一定是一个好的关系模式。式。STDU_DB-34-22:39关系模式关系模式 S-L-C(Sno,Sdept,Sloc,Cno,Grade)n例:关系模式例:关系模式 S-L-C(Sno,Sdept,Sloc,Cno,Grade),Sloc为学生住处,假设每个系的学生住在同一个地方。为学生住处,假设每个系的学生住在同一个地方。u函数依赖包括:函数依赖包括:(Sno,Cno)F Grade Sno Sdept (Sno,Cno)P Sdept Sno Sloc (Sno,Cno)P Sloc Sdept SlocSTDU_DB-35-22:39S-L-C不是一个好的关系模式不是一个好的关系模式 S-L-C(Sno,Sdept,Sloc,Cno,Grade)码:码:(Sno,Cno)u(1)数据冗余度大数据冗余度大u(2)删除异常删除异常u(3)插入异常插入异常u(4)更新复杂更新复杂STDU_DB-36-22:39S-L-C不是一个好的关系模式不是一个好的关系模式(Cont.)v原因原因nSdept、Sloc部分函数依赖于码。部分函数依赖于码。v解决方法解决方法nS-L-C分解为两个关系模式,以消除这些部分函数依赖分解为两个关系模式,以消除这些部分函数依赖 uSC(Sno,Cno,Grade)uS-L(Sno,Sdept,Sloc)STDU_DB-37-22:39第二范式:第二范式:2NFv2NF的定义的定义n定义:若定义:若R 1NF,且每一个,且每一个非主属性非主属性完全函数依赖完全函数依赖于码,于码,则则R 2NF。nS-L-C(Sno,Sdept,Sloc,Cno,Grade)1NFnS-L-C(Sno,Sdept,Sloc,Cno,Grade)2NF?u答案:答案:S-L-C(Sno,Sdept,Sloc,Cno,Grade)2NF!u原因:存在部分依赖原因:存在部分依赖(Sno,Cno)P Sdept,(Sno,Cno)P Sloc。1NF且且没有部分依赖没有部分依赖STDU_DB-38-22:39第二范式:第二范式:2NF(Cont.)v解决办法:采用解决办法:采用投影分解法投影分解法将一个将一个1NF的关系分的关系分解为多个解为多个2NF的关系,可以在一定程度上减轻原的关系,可以在一定程度上减轻原1NF关系中存在的插入异常、删除异常、数据冗关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。余度大、修改复杂等问题。nS-L-C(Sno,Sdept,Sloc,Cno,Grade)2NF u SC(Sno,Cno,Grade)2NFu S-L(Sno,Sdept,Sloc)2NFSTDU_DB-39-22:39分解办法分解办法v首先,对于组成主码的属性集合的每一个子集,首先,对于组成主码的属性集合的每一个子集,用它作为主码构成一个表。用它作为主码构成一个表。v然后,将依赖于这些主码的属性放置到相应的表然后,将依赖于这些主码的属性放置到相应的表中。中。v最后,去掉只由主码的子集构成的表。最后,去掉只由主码的子集构成的表。STDU_DB-40-22:39分解:分解:S-L-C(Sno,Sdept,Sloc,Cno,Grade)v对于对于S-L-C表,首先分解为如下形式的三张表:表,首先分解为如下形式的三张表:S-L(Sno,)C(Cno,)S-C(Sno,Cno,)v然后,将依赖于这些主码的属性放置到相应的表中然后,将依赖于这些主码的属性放置到相应的表中S-L(Sno,Sdept,Sloc)C(Cno)S-C(Sno,Cno,Grade)v最后,去掉只由主码的子集构成的表,最终分解为:最后,去掉只由主码的子集构成的表,最终分解为:S-L(Sno,Sdept,Sloc)S-C(Sno,Cno,Grade)STDU_DB-41-22:39第二范式:第二范式:2NF(Cont.)v但是,将一个但是,将一个1NF关系分解为多个关系分解为多个2NF的关系,的关系,并并不能完全消除不能完全消除关系模式中的各种异常情况和数关系模式中的各种异常情况和数据冗余。据冗余。v S-L(Sno,Sdept,Sloc)2NFu(1)数据冗余数据冗余u(2)删除异常删除异常u(3)插入异常插入异常u(4)更新复杂更新复杂STDU_DB-42-22:39第三范式第三范式 :3NFv3NF的定义的定义n定义:关系模式定义:关系模式R 中每一个中每一个非主属性非主属性既不部分依既不部分依赖赖于码于码也不传递依赖也不传递依赖于码,则称于码,则称R 3NF。n或:或:R 2NF且非主属性不传递函数依赖于码。且非主属性不传递函数依赖于码。1NF且且没有部分依赖没有部分依赖没有传递依赖没有传递依赖2NF且且没有传递依赖没有传递依赖STDU_DB-43-22:39第三范式第三范式 :3NF(Cont.)n例:例:2NF关系模式关系模式S-L(Sno,Sdept,Sloc)n函数依赖:函数依赖:u SnoSdeptu Sdept Snou SdeptSlocu 因此:因此:SnoSloc u S-L中存在非主属性对码的传递函数依赖,中存在非主属性对码的传递函数依赖,S-L 3NFtSTDU_DB-44-22:39第三范式第三范式 :3NF(Cont.)v解决方法:解决方法:采用投影分解法,把采用投影分解法,把S-L分解为两个关系模分解为两个关系模式,以式,以消除传递依赖消除传递依赖。v分解过程分解过程u(1)对于不是候选码的每个决定因子,从表中删去)对于不是候选码的每个决定因子,从表中删去依赖于它的所有属性;依赖于它的所有属性;u(2)新建一个表,新表中包含在原表中所有依赖于该)新建一个表,新表中包含在原表中所有依赖于该决定因子的属性;决定因子的属性;u(3)将决定因子作为新表的主码。)将决定因子作为新表的主码。STDU_DB-45-22:39第三范式第三范式 :3NF(Cont.)v2NF关系模式关系模式S-L(Sno,Sdept,Sloc)n分解为:分解为:u S-D(Sno,Sdept)u D-L(Sdept,Sloc)u分解后的关系模式分解后的关系模式S-D与与D-L中不再存在传递依赖,都中不再存在传递依赖,都是是 3NF的。的。STDU_DB-46-22:39第三范式第三范式 :3NF(Cont.)nS-L(Sno,Sdept,Sloc)2NFnS-L(Sno,Sdept,Sloc)3NF uS-D(Sno,Sdept)3NFuD-L(Sdept,Sloc)3NFSTDU_DB-47-22:39第三范式第三范式 :3NF(Cont.)v采用采用投影分解法投影分解法将一个将一个2NF的关系分解为多个的关系分解为多个3NF的关系,可以在一定程度上解决原的关系,可以在一定程度上解决原2NF关系中存在关系中存在的插入异常、删除异常、数据冗余度大、修改复杂的插入异常、删除异常、数据冗余度大、修改复杂等问题。等问题。v 将一个将一个2NF关系分解为多个关系分解为多个3NF的关系后,的关系后,仍然不仍然不能完全消除能完全消除关系模式中的各种异常情况和数据冗余。关系模式中的各种异常情况和数据冗余。STDU_DB-48-22:39总结总结v规范化的过程就是把规范化程度低的关系模式分解为规范化的过程就是把规范化程度低的关系模式分解为若干个规范化程度高的关系模式。目的就是使每个规若干个规范化程度高的关系模式。目的就是使每个规范化的关系模式只描述一个主题。根本目的是减少数范化的关系模式只描述一个主题。根本目的是减少数据冗余、消除操作异常。据冗余、消除操作异常。v因此,规范化程度越高,数据冗余越少,操作异常越因此,规范化程度越高,数据冗余越少,操作异常越少。少。v对于一般的数据库应用来说,对于一般的数据库应用来说,3NF就足够了。就足够了。sjzri-dsl-49-22:39小小 结结问题的提出问题的提出规范化规范化函数依赖函数依赖码码范式范式1NF2NF3NF为什么学习关系理论?为什么学习关系理论?方法:模式分解方法:模式分解存在的问题、解决方案存在的问题、解决方案Theory of Database 作业作业&P80:18
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 方案规范


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!