《关系模式的规范化.ppt》由会员分享,可在线阅读,更多相关《关系模式的规范化.ppt(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第第第4 4讲讲讲讲 关系模式的规范化关系模式的规范化关系模式的规范化关系模式的规范化第第第第5 5章章章章 关系数据库模式设计关系数据库模式设计关系数据库模式设计关系数据库模式设计例例例例例例:R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR),F=C#F=C#F=C#F=C#F=C#F=C#TNAME,(S#,C#)T
2、NAME,(S#,C#)TNAME,(S#,C#)TNAME,(S#,C#)TNAME,(S#,C#)TNAME,(S#,C#)GRADE,TNAMEGRADE,TNAMEGRADE,TNAMEGRADE,TNAMEGRADE,TNAMEGRADE,TNAMETADDRTADDRTADDRTADDRTADDRTADDR主要问题:主要问题:主要问题:主要问题:主要问题:主要问题:C#C#TNAMETNAMEC#C#TNAMETNAMETNAMETNAMETADDRTADDRC#C#TADDRTADDR(S#S#,C#C#)TADDRTADDR到底什么样的关系模式是最优的?到底什么样的关系模式是最
3、优的?标准是什么?如何实现?标准是什么?如何实现?主要内容主要内容主要内容主要内容n nn范式范式范式范式范式范式n nn第一范式第一范式第一范式第一范式第一范式第一范式n nn第二范式第二范式第二范式第二范式第二范式第二范式n nn第三范式第三范式第三范式第三范式第三范式第三范式n nnBCNFBCNFBCNFn nn范式之间的关系和关系模式的规范化范式之间的关系和关系模式的规范化范式之间的关系和关系模式的规范化范式之间的关系和关系模式的规范化范式之间的关系和关系模式的规范化范式之间的关系和关系模式的规范化n nn向向向向向向3NF3NF3NF的模式分解算法的模式分解算法的模式分解算法的模式
4、分解算法的模式分解算法的模式分解算法一、范式一、范式一、范式一、范式一、范式一、范式 衡量关系模式好坏的标准就是关系模式的范衡量关系模式好坏的标准就是关系模式的范衡量关系模式好坏的标准就是关系模式的范衡量关系模式好坏的标准就是关系模式的范衡量关系模式好坏的标准就是关系模式的范衡量关系模式好坏的标准就是关系模式的范式(式(式(式(式(式(Normal FormsNormal FormsNormal Forms,简记为,简记为,简记为,简记为,简记为,简记为NFNFNF)。)。)。)。)。)。可以把范式的概念理解为符合某一条件的关可以把范式的概念理解为符合某一条件的关可以把范式的概念理解为符合某一
5、条件的关可以把范式的概念理解为符合某一条件的关可以把范式的概念理解为符合某一条件的关可以把范式的概念理解为符合某一条件的关系模式的集合。系模式的集合。系模式的集合。系模式的集合。系模式的集合。系模式的集合。在在在在在在一一一一一一个个个个个个关关关关关关系系系系系系模模模模模模式式式式式式R R R R R R中中中中中中,如如如如如如果果果果果果R R R R R R的的的的的的每每每每每每一一一一一一个个个个个个属属属属属属性性性性性性的的的的的的值值值值值值域域域域域域中中中中中中的的的的的的值值值值值值都都都都都都是是是是是是不不不不不不可可可可可可再再再再再再分分分分分分的的的的的的
6、最最最最最最小小小小小小数数数数数数据据据据据据单单单单单单位位位位位位,则则则则则则称称称称称称R R R R R R是第一范式(是第一范式(是第一范式(是第一范式(是第一范式(是第一范式(1NF1NF1NF1NF1NF1NF)的模式,也称)的模式,也称)的模式,也称)的模式,也称)的模式,也称)的模式,也称R R R R R R1NF1NF1NF。二、第一范式(二、第一范式(二、第一范式(二、第一范式(二、第一范式(二、第一范式(1NF1NF1NF)1NF1NF是最基本的范式,满足是最基本的范式,满足是最基本的范式,满足是最基本的范式,满足1NF1NF的关系称的关系称的关系称的关系称为规范
7、化的关系,否则,称为非规范化的为规范化的关系,否则,称为非规范化的为规范化的关系,否则,称为非规范化的为规范化的关系,否则,称为非规范化的关系。关系。关系。关系。例例例例例例:R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR),F=C#F=C#F=C#F=C#F=C#F=C#TNAME,(S#,C#)TNAME,(S#,C#
8、)TNAME,(S#,C#)TNAME,(S#,C#)TNAME,(S#,C#)TNAME,(S#,C#)GRADE,TNAMEGRADE,TNAMEGRADE,TNAMEGRADE,TNAMEGRADE,TNAMEGRADE,TNAMETADDRTADDRTADDRTADDRTADDRTADDRS#S#C#C#GRADEGRADETNAMETNAMETADDTADDR R200401001200401001C401001C401001C402002C402002C403001C403001909090908585徐徐徐徐 浩浩浩浩李阳洋李阳洋李阳洋李阳洋宋宋宋宋 歌歌歌歌a1a1b1b1c1
9、c1200401002200401002C401001C401001C402002C40200275758888徐徐徐徐 浩浩浩浩李阳洋李阳洋李阳洋李阳洋a1a1b1b1200401003200401003C402002C4020026969李阳洋李阳洋李阳洋李阳洋b1b1200402001200402001C401004C4010048787徐徐徐徐 浩浩浩浩a1a1结论:结论:结论:结论:R R R R不是不是不是不是1NF1NF1NF1NF模式模式模式模式二、第一范式(二、第一范式(二、第一范式(二、第一范式(二、第一范式(二、第一范式(1NF1NF1NF)(续(续(续(续(续(续1 1
10、 1)解决方法解决方法解决方法解决方法 对于有子表的非规范关系,一般采用对于有子表的非规范关系,一般采用对于有子表的非规范关系,一般采用对于有子表的非规范关系,一般采用重复重复重复重复所在行的其它属性的值,增加新的记录所在行的其它属性的值,增加新的记录所在行的其它属性的值,增加新的记录所在行的其它属性的值,增加新的记录,从,从,从,从而把子表中的值分开,将非规范关系转换成而把子表中的值分开,将非规范关系转换成而把子表中的值分开,将非规范关系转换成而把子表中的值分开,将非规范关系转换成规范关系。规范关系。规范关系。规范关系。二、第一范式(二、第一范式(二、第一范式(二、第一范式(二、第一范式(二
11、、第一范式(1NF1NF1NF)(续(续(续(续(续(续2 2 2)例例例例例例:R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR),F=C#F=C#F=C#F=C#F=C#F=C#TNAME,(S#,C#)TNAME,(S#,C#)TNAME,(S#,C#)TNAME,(S#,C#)TNAME,(S#,C#)TNAME,(
12、S#,C#)GRADE,TNAMEGRADE,TNAMEGRADE,TNAMEGRADE,TNAMEGRADE,TNAMEGRADE,TNAMETADDRTADDRTADDRTADDRTADDRTADDRS#S#C#C#GRADEGRADETNAMETNAMETADDTADDR R200401001200401001C401001C401001C402002C402002C403001C403001909090908585徐徐徐徐 浩浩浩浩李阳洋李阳洋李阳洋李阳洋宋宋宋宋 歌歌歌歌a1a1b1b1c1c1200401002200401002C401001C401001C402002C40200
13、275758888徐徐徐徐 浩浩浩浩李阳洋李阳洋李阳洋李阳洋a1a1b1b1200401003200401003C402002C4020026969李阳洋李阳洋李阳洋李阳洋b1b1200402001200402001C401004C4010048787徐徐徐徐 浩浩浩浩a1a1200401001200401001C401001C4010019090徐徐徐徐 浩浩浩浩a1a1200401001200401001C402002C4020029090李阳洋李阳洋李阳洋李阳洋b1b1200401001200401001C403001C4030018585宋宋宋宋 歌歌歌歌c1c120040100220
14、0401002C401001C4010017575徐徐徐徐 浩浩浩浩a1a1200401002200401002C402002C4020028888李阳洋李阳洋李阳洋李阳洋b1b1结论:结论:结论:结论:R R R R是是是是1NF1NF1NF1NF模式模式模式模式二、第一范式(二、第一范式(二、第一范式(二、第一范式(二、第一范式(二、第一范式(1NF1NF1NF)(续(续(续(续(续(续3 3 3)三、第二范式(三、第二范式(三、第二范式(三、第二范式(三、第二范式(三、第二范式(2NF2NF2NF)定定定定定定义义义义义义:如如如如如如果果果果果果一一一一一一个个个个个个关关关关关关系系
15、系系系系模模模模模模式式式式式式R R R R R R是是是是是是1NF1NF1NF1NF1NF1NF,且且且且且且它它它它它它的的的的的的每每每每每每一一一一一一个个个个个个非非非非非非主主主主主主属属属属属属性性性性性性都都都都都都完完完完完完全全全全全全函函函函函函数数数数数数依依依依依依赖赖赖赖赖赖于于于于于于候候候候候候选选选选选选键键键键键键,那那那那那那么么么么么么称称称称称称R R R R R R是是是是是是满满满满满满足第二范式(足第二范式(足第二范式(足第二范式(足第二范式(足第二范式(2NF2NF2NF2NF2NF2NF)的关系模式。)的关系模式。)的关系模式。)的关系模
16、式。)的关系模式。)的关系模式。例例例例例例:R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR),F=C#F=C#F=C#F=C#F=C#F=C#TNAME,(S#,C#)TNAME,(S#,C#)TNAME,(S#,C#)TNAME,(S#,C#)TNAME,(S#,C#)TNAME,(S#,C#)GRADE,TNAMEG
17、RADE,TNAMEGRADE,TNAMEGRADE,TNAMEGRADE,TNAMEGRADE,TNAMETADDRTADDRTADDRTADDRTADDRTADDR三、第二范式(三、第二范式(三、第二范式(三、第二范式(三、第二范式(三、第二范式(2NF2NF2NF)(续)(续)(续)(续)(续)(续1 1 1)学号学号学号学号(S#)(S#)(S#)(S#)课程号课程号课程号课程号(C#)(C#)(C#)(C#)教师名教师名教师名教师名(TNAME)(TNAME)(TNAME)(TNAME)部分依赖部分依赖部分依赖部分依赖结论:结论:结论:结论:R R R R不是不是不是不是2NF2NF
18、2NF2NF模式模式模式模式S#S#C#C#GRADEGRADETNAMETNAMETADDRTADDR200401001200401001C401001C4010019090徐徐徐徐 浩浩浩浩a1a1200401001200401001C402002C4020029090李阳洋李阳洋李阳洋李阳洋b1b1200401001200401001C403001C4030018585宋宋宋宋 歌歌歌歌c1c1200401002200401002C401001C4010017575徐徐徐徐 浩浩浩浩a1a1200401002200401002C402002C4020028888李阳洋李阳洋李阳洋李阳洋b
19、1b1200401003200401003C402002C4020026969李阳洋李阳洋李阳洋李阳洋b1b1200402001200402001C401004C4010048787徐徐徐徐 浩浩浩浩a1a1例例例例例例:R=(S#,C#,GRADE,TNAME,TADDR),R=(S#,C#,GRADE,TNAME,TADDR),R=(S#,C#,GRADE,TNAME,TADDR),R=(S#,C#,GRADE,TNAME,TADDR),R=(S#,C#,GRADE,TNAME,TADDR),R=(S#,C#,GRADE,TNAME,TADDR),F=C#F=C#F=C#F=C#F=C#F
20、=C#TNAME,(S#,C#)TNAME,(S#,C#)TNAME,(S#,C#)TNAME,(S#,C#)TNAME,(S#,C#)TNAME,(S#,C#)GRADE,TNAMEGRADE,TNAMEGRADE,TNAMEGRADE,TNAMEGRADE,TNAMEGRADE,TNAMETADDR TADDR TADDR TADDR TADDR TADDR 三、第二范式(三、第二范式(三、第二范式(三、第二范式(三、第二范式(三、第二范式(2NF2NF2NF)(续)(续)(续)(续)(续)(续2 2 2)学号学号学号学号(S#)(S#)(S#)(S#)课程号课程号课程号课程号(C#)(C
21、#)(C#)(C#)成绩成绩成绩成绩(GRADE)(GRADE)(GRADE)(GRADE)教师名教师名教师名教师名(TNAME)(TNAME)(TNAME)(TNAME)教师住址教师住址教师住址教师住址(TADDR)(TADDR)(TADDR)(TADDR)R R1 1R R2 2例例例例:R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR),F=C#F=C#F=C#F=C#TNAME,(S#,C#)TNAME,(S#,C#)TN
22、AME,(S#,C#)TNAME,(S#,C#)GRADE,TNAMEGRADE,TNAMEGRADE,TNAMEGRADE,TNAMETADDRTADDRTADDRTADDR三、第二范式(三、第二范式(三、第二范式(三、第二范式(三、第二范式(三、第二范式(2NF2NF2NF)(续)(续)(续)(续)(续)(续3 3 3)例例例例例例:R R R R R R1 11 11 1(S#,C#,GRADES#,C#,GRADES#,C#,GRADES#,C#,GRADES#,C#,GRADES#,C#,GRADE),F,F,F,F,F,F1 11 11 1=(S#,C#)=(S#,C#)=(S#,
23、C#)=(S#,C#)=(S#,C#)=(S#,C#)GRADEGRADEGRADEGRADEGRADEGRADE R R R R R R2 22 22 2(C#,TNAME,TADDRC#,TNAME,TADDRC#,TNAME,TADDRC#,TNAME,TADDRC#,TNAME,TADDRC#,TNAME,TADDR),F F F F F F2 22 22 2=C#=C#=C#=C#=C#=C#TNAME,TNAMETNAME,TNAMETNAME,TNAMETNAME,TNAMETNAME,TNAMETNAME,TNAMETADDRTADDRTADDRTADDRTADDRTADDRC
24、#C#TNAMETNAMETADDRTADDRC401001C401001徐徐徐徐 浩浩浩浩a1a1C402002C402002李阳洋李阳洋李阳洋李阳洋b1b1C403001C403001宋宋宋宋 歌歌歌歌c1c1C401004C401004徐徐徐徐 浩浩浩浩a1a1S#S#C#C#GRADEGRADE200401001200401001C401001C4010019090200401001200401001C402002C4020029090200401001200401001C403001C4030018585200401002200401002C401001C40100175752004
25、01002200401002C402002C4020028888200401003200401003C402002C4020026969200402001200402001C401004C4010048787三、第二范式(三、第二范式(三、第二范式(三、第二范式(三、第二范式(三、第二范式(2NF2NF2NF)(续)(续)(续)(续)(续)(续4 4 4)结论:结论:结论:结论:R R R R1 1 1 1和和和和R R R R2 2 2 2是是是是2NF2NF2NF2NF模式模式模式模式r r2 2r r1 1结论:结论:结论:结论:R R R R2 2 2 2中仍然存在数据冗余中仍然存在数
26、据冗余中仍然存在数据冗余中仍然存在数据冗余和操作异常和操作异常和操作异常和操作异常四、第三范式(四、第三范式(四、第三范式(四、第三范式(四、第三范式(四、第三范式(3NF3NF3NF)定定定定定定义义义义义义:如如如如如如果果果果果果一一一一一一个个个个个个关关关关关关系系系系系系模模模模模模式式式式式式R R R R R R属属属属属属于于于于于于1NF1NF1NF1NF1NF1NF,且且且且且且R R R R R R的的的的的的任任任任任任何何何何何何一一一一一一个个个个个个非非非非非非主主主主主主属属属属属属性性性性性性都都都都都都不不不不不不传传传传传传递递递递递递依依依依依依赖赖赖
27、赖赖赖于于于于于于R R R R R R的的的的的的候候候候候候选选选选选选键键键键键键,那那那那那那么么么么么么称称称称称称R R R R R R是是是是是是满满满满满满足第三范式(足第三范式(足第三范式(足第三范式(足第三范式(足第三范式(3NF3NF3NF3NF3NF3NF)的关系模式。)的关系模式。)的关系模式。)的关系模式。)的关系模式。)的关系模式。例例例例例例:R R R R R R1 11 11 1(S#,C#,GRADES#,C#,GRADES#,C#,GRADES#,C#,GRADES#,C#,GRADES#,C#,GRADE),F F F F F F1 11 11 1=(
28、S#,C#)=(S#,C#)=(S#,C#)=(S#,C#)=(S#,C#)=(S#,C#)GRADEGRADEGRADEGRADEGRADEGRADE R R R R R R2 22 22 2(C#,TNAME,TADDRC#,TNAME,TADDRC#,TNAME,TADDRC#,TNAME,TADDRC#,TNAME,TADDRC#,TNAME,TADDR),F F F F F F2 22 22 2=C#=C#=C#=C#=C#=C#TNAME,TNAMETNAME,TNAMETNAME,TNAMETNAME,TNAMETNAME,TNAMETNAME,TNAMETADDRTADDRTA
29、DDRTADDRTADDRTADDR结论:结论:结论:结论:R1 R1 R1 R1 是是是是3NF3NF3NF3NF模式模式模式模式 R2R2R2R2不是不是不是不是3NF3NF3NF3NF模式模式模式模式四、第三范式(四、第三范式(四、第三范式(四、第三范式(四、第三范式(四、第三范式(3NF3NF3NF)(续)(续)(续)(续)(续)(续1 1 1)例例例例例例:R R R R R R2 22 22 2(C#,TNAME,TADDRC#,TNAME,TADDRC#,TNAME,TADDRC#,TNAME,TADDRC#,TNAME,TADDRC#,TNAME,TADDR),F F F F
30、F F2 22 22 2=C#=C#=C#=C#=C#=C#TNAME,TNAMETNAME,TNAMETNAME,TNAMETNAME,TNAMETNAME,TNAMETNAME,TNAMETADDRTADDRTADDRTADDRTADDRTADDRR R R R21212121(C#,TNAMEC#,TNAMEC#,TNAMEC#,TNAME),F,F,F,F21212121=C#=C#=C#=C#TNAMETNAMETNAMETNAMER R R R22222222(TNAME,TADDRTNAME,TADDRTNAME,TADDRTNAME,TADDR),F,F,F,F22222222
31、=TNAME=TNAME=TNAME=TNAMETADDRTADDRTADDRTADDR课程号课程号课程号课程号(C#)(C#)(C#)(C#)教师名教师名教师名教师名(TNAME)(TNAME)(TNAME)(TNAME)教师住址教师住址教师住址教师住址(TADDR)(TADDR)(TADDR)(TADDR)四、第三范式(四、第三范式(四、第三范式(四、第三范式(四、第三范式(四、第三范式(3NF3NF3NF)(续)(续)(续)(续)(续)(续2 2 2)例例例例例例:在在在在在在关关关关关关系系系系系系模模模模模模式式式式式式R(CITYR(CITYR(CITYR(CITYR(CITYR(
32、CITY,STREETSTREETSTREETSTREETSTREETSTREET,ZIP)ZIP)ZIP)ZIP)ZIP)ZIP)中中中中中中,候候候候候候选选选选选选键为键为键为键为键为键为CITY,STREETCITY,STREETCITY,STREETCITY,STREETCITY,STREETCITY,STREET和和和和和和ZIPZIPZIPZIPZIPZIP,STREETSTREETSTREETSTREETSTREETSTREET,F=CITY,STREETZIPF=CITY,STREETZIPF=CITY,STREETZIPF=CITY,STREETZIPF=CITY,STRE
33、ETZIPF=CITY,STREETZIP,ZIPCITYZIPCITYZIPCITYZIPCITYZIPCITYZIPCITY。结论:结论:结论:结论:R R R R是是是是3NF3NF3NF3NF模式模式模式模式举例:举例:举例:举例:举例:举例:CITYCITYCITYCITYSTREETSTREETSTREETSTREETZIPZIPZIPZIP主属性对候选键的部分依赖主属性对候选键的部分依赖主属性对候选键的部分依赖主属性对候选键的部分依赖五、五、五、五、五、五、BCNFBCNFBCNF定义:定义:定义:定义:定义:定义:设有关系模式设有关系模式设有关系模式设有关系模式设有关系模式设有
34、关系模式R(U,F)R(U,F)R(U,F),F F F是是是是是是R RR上的函数依赖集,上的函数依赖集,上的函数依赖集,上的函数依赖集,上的函数依赖集,上的函数依赖集,X X X和和和和和和A A A是是是是是是U UU的子集,且的子集,且的子集,且的子集,且的子集,且的子集,且A A A不是不是不是不是不是不是X X X的子集。如果的子集。如果的子集。如果的子集。如果的子集。如果的子集。如果对于对于对于对于对于对于F F F中的每一个函数依赖中的每一个函数依赖中的每一个函数依赖中的每一个函数依赖中的每一个函数依赖中的每一个函数依赖XAXAXA,X X X都是都是都是都是都是都是R RR的
35、一个候的一个候的一个候的一个候的一个候的一个候选键,选键,选键,选键,选键,选键,则称则称则称则称则称则称R RR是鲍依斯是鲍依斯是鲍依斯是鲍依斯是鲍依斯是鲍依斯-柯德范式,记为柯德范式,记为柯德范式,记为柯德范式,记为柯德范式,记为柯德范式,记为BCNFBCNFBCNF。结论:结论:结论:结论:R R R R不不不不是是是是BCBCBCBCNFNFNFNF模式模式模式模式五、五、五、五、五、五、BCNFBCNFBCNF(续)(续)(续)(续)(续)(续)例例例例例例:R(CITYR(CITYR(CITYR(CITYR(CITYR(CITY,STREETSTREETSTREETSTREETST
36、REETSTREET,ZIP)ZIP)ZIP)ZIP)ZIP)ZIP),候候候候候候选键为选键为选键为选键为选键为选键为CITY,STREETCITY,STREETCITY,STREETCITY,STREETCITY,STREETCITY,STREET和和和和和和ZIPZIPZIPZIPZIPZIP,STREETSTREETSTREETSTREETSTREETSTREET F=CITY,STREETZIP F=CITY,STREETZIP F=CITY,STREETZIP F=CITY,STREETZIP F=CITY,STREETZIP F=CITY,STREETZIP,ZIPCITYZIP
37、CITYZIPCITYZIPCITYZIPCITYZIPCITY。六、范式之间的关系和关系模式的规范化六、范式之间的关系和关系模式的规范化六、范式之间的关系和关系模式的规范化六、范式之间的关系和关系模式的规范化六、范式之间的关系和关系模式的规范化六、范式之间的关系和关系模式的规范化是是是是3NF3NF3NF3NF的关系模式,的关系模式,的关系模式,的关系模式,是否一定就是是否一定就是是否一定就是是否一定就是2NF2NF2NF2NF模式模式模式模式思考思考是是是是BCNFBCNFBCNFBCNF的关系模式,的关系模式,的关系模式,的关系模式,是否一定就是是否一定就是是否一定就是是否一定就是3NF
38、3NF3NF3NF模式模式模式模式1 1 1、定理、定理、定理、定理、定理、定理定理定理定理定理定理定理5.65.65.6:一个一个一个一个一个一个3NF3NF3NF3NF3NF3NF的关系模式一定是的关系模式一定是的关系模式一定是的关系模式一定是的关系模式一定是的关系模式一定是2NF2NF2NF2NF2NF2NF的的的的的的。定理定理定理定理定理定理5.75.75.7:一个一个一个一个一个一个BCNFBCNFBCNFBCNFBCNFBCNF的关系模式一定是的关系模式一定是的关系模式一定是的关系模式一定是的关系模式一定是的关系模式一定是3NF3NF3NF3NF3NF3NF的。的。的。的。的。的
39、。证明:用反证法。设证明:用反证法。设R是是3NF的,但不是的,但不是2NF的,那的,那么一定存在非主属性么一定存在非主属性A、候选键、候选键X和和X的真子集的真子集Y,使,使得得YA XY 与假设矛盾,所以与假设矛盾,所以R也是也是2NF的。证毕。的。证毕。XAXA2 2 2、范式之间的关系、范式之间的关系、范式之间的关系、范式之间的关系、范式之间的关系、范式之间的关系消除消除消除消除非主属性对侯选键的非主属性对侯选键的非主属性对侯选键的非主属性对侯选键的部分函数依赖部分函数依赖部分函数依赖部分函数依赖消除消除消除消除非主属性对侯选键的非主属性对侯选键的非主属性对侯选键的非主属性对侯选键的传
40、递函数依赖传递函数依赖传递函数依赖传递函数依赖1NF1NF2NF2NF3NF3NFBCNFBCNF消除消除消除消除主属性对侯选键的主属性对侯选键的主属性对侯选键的主属性对侯选键的部分或传递函数依赖部分或传递函数依赖部分或传递函数依赖部分或传递函数依赖3 3 3、关系模式的规范化、关系模式的规范化、关系模式的规范化、关系模式的规范化、关系模式的规范化、关系模式的规范化 关系模式的规范化就是通过对模式进行关系模式的规范化就是通过对模式进行关系模式的规范化就是通过对模式进行关系模式的规范化就是通过对模式进行关系模式的规范化就是通过对模式进行关系模式的规范化就是通过对模式进行分解分解分解分解分解分解,
41、将一个属于低级范式的关系模式转换成若干个属将一个属于低级范式的关系模式转换成若干个属将一个属于低级范式的关系模式转换成若干个属将一个属于低级范式的关系模式转换成若干个属将一个属于低级范式的关系模式转换成若干个属将一个属于低级范式的关系模式转换成若干个属于高级范式的关系模式的过程,从而解决或部分于高级范式的关系模式的过程,从而解决或部分于高级范式的关系模式的过程,从而解决或部分于高级范式的关系模式的过程,从而解决或部分于高级范式的关系模式的过程,从而解决或部分于高级范式的关系模式的过程,从而解决或部分解决数据冗余、更新异常等问题。解决数据冗余、更新异常等问题。解决数据冗余、更新异常等问题。解决数
42、据冗余、更新异常等问题。解决数据冗余、更新异常等问题。解决数据冗余、更新异常等问题。七、向七、向七、向七、向七、向七、向3NF3NF3NF的模式分解算法的模式分解算法的模式分解算法的模式分解算法的模式分解算法的模式分解算法算法算法算法算法算法算法5.5 5.5 5.5 5.5 5.5 5.5 一个关系模式向一个关系模式向一个关系模式向一个关系模式向一个关系模式向一个关系模式向3NF3NF3NF3NF3NF3NF的的的的的的保持依保持依保持依保持依保持依保持依赖赖赖赖赖赖性性性性性性的分解的分解的分解的分解的分解的分解输输输输输输入:关系模式入:关系模式入:关系模式入:关系模式入:关系模式入:关
43、系模式R(U,F)R(U,F)R(U,F)R(U,F)R(U,F)R(U,F),R R R R R R上的函数依上的函数依上的函数依上的函数依上的函数依上的函数依赖赖赖赖赖赖集集集集集集F F F F F F(最小依最小依最小依最小依最小依最小依赖赖赖赖赖赖集集集集集集)输输输输输输出出出出出出:R R R R R R的的的的的的一一一一一一个个个个个个保保保保保保持持持持持持依依依依依依赖赖赖赖赖赖的的的的的的分分分分分分解解解解解解=R=R=R=R=R=R1 1 1 11 1,R R R R R R2 2 2 22 2,R R R R R Rk k k kk k ,每个,每个,每个,每个,
44、每个,每个R R R R R Ri i i ii i为为为为为为3NF(i=1,2,k)3NF(i=1,2,k)3NF(i=1,2,k)3NF(i=1,2,k)3NF(i=1,2,k)3NF(i=1,2,k)。方法:方法:方法:方法:方法:方法:七、向七、向七、向七、向七、向七、向3NF3NF3NF的模式分解算法(续的模式分解算法(续的模式分解算法(续的模式分解算法(续的模式分解算法(续的模式分解算法(续1 1 1)(1 1 1 1 1 1)若有函数依赖)若有函数依赖)若有函数依赖)若有函数依赖)若有函数依赖)若有函数依赖XAXAXAXAXAXA F F F F F F,且,且,且,且,且,且
45、XA=RXA=RXA=RXA=RXA=RXA=R,则,则,则,则,则,则=R=R=R=R=R=R,转,转,转,转,转,转(5)(5)(5)(5)(5)(5);(2 2 2 2 2 2)找找找找找找出出出出出出R R R R R R的的的的的的不不不不不不在在在在在在F F F F F F中中中中中中出出出出出出现现现现现现的的的的的的所所所所所所有有有有有有属属属属属属性性性性性性,并并并并并并把把把把把把这这这这这这些些些些些些属属属属属属性性性性性性构构构构构构成成成成成成一一一一一一个个个个个个关关关关关关系系系系系系模模模模模模式式式式式式。然然然然然然后后后后后后把把把把把把这这这这
46、这这些些些些些些属属属属属属性性性性性性从从从从从从U U U U U U中中中中中中去去去去去去掉掉掉掉掉掉,将将将将将将剩剩剩剩剩剩余余余余余余的的的的的的属属属属属属性仍记为性仍记为性仍记为性仍记为性仍记为性仍记为U U U U U U。(3 3 3 3 3 3)对对对对对对F F F F F F中中中中中中的的的的的的函函函函函函数数数数数数依依依依依依赖赖赖赖赖赖按按按按按按具具具具具具有有有有有有相相相相相相同同同同同同左左左左左左部部部部部部的的的的的的原原原原原原则则则则则则进进进进进进行行行行行行分分分分分分组组组组组组,并并并并并并按按按按按按合合合合合合并并并并并并规规规
47、规规规则则则则则则将将将将将将每每每每每每一一一一一一组组组组组组合合合合合合并并并并并并成成成成成成一一一一一一个个个个个个新新新新新新的的的的的的函函函函函函数数数数数数依依依依依依赖赖赖赖赖赖。比比比比比比如如如如如如若若若若若若有有有有有有XAXAXAXAXAXA1 1 1 11 1,XAXAXAXAXAXA2 2 2 22 2,XAXAXAXAXAXAm m m mm m,则则则则则则可可可可可可以以以以以以将将将将将将它它它它它它们们们们们们合合合合合合并并并并并并成成成成成成XAXAXAXAXAXA1 1 1 11 1A A A A A A2 2 2 22 2AAAAAAm m
48、m mm m。(4 4 4 4 4 4)对于)对于)对于)对于)对于)对于F F F F F F中的每一个中的每一个中的每一个中的每一个中的每一个中的每一个XYXYXYXYXYXY,都构成一个关系模式,都构成一个关系模式,都构成一个关系模式,都构成一个关系模式,都构成一个关系模式,都构成一个关系模式R R R R R Ri i i ii i=XY=XY=XY=XY=XY=XY。(5 5 5 5 5 5)停止分解,输出)停止分解,输出)停止分解,输出)停止分解,输出)停止分解,输出)停止分解,输出。F F是最小函数依赖集是最小函数依赖集是最小函数依赖集是最小函数依赖集C#C#,TNAMETNAM
49、ES#,C#S#,C#,GRADEGRADETNAMETNAME,TADDRTADDR R R1 1(C#,C#,TNAME),TNAME),R R2 2(S#,C#,GRADES#,C#,GRADE),),R R3 3(TNAME,TADDR),(TNAME,TADDR),,保持依赖性保持依赖性保持依赖性保持依赖性例例例例例例:R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR)R=(S#,C#,GRADE,TNAME,TADDR
50、)R=(S#,C#,GRADE,TNAME,TADDR),F=C#F=C#F=C#F=C#F=C#F=C#TNAME,(S#,C#)TNAME,(S#,C#)TNAME,(S#,C#)TNAME,(S#,C#)TNAME,(S#,C#)TNAME,(S#,C#)GRADE,TNAMEGRADE,TNAMEGRADE,TNAMEGRADE,TNAMEGRADE,TNAMEGRADE,TNAMETADDRTADDRTADDRTADDRTADDRTADDR七、向七、向七、向七、向七、向七、向3NF3NF3NF的模式分解算法(续的模式分解算法(续的模式分解算法(续的模式分解算法(续的模式分解算法(续的