关系的规范化(数据库原理与应用).ppt_第1页
关系的规范化(数据库原理与应用).ppt_第2页
关系的规范化(数据库原理与应用).ppt_第3页
关系的规范化(数据库原理与应用).ppt_第4页
关系的规范化(数据库原理与应用).ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

,第五章 关系的规范化,教学内容 理解关系规范化的必要性 掌握函数依赖的有关概念 掌握1NF,2NF,3NF,BCNF和4NF的定义 掌握关系模式的分解方法 教学重点 关系模式的分解方法 教学难点 关系模式的范式,关系规范化,一个工资报表的实例,关系规范化,按照工资报表设计一个表,设计一个关系模式 R(工程号,工程名称,职工号,姓名,职务,小时工资率,工时),关系规范化,典型问题 数据冗余:如果一个职工参与多个工程项目,那么这个职工的职工号,姓名,职务和小时工资率就要重复几次存储。 操作异常 修改异常:一个职工参与了多个工程项目,如果其职务发生变化,就必须修改多个元组,否则就会产生数据不一致 插入异常:一个新来的职工尚未参与任何工程项目,那么要将其职工号,姓名,职务和小时工资率存储到关系中时,在工程号和工程名称属性上就没有值(空值) 删除异常:如果一个职工只参与一个工程项目,要取消其任务时,将同时删除其职工号,姓名,职务和小时工资信息,关系规范化,改进后的关系模式,工程(工程号,工程名称),职工(职工号,姓名,职务,小时工资率),报酬(工程号,职工号,工时),关系规范化,关系规范化是从微观角度研究关系模式中属性与属性之间的函数依赖性,判断关系模式中设计的合理性,解决数据库设计的优化问题 规范化是通过一组不同级别的范式判定关系规范化的程度,确认产生数据异常的原因,并通过关系模式的分解方法,消除数据异常 规范化设计理论主要包括三方面内容:数据依赖,范式和模式设计方法,函数依赖,在数据依赖中,函数依赖(Functional Dependency)是最基本、最重要的一种依赖 定义:设有关系模式R(U),U是属性集合,X和Y是U的子集,对于R(U)的任意一个可能的关系r,如果r中不存在两个元组t和s,使得tX=sX而tYsY,则称属性集X函数决定属性集Y,或称属性集Y函数依赖属性集X,记为XY,函数依赖,例5.1:学生关系模式为学生(学号,姓名,性别,系名称,系地址),学生关系的FD集为: FD= 学号姓名, 学号性别, 学号系名称, 学号系地址 系名称系地址,也可记为: 学号姓名,性别,系名称,系地址 系名称系地址,函数依赖,函数依赖是关系模式R上属性之间需要满足的约束条件,属于语义范畴的概念,只能根据语义来确定 若XY且YX,则记为XY 例:设有关系模式R(A,B,C,D),在R的关系中,属性值之间存在以下联系:A值与B值有一对多联系,C值与D值有一对一联系,试根据这些规则写出R的FD集 A值与B值有一对多联系:BA C值与D值有一对一联系:CD和DC,或CD,函数依赖与主码的联系,实际上,FD是主码概念的推广,是属性之间所发生的联系 设关系模式R的属性集是U,X是U的一个子集 如果XU在R上成立,则称X是R的一个超码 如果XU在R上成立,但对于X的任一真子集X1都有X1U不成立,则称X是R的一个候选码,函数依赖图,学号 姓名 性别 系名称 系地址,主码与非主属性之间的函数依赖,其它属性之间的函数依赖,如果A是关系模式R中候选码的属性,则称A是R的主属性,否则,称A是R的非主属性之间的函数依赖,平凡函数依赖与非平凡函数依赖,在关系模式R(U)中,对于U的子集X和Y,如果XY,且YX,则称XY是平凡函数依赖 在关系模式R(U)中,对于U的子集X和Y,如果XY,且YX,则称XY是非平凡函数依赖 对于任意关系模式,平凡函数依赖都必然成立,完全函数依赖,在关系模式R(U)中,对于U的子集X和Y,如果XY,并且对于X的任何真子集X,都不存在XY,则称Y完全函数依赖于X,否则称Y部分函数依赖于X 例5.2:已知关系模式成绩(学号,姓名,课程号,课程名称,学时,分数),其FD集为: 学号姓名 课程号课程名称,学时 学号,课程号分数 学号,课程号姓名 学号,课程号课程名称,学时,f,f,f,p,p,学号 姓名 课程号 课程名称 学时 分数,传递函数依赖,在关系模式R(U)中,对于U的子集X、Y和Z,如果XY,YZ,且YX,ZY,不存在YX,则称Z传递函数依赖于X 例5.3:已知关系模式SDP(学号,姓名,系名称,系地址),其FD集为: 学号姓名,系名称,系地址 系名称系地址,学号 姓名 系名称 系地址,关系模式的范式,衡量关系模式好坏的标准就是模式的范式(Normal Forms) 范式的种类与数据依赖有着直接联系 基于FD的范式:1NF,2NF,3NF,BCNF 基于多值依赖的范式:4NF 一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫做规范化,第一范式,定义:在关系模式R的每个关系r中,如果每个属性值都是不可再分的原子值,则称R为第一范式的模式,即R1NF 1NF是关系模式应具备的最基本条件,满足1NF的关系称为规范化的关系,否则称为非规范化的关系 满足1NF的关系中所有非主属性都依赖于码,第一范式,将非规范化关系转换成1NF:P131 工资(工程号,工程名称,职工号,姓名,职务,小时工资率,工时),第一范式,FD集 工程号工程名称 职工号姓名,职务,小时工资率 工程号,职工号工程名称,姓名,职务,小时工资率,工时,第一范式,分析 满足1NF的关系中可能存在大量数据冗余,将导致数据异常(修改、插入、删除)和数据不一致性 产生上述问题的原因为关系中存在部分函数依赖,第二范式,定义:如果关系模式R1NF,且每个非主属性完全函数依赖于候选码,则称R为第二范式的模式,即R2NF 算法:将关系模式R分解成2NF模式集 设有关系模式R(U),主码是W,R上还存在FD XZ,其中Z是非主属性,XW,则WZ就是一个局部函数依赖,此时应把R分解成两个模式 R1(X,Z):主码是X R2(Y):其中Y=U-Z,主码仍是W,外码是X(参考R1) 如果R1和R2还不是2NF,则重复上述过程,直到数据库模式中每一个关系模式都是2NF为止,第二范式,将1NF转换成2NF:P133 工资(工程号,工程名称,职工号,姓名,职务,小时工资率,工时)1NF 工程(工程号,工程名称)2NF 职工(职工号,姓名,职务,小时工资率)2NF 报酬(工程号,职工号,工时)2NF,第二范式,第二范式的关系可能还会存在数据冗余现象,可能引起修改异常、插入异常和删除异常,工程师,65,造成上述数据异常的原因在于存在传递函数依赖,第三范式,定义:如果关系模式R1NF,且每个非主属性都不传递函数依赖于候选码,则称R为第三范式的模式,即R3NF 定理:如果R是3NF模式,那么R也是2NF 算法:将关系模式R分解成3NF模式集 设有关系模式R(U),主码是W,R上还存在FD XZ,其中Z是非主属性,ZX且X不是候选码,则WZ就是一个传递函数依赖,此时应把R分解成两个模式 R1(X,Z):主码是X R2(Y):其中Y=U-Z,主码仍是W,外码是X(参考R1) 如果R1和R2还不是3NF,则重复上述过程,直到数据库模式中每一个关系模式都是3NF为止,第三范式,将1NF转换成3NF 工资(工程号,工程名称,职工号,姓名,职务,小时工资率,工时)1NF 先转换成2NF 工程(工程号,工程名称)2NF 职工(职工号,姓名,职务,小时工资率)2NF 报酬(工程号,职工号,工时)2NF 再将不属于3NF的关系模式转换成3NF 级别(职务,小时工资率)3NF 职工(职工号,姓名,职务)3NF,3NF,3NF,第三范式,在绝大多数情况下,一个数据库的所有关系都满足3NF,就基本达到数据库设计的目标 在实际应用中,有时为了系统的或其它需要,可能会保留一定的数据冗余,但一定要估计到数据冗余可能产生的后果,权衡利弊 级别(职务代码,职务,小时工资率) 职工(职工号,姓名,职务代码),BC范式,一个汽车公司的零件配送例子 每个配送中心有多名职工,且每名职工只能在一个中心工作 每个配送中心有多种零件,且每种零件在任意配送中心都能买到 每个配送中心的职工按照零件的分类实施管理,在一个配送中心内部,一个职工管理着多种零件,而每一种零件只能由一个职工管理,BC范式,公司零件汇总表,配送(配送中心,零件号,职工号,存货数量,存货状态),候选码,主属性:配送中心,零件号,职工号,BC范式,配送关系的函数依赖图,配送中心 零件号 职工号 存货数量 存货状态,配送关系3NF,主属性对候选码的传递依赖,定义:如果关系模式R1NF,且每个属性都不传递函数依赖于候选码,则称R为BC范式的模式,即RBCNF,BC范式,算法:将关系模式R分解成BCNF模式集 设R(U)BCNF,则R上一定存在非平凡函数依赖XZ,其中X不包含码。此时应把R分解成两个模式: R1(X,Z),主码为X R2(Y),Y=U-Z,主码与R相同,外码是X(参考R1) 如果R1和R2还不是BCNF,则重复上述过程,直到数据库模式中每一个关系模式都是BCNF为止 将配送关系转换成BCNF 职工(职工号,配送中心) 零件(职工号,零件号,存货数量,存货状态),规范化与数据库设计,E-R模型方法主要从宏观角度解决一个企业内部所有数据需求和数据联系的设计问题 当将E-R模型转换成关系数据模型后,为进一步提高数据库应用系统的性能,还应该根据应用需要适当地进行优化 规范化方法则是从微观角度研究某个关系模式的性质,但并不是规范化程度越高的关系就越优,一般规范到3NF即可,规范化与数据库设计,零件配送的E-R图,配送中心,职工,零件,聘用,1,n,配送,m,n,管理,m,n,冗余联系,关系模型低效的主要是连接运算引起的,当查询经常涉及到两个或多个关系模式的属性时,可以考虑将这几个关系合并成一个关系。,多值依赖,定义:在关系R中有属性A、B和C,若对于A的一个给定值,存在B的一组值与其对应,而B的这一组值又不以任何方式与C的任何值相关,则称B多值依赖于A(或A决定B的多个值),记为AB 例:教师(教工号,课程名称,学术团体),教工号课程名称,教工号学术团体,3NF,BCNF,问题:插入异常、删除异常、更新异常,第四范式,定义:如果关系RBCNF

温馨提示

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

评论

0/150

提交评论