数据库原理与sql

上传人:j****9 文档编号:54289643 上传时间:2018-09-10 格式:PPT 页数:22 大小:178KB
返回 下载 相关 举报
数据库原理与sql_第1页
第1页 / 共22页
数据库原理与sql_第2页
第2页 / 共22页
数据库原理与sql_第3页
第3页 / 共22页
数据库原理与sql_第4页
第4页 / 共22页
数据库原理与sql_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《数据库原理与sql》由会员分享,可在线阅读,更多相关《数据库原理与sql(22页珍藏版)》请在金锄头文库上搜索。

1、数据库原理与SQL Sever2000,第3章 关系数据库理论基础 (第二部分),3.6 关系规范化,建立关系数据库应遵循一定的原则,以保证数据库的稳定、灵活,方便。-关系规范化的问题,1、关键字 关键字:在关系中用来唯一标识一元组的一个或一组属性 关键字不允许为空 可以是一个或多个或者全部属性 候选关键字:在关系中可以用来唯一标志元组的属性或属性组 主关键字:在候选关键字中用来指定做主关键字的属性或属性组 主属性:可作为候选关键字的属性 非主属性:不能作为候选关键字的属性 外部关键字:关系中某个或某组属性并非关键字却是另一个关系的主关键字时,称为外部关键字。,3.6.1 一些重要概念,2、函

2、数依赖 关系规范化是围绕函数依赖进行的。在具体的关系中,函数依赖是刻画关系中各个属性之间相互制约而又相互依赖的关系。其中关键最为重要,它决定了其它的属性值。 由于关键字可能为某个属性也有可能为某组属性,因此各属性对关键字存在着不同的依赖。以下给出函数依赖的严格定义并说明不同的依赖情况。,3.6.1 一些重要概念,函数依赖 设R(U)是属性集U上的关系。X,Y是U的子集。若对于R(U)的任意一个可能的关系r,均有x的一个值对应于y的惟一具体值,称为y单值函数依赖于x,或称X函数决定,记作xy。若进一步,有y x,则x与y相互依赖,记作x y 完全函数依赖 设R(U)是属性集U上的关系。X,y是U

3、的子集,x是x的真子集。若对于R(U)下的任何一个可能的关系,有xy但xy则称y完全函数依赖于x,记作xy 部分函数依赖 若xy且xy,则称y部分依赖于x,记作 xy 只有当x为复合属性组时,才可能有部分信赖情况。,3.6.1 一些重要概念,f,p,传递依赖 在R(U)中,若xy,但y x,若y z,则x z,此称为z传递函数依赖于x,记作xy 例1:假设选课关系(学号,课程号,教师号,学生姓名,成绩,课程名称,教师姓名):SCT(xh,kch,jsh,xsxm,cj,kcmc,jsxm) 它们之间的依赖关系可以表示为: (sno,cno) cname (sno,cno)tnamecno cn

4、ame(假设所有课程均不同名)cno tname (sno,cno)grade,3.6.1 一些重要概念,t,p,例2(参见P53例3-9)设车间考核职工完成生产定额关系为:W(日期,工号,姓名 ,工种,定额,超额,车间,车间主任) 它们之间的依赖关系可以表示为: (日期,工号) 超额 (日期,工号)姓名 (日期,工号) 工种(日期,工号) 车间 工号工种,工种定额,所以工号定额 工号车间,车间车间主任,所以工号车间主任,3.6.1 一些重要概念,p,f,p,p,t,t,3.6.2范式与规范化,1、范式 关系模式满足的确定约束条件称为范式,根据满足约束条件的级别不同,范式由低到高分为1NF,2

5、NF,3NF,BCNF等。不同的级别范式性质不同。满足最低要求的叫第一范式,简称lNF。在第一范式中满足进一步要求的为第二范式,其余以此类推。 R为第几范式就可以写成RxNF。 对于各种范式之间的联系有BCNF 3NF 2NF lNF成立。 一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化,3.6.2范式与规范化,2、范式的判定条件与规范化 1)1NF:关系R的所有属性都是不可再分的数据项,则该关系属于第一范式,记作R 1NF. 例1:工资(工号,姓名,工资(基本工资,年绩津贴,煤电补贴) 该关系不满足1NF的关系称为非规范化关系。转化方法为

6、: 工资(工号,姓名,基本工资,津贴,奖金),3.6.2范式与规范化,例2:参见P54的表3-26的非规范化的关系 转化为表3-27的规范化的关系 仅满足1NF,还存在问题,如P53例3-9以下一些记录(参见P55的表3-28),缺点所在: 数据冗余大:如工人基本信息重复出现 修改麻烦:如有人更换工种,则需更改每一条相应的信息。 插入异常:日期和工号不能为NULL,若新工人还没工作,则该工人信息不能插入到表中。 删除异常:若要删除某人的所有工作记录,则此人基本是不存在。,3.6.2范式与规范化,1NF有数据冗余大、修改麻烦、插入异常、删除异常等缺点,主要原因是因为其不够规范化,对W的约束太少。

7、W关系中存在完全、部分、传递三种不同依赖情况(参见P56图3-4)。改进的办法是消除同时存在于一个关系的不同的依赖情况,因此有2NF。,3.6.2范式与规范化,(2)2NF:若关系R 1NF,且它的每一非主属性都完全依赖于关键字,则称R属于第二范式。记为: R 2NF 例3-10对W关系加以分解,使之满足2NF定义 分解:W=W1+W2 W1(日期,工号,超额) W2(工号,姓名 ,工种,定额,车间,车间主任) 分解以后的记录参见P56表3-29,3.6.2范式与规范化,表3-29 W关系分解为W1和W2,3.6.2范式与规范化,但是W2中仍存在数据冗余,如车工的定额,车间的主任都重复存储了。

8、也存在删除异常的问题,如删除103号工人,则“工具”车间信息也会从数据库被删除。其原因在于W2中存在传递依赖关系。因此产生3NF。 (3)3NF:若R 2NF,且它的每一个非主属性都不传递依赖于关键字,则称R属于第三范式。记为R 3NF,3.6.2范式与规范化,例3-11对W2关系分解,消除其中的传递依赖关系,使其满足3NF。 W2关系属性间信赖关系如图所示:W2 W21+W22+W23 其中:W21(工号,姓名,工种,车间),W22(工程,定额)W23(车间,车间主任) 分解后的记录如P57的表3-30表示,分解,3.6.2范式与规范化,表3-30,3.6.2范式与规范化,满足3NF的关系数

9、据库,一般情况下能达到要求,但由于直到3NF为上,仅对关系的非主属性与关键字间的依赖作了限制,而对主属性与主关键字间没有给出任何限制,若主属性间也出现了类似非主属性的部分依赖或传递依赖关系,那么也会使关系存在一定的问题,因此提出了BCNF。 3、BCNF 1)引例 SCT(学生,课程,教师) 假定SCT中一个学生可选 多门课程,一个教师只讲 授一门课程,但同一门课 程有几个教师担任。,3.6.2范式与规范化,分析求关键字: SCT中候选关键字:(学生,课程)或(学生,教师) 也即“学生”、“课程”、“教师”均为主属性 由于3NF中考虑的是主属性对非主属性的依赖,因此SCT 3NF。毛病所在:

10、存在信息冗余:如教师、课程两列存在很多的重复信息,如陈明教英语,若有100个学生,则会重复存入100次。 插入异常:若某个教师未开课,则此教师信息无法存入数据库 删除异常。若学生退学或毕业,可能会将课程信息与教师信息删除。 可见,满足3NF的关系,在这种情况下还存在一定的弊端。,3.6.2范式与规范化,(a)中:(学生、课程)教师,教师课程 (b)中: (学生、教师) 课程,教师课程 对于有两个候选关键字,特别是两个关键字间存在着互相覆盖的属性,关系的性能可能会变坏。需通过BCNF来分解关系,(a)(学生、课程)作关键字,(b)(学生、教师)作关键字,3.6.2范式与规范化,2)BCNF定义

11、一种:设R是一个规范化的关系,若R的每一个决定因素项都是候选关键字,则R属于BCNF关系,记R BCNF 另一种:如果关系模式R的所有属性(包括主属性和非主属性)都不传递依赖于R的任何候选关键字,那么称关系R是属于BCNF的。记为RBCNF。 判定是否为BCNF的步骤: 确定候选关键字 确定决定因素 根据定义,确定每个决定因素是否均为候选关键字 说明:BCNF必定属于3NF,但3NF不一定属于BCNF,3.6.2范式与规范化,例 判定SCT是否属于BCNF,若SCT BCNF,则对其进行分解。 解:判定的三个步骤: 找候选关键字: (学生、课程)和 (学生、教师) 找决定因素:除上面的候选关键字外,“教师”也为决定因素 因决定因素多于候选关键字,所以SCT BCNF 分解:SCT ST+TC ST (学生、教师) BCNF TC(学生、课程) BCNF,3.6.3关系分解的原则,分解的原则: 分解必须无损,即分解后不应丢失信息 分解后的关系要相互独立(避免对一个关系的修改,影响到另一个关系) 分解关系的要点 规范化过程是对关系逐步分解的过程 规范化过程如按如图所示的步骤:,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号