关系数据库(RDB)规范化设计理论.ppt
《关系数据库(RDB)规范化设计理论.ppt》由会员分享,可在线阅读,更多相关《关系数据库(RDB)规范化设计理论.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 第第4 4章章 关系数据库关系数据库(RDB)(RDB)规范化理论规范化理论 4.14.1 关系模式规范化的必要性关系模式规范化的必要性4.24.2 数值依赖数值依赖 4.34.3 范式与规范化范式与规范化 、关系分解原则、关系分解原则 nRDBRDB规范化理论的规范化理论的目的目的是要是要设计设计“好的好的”RDB”RDB模模式式。n要设计好的关系模式,必须是关系满足一定的要设计好的关系模式,必须是关系满足一定的约束条件,此约束形成了规范。约束条件,此约束形成了规范。n范式范式(Normal Form)(Normal Form):衡量衡量DBDB规范的层次规范的层次或深度,或深度,DBDB
2、规范化层次由范式来决定。规范化层次由范式来决定。简记作简记作NFNF.n根据关系模式满足的不同性质和规范化根据关系模式满足的不同性质和规范化的程度,将关系模式分为第一范式的程度,将关系模式分为第一范式(1NF)(1NF)、第二范式第二范式(2NF)(2NF)、第三范式、第三范式(3NF)(3NF)、BCBC范范式、第四范式式、第四范式(4NF)(4NF)、第五范式、第五范式(5NF)(5NF),范式越高规范化程度越高。范式越高规范化程度越高。n规范化:规范化:低级关系模式通过模式分解转低级关系模式通过模式分解转换为若干高级范式的关系模式集合的过换为若干高级范式的关系模式集合的过程。程。n规范化
3、是在规范化是在RDBRDB中减少数据冗余的过程。中减少数据冗余的过程。4.1 4.1 关系模式规范化的必要性关系模式规范化的必要性1 1.关系模式应满足的条件关系模式应满足的条件2 2.关系规范化可能出现的问题关系规范化可能出现的问题3 3.模式分解是关系规范化的主要方法模式分解是关系规范化的主要方法1.关系模式应满足的条件 元组每个分量必是不可再分的数据项元组每个分量必是不可再分的数据项nRDBRDB特别强调,关系中的属性不能是组合属性,必特别强调,关系中的属性不能是组合属性,必须是基本项。否则,会使关系结构变为多层次的混须是基本项。否则,会使关系结构变为多层次的混合结构,增加关系操作的表达
4、、优化即执行的复杂合结构,增加关系操作的表达、优化即执行的复杂度。如度。如:n 教师教师(姓名姓名,工资工资,所授课程名所授课程名,课程号课程号););职务工资 津贴 课时补贴 DB DB中的数据冗余应尽量少中的数据冗余应尽量少 “数据冗余数据冗余”会使:会使:nDBDB中的数据量巨增,系统负担过重,并浪费大量存储空间;中的数据量巨增,系统负担过重,并浪费大量存储空间;n造成数据的不完整,增加数据维护的代价。造成数据的不完整,增加数据维护的代价。n造成数据查询和统计困难,导致错误结果。造成数据查询和统计困难,导致错误结果。教师教师姓名姓名住址住址课课程程号号课程名课程名李林李林安徽省合肥市梅山
5、路安徽省合肥市梅山路78号号C1N1李林李林安徽省合肥市梅山路安徽省合肥市梅山路78号号C2N2李林李林安徽省合肥市梅山路安徽省合肥市梅山路78号号C3N3汪佳汪佳安徽省合肥市梅山路安徽省合肥市梅山路59号号C4N4吴仪吴仪安徽省合肥市梅山路安徽省合肥市梅山路79号号C5N5师帆师帆安徽省合肥市梅山路安徽省合肥市梅山路76号号C6N6 RDBRDB不能因为数据更新操作而引起数据不一致性即更不能因为数据更新操作而引起数据不一致性即更新异常新异常n对于对于“数据冗余大数据冗余大”的的RDBRDB,当执行数据修改时,系,当执行数据修改时,系统要付出很大代价来维护数据库的完整性。否则会面统要付出很大代
6、价来维护数据库的完整性。否则会面临数据不一致的危险。影响了数据的完整性,使得临数据不一致的危险。影响了数据的完整性,使得DBDB中数据的可信度降低。如中数据的可信度降低。如:某教师从某教师从7878号宿舍搬到号宿舍搬到7676号号,修改量较大修改量较大.教师教师姓名姓名住址住址课课程程号号课程名课程名李林李林安徽省合肥市梅山路安徽省合肥市梅山路78号号C1N1李林李林安徽省合肥市梅山路安徽省合肥市梅山路78号号C2N2李林李林安徽省合肥市梅山路安徽省合肥市梅山路78号号C3N3汪佳汪佳安徽省合肥市梅山路安徽省合肥市梅山路59号号C4N4吴仪吴仪安徽省合肥市梅山路安徽省合肥市梅山路79号号C5N
7、5师帆师帆安徽省合肥市梅山路安徽省合肥市梅山路76号号C6N6当执行数据插入时,当执行数据插入时,DBDB中的数据不能产生插入中的数据不能产生插入异常现象异常现象n所谓所谓“插入异常插入异常”是指希望插入的信息由于不是指希望插入的信息由于不能满足数据完整性的某种要求而不能正常地被能满足数据完整性的某种要求而不能正常地被插入到插入到DBDB中的异常问题。中的异常问题。n比如:上例中插入一个尚未安排授课的新进教师信息.原因:n因多种信息混合放在一个表中,可能造成因一因多种信息混合放在一个表中,可能造成因一种信息被捆绑在其他信息上而产生的信息之间种信息被捆绑在其他信息上而产生的信息之间相互依附存储的
8、问题,使得信息不能独立插入。相互依附存储的问题,使得信息不能独立插入。DB DB中数据不能在执行删除操作时产生中数据不能在执行删除操作时产生“删除异删除异常常”问题问题n“删除异常删除异常”是指在删除某种信息的同时把其它是指在删除某种信息的同时把其它信息也删除了。信息也删除了。n比如比如:上例取消上例取消T3T3教师的教学任务教师的教学任务,要删除其授课要删除其授课元组元组,则在删除其授课信息的同时将其地址和姓名则在删除其授课信息的同时将其地址和姓名信息一并删除掉了信息一并删除掉了.n“删除异常删除异常”是是DBDB结构不合理产生的问题。若关结构不合理产生的问题。若关系中多种信息捆绑在一起,当
9、被删除信息中含有系中多种信息捆绑在一起,当被删除信息中含有关系的主关键字时,因关系要满足实体完整性,关系的主关键字时,因关系要满足实体完整性,整个元组将全部从整个元组将全部从DBDB中被删除,即出现中被删除,即出现“删除异删除异常常”。为解决这几个问题可将关系模式为解决这几个问题可将关系模式 教师教师 分解为两个模式分解为两个模式R,SR,S。这样数据冗余度变小。这样数据冗余度变小,不存在插入、更新和删除异不存在插入、更新和删除异常情况了。常情况了。教师教师姓名姓名 住址住址课程号课程号课程名课程名李林李林78号号C1N1李林李林78号号C2N2李林李林78号号C3N3汪佳汪佳59号号C4N4
10、吴仪吴仪79号号C5N5师帆师帆76号号C6N6教师姓名教师姓名 住址住址李林李林78号号汪佳汪佳59号号吴仪吴仪79号号师帆师帆76号号 关系R教师姓名教师姓名课程号课程号课程名课程名李林李林C1N1李林李林C2N2李林李林C3N3汪佳汪佳C4N4吴仪吴仪C5N5师帆师帆C6N6关系S关系 教师 DB DB设计应考虑查询要求,数据组织应合理设计应考虑查询要求,数据组织应合理n在在DBDB设计时,不仅要考虑到数据自身的结构完设计时,不仅要考虑到数据自身的结构完整性,还要考虑到数据的使用要求。整性,还要考虑到数据的使用要求。n为使数据查询和数据处理高效简洁,特别是对为使数据查询和数据处理高效简洁
11、,特别是对查询实时性要求高、操作频度大的数据,有必查询实时性要求高、操作频度大的数据,有必要通过视图、索引和适量增加数据冗余的方法,要通过视图、索引和适量增加数据冗余的方法,增加增加DBDB的方便性和可用性。的方便性和可用性。2.2.关系规范化可能出现的问题关系规范化可能出现的问题n如果一个关系没有经过规范化,可能会出现数据冗余大、数据更新造如果一个关系没有经过规范化,可能会出现数据冗余大、数据更新造成不一致、数据插入异常和删除异常。成不一致、数据插入异常和删除异常。n例6:学生关系存在的问题:学生关系存在的问题:数据冗余数据冗余(系主任名系主任名)、更新异常更新异常(换系主换系主任任)、插入
12、异常插入异常(系没有招生系主任名不能插入系没有招生系主任名不能插入)、删除异常删除异常(学生毕业学生毕业)。3.3.模式分解是关系规范化的主要方法模式分解是关系规范化的主要方法n对于有问题的关系模式,可通过模式分解的方法使之规范对于有问题的关系模式,可通过模式分解的方法使之规范化。化。n原学生关系(学号,姓名,所在系,系主任姓名,课程名,原学生关系(学号,姓名,所在系,系主任姓名,课程名,成绩)可分解为以下三个关系:成绩)可分解为以下三个关系:学生(学生(学号学号,姓名,所在系),姓名,所在系)系(系(所在系所在系,系主任姓名),系主任姓名)考试(考试(学号,课程名学号,课程名,成绩),成绩)
13、新关系克服了学生关系存在的问题,更加合理和实用。新关系克服了学生关系存在的问题,更加合理和实用。学号学号姓名姓名所在系所在系所在系所在系系主任姓名系主任姓名学号学号课程名课程名成绩成绩4.2 4.2 数据依赖数据依赖 1 1.函数依赖函数依赖2 2.平凡函数依赖与非平凡函数依赖平凡函数依赖与非平凡函数依赖 3 3.完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖 4 4.传递函数依赖传递函数依赖 n在在DBDB中,数据属性之间存在着密切的联系。在中,数据属性之间存在着密切的联系。在DBDB技技术中,把数据之间存在的联系称为术中,把数据之间存在的联系称为“数据依赖数据依赖”。nDBDB中出现
14、的数据异常现象与数据依赖有着紧密的关中出现的数据异常现象与数据依赖有着紧密的关联。在数据依赖中,函数依赖是最基本的一种依赖联。在数据依赖中,函数依赖是最基本的一种依赖形式。形式。n认识和掌握函数依赖知识,对于认识和掌握函数依赖知识,对于DBDB的约束设计和规的约束设计和规范化设计具有重要意义。范化设计具有重要意义。1.1.函数依赖函数依赖n假设假设R(A1,A2,An)R(A1,A2,An)是一个关系模式,是一个关系模式,X X和和Y Y是是A1,A2,AnA1,A2,An的子集的子集,对于关系对于关系R R中的任中的任意一个意一个X X的值,都只有一个的值,都只有一个Y Y值与之对应,则值与
15、之对应,则称称“X“X函数确定函数确定Y”Y”或或“Y“Y函数依赖于函数依赖于X”X”,记,记作作XYXY。n例如:学生(学号,姓名,所在系,课程名,例如:学生(学号,姓名,所在系,课程名,成绩)关系模式中,学号成绩)关系模式中,学号姓名姓名 学号学号所在系所在系 (学号,课程名)(学号,课程名)成绩成绩 n注意注意:X X和和Y Y都是属性组,如果都是属性组,如果XYXY,表示,表示X X中取值确定时,中取值确定时,Y Y中的取值惟一确定,即中的取值惟一确定,即X X决决定定Y Y或或Y Y函数依赖于函数依赖于X X,X X是决定因素。是决定因素。n函数依赖类似于数学中的单值函数,函数的函数
16、依赖类似于数学中的单值函数,函数的自变量确定时,应变量的值惟一确定。反映自变量确定时,应变量的值惟一确定。反映了关系模式中属性间的决定关系,体现了数了关系模式中属性间的决定关系,体现了数据间的相互关系。据间的相互关系。例例7 7:学生(学号,姓名,性别,年龄,班级号):学生(学号,姓名,性别,年龄,班级号)存在以下的函数依赖:存在以下的函数依赖:学号学号姓名姓名 学号学号性别性别 学号学号年龄年龄 学号学号班级号班级号说明:说明:函数依赖不是指关系模式函数依赖不是指关系模式R R的某个或某些关系的某个或某些关系实例满足的约束条件,而是指实例满足的约束条件,而是指R R的所有关系实的所有关系实例
17、均要满足的约束条件。例均要满足的约束条件。函数依赖是函数依赖是RDBRDB用以表示数据语义的机制。人用以表示数据语义的机制。人们只能根据数据的语义来确定函数依赖。们只能根据数据的语义来确定函数依赖。例:“姓名姓名年龄年龄”这个函数依赖只有在没有相这个函数依赖只有在没有相同姓名人的条件下成立。若有相同姓名的人,同姓名人的条件下成立。若有相同姓名的人,则则“年龄年龄”就不再函数依赖于就不再函数依赖于“姓名姓名”了。了。2.2.平凡函数依赖与非平凡函数依赖平凡函数依赖与非平凡函数依赖n在关系模式在关系模式R(U)R(U)中,对于中,对于U U的子集的子集X X和和Y Y,如果,如果XYXY,但但Y
18、XY X,则称,则称XYXY是非平凡函数依赖。若是非平凡函数依赖。若Y XY X,则称,则称XYXY为平凡函数依赖。为平凡函数依赖。n例如:学号例如:学号姓名姓名 (学号学号,姓名姓名)姓名姓名n对于任一关系模式,平凡函数依赖都是必然成立的,对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义,因此若不特别声明,我们总是讨它不反映新的语义,因此若不特别声明,我们总是讨论非平凡函数依赖。论非平凡函数依赖。3.3.完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖完全函数依赖:完全函数依赖:n在关系模式在关系模式R(U)R(U)中,如果中,如果XYXY,并且对于,并且对于X X的任何一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据库 RDB 规范化 设计 理论
限制150内