版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库原理与应用,第五章 关系数据理论,问 题,数据库工具如何使用?,如何组织好数据?,何为“好”的数据库?标准是什么?,规范化,规范化理论认为:关系数据库中的每一个关系都要满足一定的规范。 研究的是:如何将一个不好的关系模型转化为一个好的关系模型的理论。,本章要点,1、关系规范化理论研究背景,2、数据依赖和键/码,3、规范化(Normalization)理论(本章重点) 1NF、2NF、3NF、BCNF等范式 模式分解 关系模式规范化的必要性及方法途径,关系模型建立在严格的数据理论基础上,并可向别的数据模型转换,因此常以关系模型为背景来讨论这个问题,问题的根源,规范程度 低高,规范化的思想是
2、: 通过创建某一关系的规范化准则,既可以方便数据库中数据的处理,又可以给程序设计带来方便; 逐步消除数据依赖关系中不合适的部分,使相互依赖的数据达到有效的分离。,问题的提出,一、概念回顾 二、关系模式的形式化定义 三、什么是数据依赖 四、数据依赖对关系模式影响,关系数据库逻辑设计 针对具体问题,如何构造一个更适合于它的数据模式,即如何更好地设计数据的逻辑结构? 数据库逻辑设计的工具关系数据库的规范化理论,一、概念回顾,关系:描述实体,属性,实体间的联系 从形式上看,它是一张二维表,是所涉及属性的笛卡尔积的一个子集。,关系模式:用来定义关系,关系数据库:基于关系模型的数据库,利用关系来描述现实世
3、界。,二、关系模式的形式化定义,关系模式由五部分组成,即它是一个五元组: R(U, D, DOM, F) R: 关系名 U: 组成该关系的属性名集合 D: 属性组U中属性所来自的域 DOM: 属性(U)向域(D)的映象集合 F: 属性间数据的依赖关系集合,简化为一个三元组: R(U, F) 当且仅当U上的一个关系r满足F时,r称为关系模式 R(U, F)的一个关系,三、什么是数据依赖,一个关系内部属性与属性之间的约束关系 现实世界属性间相互联系的抽象 数据内在的性质 语义的体现,四、数据依赖对关系模式的影响,例1建立一个描述学校教务的数据库,以下是客观存在的: 一个系有若干学生,但一个学生只属
4、于一个系;一个系只有一名负责人;一个学生可以选修多门课程,每门课程有若干学生选修;每个学生学习每一门课程有一个成绩,单一的关系模式 : Student U Sno, Sdept, Mname, Cno, Grade ,建立一个描述学校教务的数据库: 学生的学号(Sno)、所在系(Sdept) 系主任姓名(Mname)、课程号(Cno) 成绩(Grade),属性组U上的一组函数依赖F: F Sno Sdept, Sdept Mname, (Sno, Cno) Grade ,Sno,Cno,Sdept,Mname,Grade,该模式存在什么问题?怎么改善这个模式?,1. 数据冗余太大 2. 更新异
5、常(Update Anomalies) 3. 插入异常(Insertion Anomalies) 4. 删除异常(Deletion Anomalies),结论: Student关系模式不是一个好的模式。 “好”的模式: 不会发生插入异常、删除异常、更新异常, 数据冗余应尽可能少,返回,原因:由存在于模式中的某些数据依赖引起的,解决方法:通过分解关系模式来消除其中不合适的数据依赖,分解关系模式,把这个单一模式分成3个关系模式: S(Sno,Sdept,Sno Sdept); SC(Sno,Cno,Grade,(Sno,Cno) Grade); DEPT(Sdept,Mname,Sdept Mna
6、me),单一的关系模式 : Student U Sno, Sdept, Mname, Cno, Grade ,6.2 规范化,规范化理论目的: 讨论一个关系属性间不同的依赖情况(数据依赖)。 改造关系模式,通过分解关系模式来消除其中不合适 的数据依赖,以解决插入异常、删除异常、更新异常和 数据冗余问题。,两种重要的数据依赖: 函数依赖(Functional Dependency,FD) 多值依赖(Multivalued Dependency,MVD),1) 元组的每个分量必须是不可分的数据项。 2) 数据库中的数据冗余应尽可能少。 3) 关系数据库不能因为数据更新操作而引起数据不一致问题。 4
7、) 当执行数据插入操作时,数据库中的数据不能产生插入异常现象。 5) 数据库中的数据不能在执行删除操作时产生删除异常问题。,关系模式应满足的基本要求,6.2.1 函数依赖,函数依赖,返回,平凡函数依赖与非平凡函数依赖,完全函数依赖与部分函数依赖,传递函数依赖,一、函数依赖,定义6.1 设R(U)是一个属性集U上的关系模式,X和Y是 U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作XY。,说明: 1. 所有关系实例均要满足 2. 语义范畴的概念 3. 数据库设计者可以对现实世界
8、作强制的规定,函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。,函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。 例如“姓名年龄”这个函数依赖只有在不允许有同名人的条件下成立,对函数依赖的说明,换句话说:任何时候若某一关系中的两个元组中的X属性组的值相等,则元组中对应的属性组Y的值也相等,类似于函数概念,Y = f(X) 需要指出的是:关系R中,如果属性组X是一个候选码或码,则属性组Y一定函数依赖于X(这与候选码的定义一致) 事实上:如果关系R上有函数依赖XY,而属性X不是一个候选码,则R中可能存在一些数据冗余 例如:R(Sno
9、, Sdept, MN, Cname, Grade)中有函数依赖Sdept-MN,而Sdept并不是候选码,表中数据有大量冗余出现,二、平凡函数依赖与非平凡函数依赖,例:在关系SC(Sno, Cno, Grade)中, 非平凡函数依赖: (Sno, Cno) Grade 平凡函数依赖: (Sno, Cno) Sno (Sno, Cno) Cno,术语和记号 ,但 ,则称 是非平凡的函数依赖 ,但 ,则称 是平凡的函数依赖 若 ,则X叫做决定因素 若 , ,则记作 若Y不函数依赖于X,则记作,三、完全函数依赖与部分函数依赖,6.2.2 码,外部码,定义6.5 关系模式 R 中属性或属性组X 并非
10、 R的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码(Foreign key)也称外码,如在SC(Sno,Cno,Grade)中,Sno不是码,但Sno是关系模式S(Sno,Sdept,Sage)的码,则Sno是关系模式SC的外部码,o主码与外部码一起提供了表示关系间联系的手段,6.2.3 范式,范式(Normal Form)是指规范化的关系模式,是符合某一种级别的关系模式的集合。 关系数据库中的关系必须满足一定的要求,满足不同程度要求的为不同范式。,定义,6.2.3 范式,各种范式之间存在联系:,某一关系模式R为第n范式,可简记为RnNF。,一个低一级范式的关系模式,通过模式分解
11、可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化 。,6.2.4 2NF,1NF的定义 如果一个关系模式R的所有属性都是不可分的基本数据项,则R1NF,第一范式是对关系模式的最起码的要求。 不满足第一范式的数据库模式不能称为关系数据库,但是满足第一范式的关系模式并不一定是一个好 的关系模式,例4 关系模式 S-L-C(Sno, Sdept, Sloc, Cno, Grade) Sloc为学生住处,假设每个系的学生住在同一个地方。,函数依赖包括:,Sno,Cno,Grade,Sdept,Sloc,Sno Sdept,Sno Sloc,Sdept Sloc,显然是一范式,属于第几范式
12、?,S-L-C不是一个好的关系模式,(1) 插入异常 (2) 删除异常 (3) 数据冗余度大 (4) 修改复杂,原因 Sdept、 Sloc部分函数依赖于码。 解决方法 S-L-C分解为两个关系模式,以消除这些部分函数依赖 S-C(Sno, Cno, Grade) S-L(Sno, Sdept, Sloc),关系模式S-L-C是不是2NF?,2NF的定义 定义6.6 若R1NF,且每一个非主属性完全函数依赖于码,则R2NF。,一定程度上减轻原1NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题,并不能完全消除关系模式中的各种异常情况和数据冗余。,函数依赖图:,关系模式SC的码为(
13、Sno,Cno) 关系模式S-L的码为Sno 这样非主属性对码都是完全函数依赖,分解说明,一个1NF,但非2NF的关系总是可以被分解成为一组2NF的关系 规范化过程中通过一组投影运算消除部分依赖,建议作如下分解(第一步分解) 已知关系R(A,B,C,D), (A,B)为主码,即(A,B)-C, (A,B)-D,且A-D, 则将R分解成为两个投影: R1(A,D), A为主码 R2(A,B,C), (A,B)为主码,A为外码 这样,R可以通过R1和R2的自然连接运算得以恢复,即满足分解的无损连接性,6.2.5 3NF,定义:若R2NF, 且它的任何一个非主属性都不传递依赖于任何候选码,则R 3N
14、F 说明:即不存在非主属性部分依赖和传递依赖于码的关系为3NF 推论:不存在非主属性的模式为3NF 上例中得到的关系模式是2NF SC(SNO, CNO, G); S-L(SNO, SDEPT, SLOC);,S-L中存在传递传递依赖,故该模式不是3NF,可能问题? 如何改造?,不是3NF可能存在的问题,插入异常 只有当知道某学生的系时才能插入其住处信息 删除异常 当删除某系对应的所有学生时,有关该系学生住处的信息也被删除掉了 修改异常 一个系及其住处信息重复出现,只更新一个元组中对应的系及其住处时可能导致数据不一致 冗余 同系学生的住处重复存储,解决方法,继续模式分解 如上例中的模式可分解为
15、3NF SC(SNO, CNO, G); (SNO, CNO) G S-D(SNO, SDEPT); SNO SDEPT D-L(SDEPT, SLOC); SDEPT SLOC,SNO,SDEPT,SLOC,SDEPT,分解说明,一个2NF,但非3NF的关系总是可以被分解成为一组3NF的关系 规范化过程中通过一组投影运算消除传递依赖,建议作如下分解(第二步分解) 已知关系R(A,B,C), A为主码(AB, AC),且BC, 则将R分解成为两个投影: R1(B,C), B为主码 R2(A,B), A为主码,B为外码 这样,R可以通过R1和R2的自然连接运算得以恢复,分解满足分解的无损连接性,
16、3NF的进一步说明,在不考虑主属性对码的部分依赖和传递依赖时,可以认为是实现了彻底的分离,已消除了插入异常,删除异常,修改异常,冗余等问题 但是,当关系中存在两个或更多的候选码时,尤其是有几个候选码、且候选码内的属性又有部分复合或交迭时,仅仅满足3NF仍有问题,需要进一步分解成BCNF,6.2.6 BCNF,(Boyce/Codd Normal Form) 定义:若每一个决定因素都包含(或是)码,则R BCNF 说明 BCNF中所有的依赖都是包含码的依赖 一个BCNF范式必是3NF,但一个3NF范式不一定是BCNF (3NF中可能存在主属性对码的部分和传递依赖) BCNF是在函数依赖范畴内对关
17、系模式的彻底分离,已消除了插入和删除异常 通常认为BCNF是扩充的第三范式,一般数据库设计达到BCNF已足够,若RBCNF 所有非主属性对每一个码都是完全函数依赖 所有的主属性对每一个不包含它的码,也是完全函数依赖 没有任何属性完全函数依赖于非码的任何一组属性,实例,例1: SJP(学生S, 课程J, 名次P) (S,J)和(J,P) 均为候选码 函数依赖为(S,J)P, (J,P) S 其中,两个决定因素均包含(是)候选码 可见SJP BCNF 例2: STJ(学生S, 教师T, 课程J) (S,T)和(S,J) 均为候选码 函数依赖为(S,J) T, (S,T) J, T J 其中,T为决
18、定因素,但不包含任何一个候选码 可见STJ 3NF, 但STJ BCNF,例子,前例是3NF, 也是BCNF SC(SNO, CNO, G); (SNO, CNO) G S-D(SNO, SDEPT); SNO SDEPT D-L(SDEPT, SLOC); SDEPT SLOC,SNO,SDEPT,SLOC,SDEPT,STJ中的函数依赖,解决方法:将STJ分解为二个关系模式: ST(S,T) BCNF, TJ(T,J) BCNF,没有任何属性对码的部分函数依赖和传递函数依赖,3NF与BCNF的关系,R BCNF R 3NF 如果R3NF,且R只有一个候选码 R BCNF R 3NF,规范化小结,关系数据库的规范化理论是数据库逻辑设计的工具 目的:尽量消除插入、删除异常,修改复杂,数据冗余 基本思想:逐步消除数据依赖中不合适的部分 实质:概念的单一化,关系模式规范化的基本步骤 1NF 消除非主属性对码的部分函数依赖 消除决定属性 2NF 集非码的非平 消除非主属性对码的传递函数依赖 凡函数依赖 3NF 消除主属性对码的部分和传递函数依赖 BCNF 消除非平凡且非函数依赖的多值依赖 4NF,不能说
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智研咨询重磅发布:2026年中国沥青行业供需态势、市场现状及发展前景预测报告
- 智研咨询发布-2026年中国呋喃二甲酸(FDCA)行业现状、发展环境及投资前景分析报告
- 初中2025名著“人物分析”说课稿
- -统编版2026-2027学年一年级上册语文语文园地六-教学课件
- 2026年街舞舞步说课稿数学
- 糖尿病医联体一体化转诊与血糖控制效果
- 小学语文主题班会说课稿2025
- Chapter3 Whats the matter说课稿2025年小学英语5A香港朗文版
- 小学网络安全说课稿
- 2026年教研责任区读书分享会组织与实施计划
- 2025年中国铁路兰州局集团有限公司招聘高校毕业生考试真题
- 2026年铅酸电池行业分析报告及未来发展趋势报告
- 2026年重庆联合产权交易所集团招工笔试参考题库含答案解析详解
- (正式版)JBT 14449-2024 起重机械焊接工艺评定
- 电子版-铁路货物运价规则
- 客源国概况-墨西哥课件
- 机电一体化专业毕业论文-
- 最新高中物理中常用的三角函数数学模型(强烈推荐)
- 多层厂房框架结构设计-混凝土结构课程设计
- 排架支撑结构搭设方案
- T∕CFA 020101021-2021 预应力铸铁锚垫板通用技术规范
评论
0/150
提交评论