第4章_关系规范化基础_第1页
第4章_关系规范化基础_第2页
第4章_关系规范化基础_第3页
第4章_关系规范化基础_第4页
第4章_关系规范化基础_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、返回返回1 第第4 4章章 关系规范化基础关系规范化基础返回返回2 S(学号学号S#,姓名姓名SN,所在系所在系SD,年龄年龄SA) C(课程号课程号C#,课程名课程名CN,先修课号先修课号PC#) SC(S#,C#,成绩成绩G) 检索学生的所有情况检索学生的所有情况 检索年龄大于等检索年龄大于等20岁的学生姓名岁的学生姓名 检索先修课号为检索先修课号为C2的课程号的课程号 检索课程号检索课程号C1的成绩为的成绩为A的所有学生姓名的所有学生姓名 检索检索S1修读的所有课程名及先修课号修读的所有课程名及先修课号1. 检索年龄为检索年龄为23的学生所修课程名的学生所修课程名返回返回3提提 问问什么

2、是选择、投影运算?什么是选择、投影运算?什么是并、交、差运算?什么是并、交、差运算?连接运算分几种?连接运算分几种?等值连接与自然连接区别?等值连接与自然连接区别?返回返回4自然连接一定是等值连接,但等值连接自然连接一定是等值连接,但等值连接不一定是自然连接,因为自然连接要求不一定是自然连接,因为自然连接要求相等的分量必须是公共属性,而等值连相等的分量必须是公共属性,而等值连接要求相等的分量不一定是公共属性接要求相等的分量不一定是公共属性等值连接不把重复属性去掉,而自然连等值连接不把重复属性去掉,而自然连接要把重复属性去掉接要把重复属性去掉返回返回5目目 录录4.1 4.1 数据依赖数据依赖4

3、.2 4.2 关系规范化关系规范化返回返回6 实体间的联系有两类实体间的联系有两类v 一类是实体与实体之间的联系v 另一类是实体内部各属性间的联系 定义属性值间的相互关连,这就是数据依赖,定义属性值间的相互关连,这就是数据依赖, 是语义的体现。是语义的体现。 数据依赖共有三种数据依赖共有三种v 函数依赖(Functional Dependency,简称FD)v 多值依赖(Multivalued Dependency,简称MVD)v 连接依赖(Join Dependency,简称JD) 4.1 函数依赖函数依赖返回返回7 1. 函数依赖的定义函数依赖的定义 函数依赖:在关系函数依赖:在关系R中,

4、中,X、 Y为为R的两个属性的两个属性或属性组,如果对于或属性组,如果对于R的所有关系的所有关系r都存在:都存在: 对对于于X的每一个具体值,的每一个具体值,Y都只有一个具体值与之都只有一个具体值与之对应对应,则则称属性称属性Y函数依赖于属性函数依赖于属性X。记作。记作XY。 简单表述:如果知道简单表述:如果知道X的值的值,就可以获得就可以获得Y的值的值 R的一切关系都要满足定义中的限定的一切关系都要满足定义中的限定4.1.1 函数依赖函数依赖返回返回8学学 号号姓姓 名名专业名专业名性别性别出生时间出生时间总学分总学分001101王林王林计算机计算机男男1980-02-1050001102程

5、明程明计算机计算机男男1981-02-0150001103王燕王燕计算机计算机女女1979-10-0650001104韦严平韦严平计算机计算机男男1980-08-2650001106李方方李方方计算机计算机男男1980-11-2050例例4-1 学生情况表学生情况表学生情况(学号学生情况(学号#,姓名,性别,出生时间,总学分),姓名,性别,出生时间,总学分)学号学号姓名姓名学号学号专业名专业名学号学号性别性别学号学号总学分总学分返回返回92. 函数依赖与属性间的联系类型的关系函数依赖与属性间的联系类型的关系 关系模式中,如果属性关系模式中,如果属性X与与Y有有1:1联系时,则存在函联系时,则存

6、在函数依赖数依赖X Y。v 例如,当学生没有重名时,SNO SN; 如果属性如果属性X与与Y有有m:1的联系时,则只存在函数依赖的联系时,则只存在函数依赖XY。v 例如,SNO与AGE,DEPT之间均为m:1联系,所以有SNOAGE ,SNODEPT; 如果属性如果属性X与与Y有有m:n的联系时,则的联系时,则X与与Y之间不存在任之间不存在任何函数依赖关系。何函数依赖关系。4.1.1 函数依赖函数依赖返回返回101、非平凡函数依赖和平凡函数依赖、非平凡函数依赖和平凡函数依赖 设关系模式设关系模式R(U), X、 Y U:如果如果XY, 且且Y X(子集),(子集), 则称则称XY为为平凡的函数

7、依赖平凡的函数依赖。如果如果XY, 且且Y不是不是X的子集,的子集, 则称则称XY为为非平凡的函数依赖非平凡的函数依赖。例:在学生课程(例:在学生课程(学生号学生号,课程号课程号,成绩)关,成绩)关系中,若存在函数依赖为:系中,若存在函数依赖为: (学生号,课程号)(学生号,课程号)成绩;(学生号,课程号)成绩;(学生号,课程号) 课程号;课程号;4.1.2几种特定的函数依赖几种特定的函数依赖返回返回112、 完全函数依赖和部分函数依赖完全函数依赖和部分函数依赖 设关系模式设关系模式R(U), X, YU: 如果如果XYXY, 并且对于并且对于X X的任何一个真子集的任何一个真子集Z Z, Z

8、YZY都不成立,都不成立, 则则称称Y完全函数依赖于完全函数依赖于X。 若若XY, 但对于但对于X的某一个真子集的某一个真子集Z, 有有ZY成立,成立, 则则称称Y部分函数依赖于部分函数依赖于X。 例例: 在关系在关系SC(Sno, Cno, Grade)中,中,Sno, Cno是主码是主码由于:由于:Sno Grade不成立,不成立,Cno Grade也不成立也不成立因此:因此:Grade 完全函数依赖于完全函数依赖于(Sno, Cno) ;4.1.2几种特定的函数依赖几种特定的函数依赖返回返回123、传递函数依赖、传递函数依赖设关系模式设关系模式R(U), X U, Y U, Z U。 如

9、果如果XY, YZ成立,成立, 但但YX不成立,不成立, 且且Z-X、 Z-Y和和Y-X均不空,均不空, 则称则称XZ为传递函为传递函数依赖。数依赖。 例如:例如: 关系模式关系模式R=A, B, C, D, 其上的函数其上的函数依赖集依赖集F=AB, BC, AC, ABD, 则则AC为传递函数依赖。为传递函数依赖。 4.1.2几种特定的函数依赖几种特定的函数依赖返回返回13设设K为关系模式为关系模式R(U)中的属性或属性集合。)中的属性或属性集合。若若KU,则,则K称为称为R的一个的一个候选码候选码(Candidate Key)。若关系模式若关系模式R有多个候选码,则选定其中一个有多个候选

10、码,则选定其中一个作作为主码(为主码(Primary Key)。关系模式关系模式R中属性或属性组中属性或属性组X并非并非R的码,但的码,但X是另一个关系模式的码,则称是另一个关系模式的码,则称X是是R的的外部码外部码(Foreign Key),也称为外码。,也称为外码。4.1.3 码的函数依赖表示码的函数依赖表示返回返回14提提 问问什么是函数依赖、非平凡函数依赖、完全函数依赖?什么是主属性、非主属性?返回返回15设有一描述学校的数据库:设有一描述学校的数据库:学生的学号(学生的学号(Sno)、所在系()、所在系(Sdept)、系主任姓)、系主任姓名(名(Mname)、课程名()、课程名(Cn

11、ame)、成绩()、成绩(Grade)学生信息表(学生信息表(Sno, Sdept, Mname, Cname, Grade )语义:一个系有若干学生,语义:一个系有若干学生, 一个学生只属于一个系;一个学生只属于一个系; 一个系只有一名主任;一个系只有一名主任; 一个学生可以选修多门课程,一个学生可以选修多门课程, 每门课程有若干学生选修;每门课程有若干学生选修; 每个学生所学的每门课每个学生所学的每门课程都有一个成绩。程都有一个成绩。4.2 关系规范化关系规范化返回返回16 关系模式学生信息表中存在的问题关系模式学生信息表中存在的问题数据冗余(太大浪费大量的存储空间)。数据冗余(太大浪费大

12、量的存储空间)。v 例:每一个系主任的姓名重复出现更新异常更新异常(数据冗余数据冗余 ,更新数据时,维护数据完整性代,更新数据时,维护数据完整性代价大价大)v 例:某系更换系主任后,系统必须修改与该系学生有关的每一个元组插入异常(该插的数据插不进去)插入异常(该插的数据插不进去) v 例,如果一个系刚成立,尚无学生,我们就无法把这个系及其系主任的信息存入数据库。删除异常(不该删除的数据不得不删)删除异常(不该删除的数据不得不删)v 例,如果某个系的学生全部毕业了, 我们在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。4.2 关系规范化关系规范化返回返回17“好好”的模式:不会发生插

13、入异常、删除异常、的模式:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。更新异常,数据冗余应尽可能少。原因:由存在于模式中的某些数据依赖引起的原因:由存在于模式中的某些数据依赖引起的解决方法:通过解决方法:通过分解关系模式分解关系模式来消除其中不合来消除其中不合适的数据依赖。适的数据依赖。关系模式规范化的目的关系模式规范化的目的v解决问题v基本思想是消除数据依赖中的不合适部分,使各关系模式达到某种程度的分离,使一个关系描述一个概念、一个实体或实体间的一种联系。4.2 关系规范化关系规范化返回返回18所谓关系模式的分解,就是对原有关系在不同所谓关系模式的分解,就是对原有关系在不同的属

14、性上进行的属性上进行投影投影,从而将原有关系分解为两,从而将原有关系分解为两个或两个以上的含有较少属性的多个关系个或两个以上的含有较少属性的多个关系关系模式经分解后,应与原来的关系模式等价,关系模式经分解后,应与原来的关系模式等价,即两者对数据的使用者来说应该是等价的。即即两者对数据的使用者来说应该是等价的。即对分解前后的关系作相同内容的查询,应产生对分解前后的关系作相同内容的查询,应产生相同的结果,这是对模式分解的基本要求。相同的结果,这是对模式分解的基本要求。关系模式分解关系模式分解返回返回19关系模式分解的标准关系模式分解的标准三种模式分解的等价定义 分解具有无损连接性 分解要保持函数依

15、赖 分解既要保持函数依赖,又要具有无损连接性返回返回20 关系数据库中的关系必须满足一定的规范化要求,对于关系数据库中的关系必须满足一定的规范化要求,对于不同的规范化程度可用范式来衡量。不同的规范化程度可用范式来衡量。 范式(范式(Normal Form)是符合某一种级别的关系模式的是符合某一种级别的关系模式的集合集合 第一范式第一范式(1NF)(1NF) 第二范式第二范式(2NF)(2NF) 第三范式第三范式(3NF)(3NF) BC BC范式范式(BCNF)(BCNF) 第四范式第四范式(4NF)(4NF) 第五范式第五范式(5NF)(5NF)4.2 关系规范化关系规范化返回返回21各种范

16、式之间存在联系:各种范式之间存在联系:1NF2NF3NFBCNF 4NF5NF通常把某一关系模式通常把某一关系模式R为第为第n范式简记为范式简记为RnNF。在这些范式中,最重要的是在这些范式中,最重要的是3NF和和BCNF,它,它们是进行规范化的主要目标们是进行规范化的主要目标一个低一级范式的关系模式,通过模式分解可一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,以转换为若干个高一级范式的关系模式的集合,这个过程称为规范化。这个过程称为规范化。通常实际情况下,规范化到通常实际情况下,规范化到3NF就可以了。就可以了。返回返回221、第一范式(、第一范式(1NF

17、) 定义:设定义:设R是一个关系模式。是一个关系模式。 如果如果R的每个属的每个属性的值域都是不可分的简单数据项(即是原子)性的值域都是不可分的简单数据项(即是原子)的集合,的集合, 则称这个关系模式属于第一范式则称这个关系模式属于第一范式, 简简记作记作R1NF。 1NF是规范化最低的范式,它要求无重复记录;是规范化最低的范式,它要求无重复记录;字段不可分解。字段不可分解。在任何一个关系数据库系统中,在任何一个关系数据库系统中, 关系至少应该关系至少应该是第一范式。是第一范式。 不满足第一范式的数据库模式不不满足第一范式的数据库模式不能称为关系数据库。能称为关系数据库。 第一范式不能排除数据

18、冗余和异常情况的发生。第一范式不能排除数据冗余和异常情况的发生。4.2.2 常用的三种范式常用的三种范式返回返回23例如:下表描述的是职工情况。例如:下表描述的是职工情况。 职工情况表职工情况表 职工号职工号姓名姓名工资工资基本工资基本工资 职务工资职务工资 工龄工资工龄工资20017李岚李岚8903003020013王晓江王晓江90030040职工号职工号姓名姓名基本工资基本工资 职务工资职务工资 工龄工资工龄工资20017李岚李岚8903003020013王晓江王晓江90030040第一范式(第一范式(1NF) 返回返回24第一范式(第一范式(1NF) 例如:学生选课情况表如下表所示:例如

19、:学生选课情况表如下表所示: 学生选课表学生选课表 姓名姓名课程课程学期学期张三张三高数高数 普物普物 英语英语1王五王五离散数学离散数学 程序程序设计设计2姓名姓名课程课程学期学期张三张三高数高数 1王五王五离散数学离散数学 2张三张三普物普物 1张三张三英语英语1王五王五程序设计程序设计2返回返回25如果关系模式如果关系模式R是第一范式,且每个非主属性都是第一范式,且每个非主属性都完全依赖于码完全依赖于码 ,则称,则称R为满足第二范式的模式,为满足第二范式的模式,记为:记为:R2NF模式。模式。v包含在任何候选关键字中的各个属性称为主属性包含在任何候选关键字中的各个属性称为主属性v不包含在

20、任何候选码中的属性称为非主属性不包含在任何候选码中的属性称为非主属性R(学号(学号#,姓名,出生日期,成绩)存在下列,姓名,出生日期,成绩)存在下列函数依赖关系:函数依赖关系:v学号学号姓名姓名 学号学号性别性别 学号学号出生日期出生日期 学号学号成绩成绩v每个非主属性都完全依赖于码每个非主属性都完全依赖于码 ,所以该关系,所以该关系R2NF第二范式(第二范式(2NF) 返回返回26 主关键字是属性的组合,这样的关系模式可能主关键字是属性的组合,这样的关系模式可能不是第二范式。不是第二范式。关系关系S(学号学号,姓名,性别,姓名,性别,课程课程,学分),存,学分),存在下列函数依赖关系:在下列

21、函数依赖关系:v学号姓名,学号性别 ,学号课程, (课程、学号)学分v非主属性部分依赖于码 ,故关系S不属于2NF。对上述关系模式进行分解,分解为两个关系:vS1(学号,姓名,性别);S2(学号,课程,学分) S12NF;S22NF第二范式(第二范式(2NF) 返回返回27(1)如果R不满足1NF条件,先对其分解,使其满足1NF。(2)R符合1NF条件但不符合2NF条件时,分解R使其满足2NF。(3)R符合2NF条件但不符合3NF条件时,分解R使其满足3NF。关系的分解关系的分解返回返回28关系职工信息关系职工信息P(职工号职工号,姓名,职称,姓名,职称,项目项目号号,项目名称,项目排名),项

22、目名称,项目排名)v主码为(职工号,项目号),存在函数依赖如下:v(职工号,项目号) 项目名称;职工号姓名;(职工号,项目号) 项目排名;职工号职称;项目号项目名称。v由于非主属性部分依赖于码 ,故关系P不属于2NF。对上述关系模式进行分解,分解为三个关系:v职工信息表(职工号,姓名,职称)项目排名表(职工号,项目号,项目排名)项目表(项目号,项目名称)第二范式(第二范式(2NF) 返回返回29如果关系模式如果关系模式R是第二范式,且没有一个非主是第二范式,且没有一个非主属性是传递函数依赖于码属性是传递函数依赖于码 ,则称,则称R为满足第三为满足第三范式的模式,记为:范式的模式,记为:R3NF

23、模式。模式。关系关系ST(学号学号,楼号,收费);其中包含的函,楼号,收费);其中包含的函数依赖关系有:数依赖关系有:学号学号楼号楼号 楼号楼号收费收费 则:学号则:学号收费收费对上述关系模式进行分解,分解为两个关系:对上述关系模式进行分解,分解为两个关系:st1(学号,楼号);(学号,楼号); st2(楼号,收费)(楼号,收费)第三范式(第三范式(3NF) 返回返回30推论推论1: 如果关系模式如果关系模式R1NF,且它的每一个且它的每一个非主属性既不部分依赖、非主属性既不部分依赖、 也不传递依赖于码也不传递依赖于码 ,则则R3NF。 推论推论2: 不存在非主属性的关系模式一定为不存在非主属

24、性的关系模式一定为3NF。 第三范式(第三范式(3NF) 返回返回31 关系模式关系模式R1NF,对任何非平凡的函数依赖,对任何非平凡的函数依赖XY,X均包含码,则均包含码,则RBCNF。BCNF是从是从1NF直接定义而成的,可以证明,直接定义而成的,可以证明,如果如果RBCNF,则,则R3NF。BCNF的关系模式都具有如下的关系模式都具有如下3个性质。个性质。(1)所有非主属性都完全函数依赖于每个候选码。所有非主属性都完全函数依赖于每个候选码。(2)所有主属性都完全函数依赖于每个不包含它的所有主属性都完全函数依赖于每个不包含它的候选码。候选码。(3)没有任何属性完全函数依赖于非码的任何一组没有任何属性完全函数依赖于非码的任何一组属性。属性。BC范式(范式(BCNF)返回返回32 如果关系模式如果关系模式RBCNF,由定义可知,由定义可知,R中不存在任中不存在任何属性传递函数依赖于或部分依赖于任何候选码,所何属性传递函数依赖于或部分依赖于任何候选码,所以必定有以必定有R3NF。但是,如果。但是,如果R3NF,R未必属于未必属于BCNF。 3NF和和BCNF是以函数依赖为基础的关系模式规范化程是以函数依赖为基础的关系

温馨提示

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

评论

0/150

提交评论