第六章 关系模式的规范化理论
数据库关系模式的规范化设计理论
4.3 关系模式旳规范化
第二范式(2NF)
定义4.13
若R(U)∈1NF,且每一种非主属性完全函数依赖于 某个候选键,称R(U)为第二范式,即R(U)∈2NF。
例
有关系模式R(U)=(Sno,Sdept,Sloc,Cno, Grade),候选键为(Sno,Cno)
Sno Grade
Cno
Sdept Sloc
4.2 关系模式旳函数依赖
再论关系与关系模式
关系模式是相对稳定旳、静态旳,而关系却是 动态变化旳,不稳定旳
关系旳每一次变化成果,都是关系模式相应旳 一种新旳详细关系。
小写字母r表达关系模式R(U)旳相应旳详细关 系
4.2 关系模式旳函数依赖
函数依赖旳一般概念
定义4.1
设R(U)是属性集U={A1, A2, …, An}上旳关系模式, X和Y是U旳子集。若对R(U)旳任一详细关系r中旳 任意两个元组t1和t2,只要t1[X]=t2[X]就有 t1[Y]=t2[Y],则称“X函数拟定Y”或“Y函数依赖 于X” (Founctional Dependence),记作X→Y。
多值依赖
平凡多值依赖
对于关系模式R(U),设X,Y是U旳子集,若 X→→Y,其中Z=U-X-Y=∅,则称X →→Y为平凡多 值依赖,不然成为非平凡多值依赖。
4.3 关系模式旳规范化
第四章
关系模式旳规范化设计理论
学习目的
掌握规范化理论旳有关概念和措施 掌握函数依赖定义及其推理规则 掌握多种范式及其相互关系 掌握关系模式分解中存在旳问题、分解旳
无损连接性和保持函数依赖性等
4.1 问题旳提出
关系模式可能存在旳异常
学号
课程号
任课教师 任课教师所在系
最新数据库第6章-关系范式规范化理论ppt课件
6. 关系数据理论
6.1 问题的提出 6.2 规范化
6.1 问题的提出
关系数据库的逻辑设计
针对具体问题,如何构造一个适合于它的数 据模式 数据库逻辑设计的工具──关系数据库的规 范化理论
二、关系模式的形式化定义
一个关系模式由五部分组成,即是一个五元组: R(U, D, DOM, F)
解决方法如下:
☺把关系模式 S <U, F>分解为3个关系模式:
S(Sno,Sdept,Sno Sdept); SG(Sno,Cname,Grade,(Sno,Cname)Grade);
Dept(Sdept,Mname,SdeptMname)
6.2 规范化
规范化理论 正是用来改造关系模式,通过分解 关系模式来消除其中不合适的数据依赖,以解 决插入异常、删除异常,和数据冗余问题。
1. 数据冗余太大 ➢ 在每个学生元组中,系主任姓名重复出现浪费大量存储
空间
☺另外,如果某个系的系主任换人了,就要更改每个学生
的元组,维护代价很大
2. 插入异常
☺如果一个系刚成立尚无学生(没有Sno),就无法把这个
系及其系主任的信息存入数据库
3. 删除异常
☺如果某个系的学生全部毕业了,Sno将被全部删除,同时
规范化:通过分析关系(关系模式)中存在的 弱点,将该关系分解为若干个高一级的关系。
范式:关系规范化的程度称为范式,1NF, 2NF,3NF,BCNF
6.2.1 函数依赖
一、函数依赖 二、平凡函数依赖与非平凡函数依赖 三、完全函数依赖与部分函数依赖 四、传递函数依赖
一、函数依赖
定义6.1 设R(U)是一个属性集U上的关系模式 ,X和Y是U的子集。 若对于R(U)的任意一个可 能的关系r,r中不可能存在两个元组在X上的 属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作 X→Y。
6.第六章关系的规范化
第六章关系的规范化设计第六章关系的规范化设计第一节问题的提出第二节函数依赖第三节范式第四节数据依赖的公理系统第一节关系模式设计问题的提出如何设计一个合理的关系数据库模式?c3c2c1c3c1cno 77OS丁惠s283DS 丁惠s290DB 丁惠s287OS 李立s178DB 李立s1gradecname sname sno 泛关系模式泛关系:泛关系模式中存在的问题c3c2c1c3c1cno 77OS丁惠s283DS 丁惠s290DB 丁惠s287OS 李立s178DB 李立s1gradecname sname sno反映现实世界操作性能例:设计教学管理关系数据库模型sc问题分析Sno Cno Tno Sname Grade Cname Tname S1C1T1赵民90OS彭S1C2T2赵民90DS杨S1C3T3赵民85C++刘S1C4T4赵民87DB张S2C1T4李军90OS张S3C1T4陈江75OS张S3C2T2陈江70DS杨S3C4T4陈江56DB张S4C1T1魏致90OS彭S4C2T2魏致85DS杨S5C1T1乔远95OS彭S5C4T4乔远80DB张关系SCT产生问题的原因?解:sct(sno, cno, tno, sname, grade, cname, tname)属性间约束关系(即数据间的依赖关系)太强解一:(sno,(cno,tno,(tno,cno, tname (sno,cno,解二:(sno,(cno,(tno, tname (sno,cno,(tno,cno)分解关系解决问题的方法:例sc解(sno, cno, tno, sname, grade, cname, tnameS n o S n a m e S 1赵民S 2李军S 3陈江S 4魏致S 5乔远StudentsCno Cname C1OS C2DS C3C++C4DBCoursesSnoCno Grade S1C190S1C290S1C385S1C487S2C190S3C175S3C270S3C456S4C190S4C285S5C195S5C480scTno Tname T1 彭 T2 杨 T3 刘 T4 张TeachersTeachCno Tno C1T1C1T4C2T2C3T3C4T4本章要解决的主要问题理想第二节:函数依赖数据依赖函数依赖(1)、函数依赖定义X 函数决定Y Y函数依赖于XX Y例:只能根据语义来确定函数依赖性的存在与否。
关系模式的规范化
因此,说某个关系属于某个范式是指该关系模式 满足某种确定条件,具有一定的性质。通过分解 把属于较低范式的关系模式转换为几个属于高级 范式的关系模式的集合,这一过程称为规范化。 其目的就是要设计“好”的关系,使关系尽量减 少数据冗余和更新异常等情况。
数据库原理与应用
数据库原理与应用
关系模式的规范化 关系数据库设计理论主要用于指导据库的逻
辑设计,确定关系模式的划分,每个关系模式所 包含的属性,从而使得由一组关系模型组成的关 系模式作为一个整体,既能客观地描述各种实体, 又能准确地反映实体间的联系,还能如实地体现 出实体内部属性之间的相互依存与制约。
关系的键码函数决定该关系的所有其他属性, 由于键码能唯一地确定一个元组,所以,也可以 说关系的键码函数决定该关系的所有属性。换句 话说,一个关系的所有属性都函数依赖于该关系 的键码。然而,当我们进一步分析时,就会发现 不同的属性在关系模式中所处的地位和扮演的角
相互依赖,这时Z对X之间就不是传递依赖,而是 直接依赖了。直接依赖常用 ↔ 表示。
关系模式中非主属性对键码的部分依赖和传递 依赖是产生数据冗余和更新异常的主要根源。在 有的关系模式中,还存在主属性对键码的部分依 赖和传递依赖,这时产生冗余和异常的另一个主 要根源。总而言之:从函数依赖的角度来看,关 系模式中存在各属性对键码的部分依赖和传递依 赖是产生数据冗余和更新异常的根源。 1.3 关系模式的规范化
色是不同的。为了能较好的说明问题,我们把键 码所在的属性称为主属性,而把键码属性以外的 属性称为非主属性。比如,对于关系模式R(S#, SNAME,C#,GRADE,CNAME,TNAME, TAGE)来说,S#和C#是主属性,而另外几个属 性为非主属性。再深入分析,又会发现不同的属 性对键码函数依赖的性质和程度是有差别的。有 的属于直接依赖,有的属于间接依赖(通常称为 传递依赖)。当键码由多个属性组成时,有的属 性函数依赖于整个键码属性集,而有的属性只函 数依赖于键码属性集中的一部分。 1.1 完全依赖与部分依赖
第6章-关系数据库规范化理论
第6章关系数据库规范化理论一个关系数据库模式由一组关系模式组成,一个关系模式由一组属性名组成。
关系数据库设计,就是如何把已给定的相互关联的一组属性名分组,并把每一组属性名组成关系的问题。
然而,属性的分组不是唯一的,不同的分组对应着不同的数据库应用系统,它们的效率往往相差很远。
为了使数据库设计合理可靠,简单实用,长期以来,形成了关系数据库设计的理论——规范化理论。
6.1 关系规范化的作用规范化,就是用形式更为简洁,结构更加规范的关系模式取代原有关系模式的过程。
如果将两个或两个以上实体的数据存放在一个表里,就会出现下列三个问题:➢数据冗余度大➢插入异常➢删除异常所谓数据冗余,就是相同数据在数据库中多次重复存放的现象。
数据冗余不仅会浪费存储空间,而且可能造成数据的不一致性。
插入异常是指,当在不规范的数据表中插入数据时,由于实体完整性约束要求主码不能为空的限制,而使有用数据无法插入的情况。
删除异常是指,当不规范的数据表中某条需要删除的元组中包含有一部分有用数据时,就会出现删除困难。
(以P98工资表为例)解决上述三个问题的方法,就是将不规范的关系分解成为多个关系,使得每个关系中只包含一个实体的数据。
(讲例子解)当然,改进后的关系模式也存在另一问题,当查询职工工资时需要将两个关系连接后方能查询,而关系连接的代价也是很大的。
那么,什么样的关系需要分解?分解关系模式的理论依据又是什么?分解完后能否完全消除上述三个问题?回答这些问题需要理论指导。
下面,将加以讨论:6.2 函数依赖6.2.1属性间关系实体间的联系有两类:一类是实体与实体之间联系;另一类是实体内部各属性间的联系。
数据库建模一章中讨论的是前一类,在这里我们将学习第二类。
和第一类一样,实体内部各属性间的联系也分为1:1、1:n和m:n三类:例:职工(职工号,姓名,身份证号码,职称,部门)1、一对一关系(1:1)设X、Y是关系R的两个属性(集)。
如果对于X中的任一具体值,Y中至多有一个值与之对应,反之,对于Y中的任一具体值,X中也至多有一个值与之对应,则称X、Y两属性间是一对一关系。
关系模式规范化设计理论
4.4.3 无损连接的测试(9)
⑵ 反复检查F中的函数依赖,修改表格元素: ① 根据AC,对以上表4.17(a)进行处理,由 于第1,2,5行在A分量(列)上的值为a1(相等),在 C分量(列)上的值不相等,所以将属性C列的 第1,2,5行上b13, b23, b53改为同一个符号b13,结 果见表4.17(b)
4.4.3 无损连接的测试(2)
表4.15 关系r及其投影
AB C
a1 b1 c1 a2 b1 c2 a7 b3 c3 a8 b4 c4 a9 b5 c5
AB
a1 b1 a2 b1 a7 b3 a8 b4 a9 b5
BC
b1 c1 b1 c2 b3 c3 b4 c4 b5 c5
关系r
关系r1
关系r2
4.4.3 无损连接的测试(5)
计算方法和步骤: ⑴构造一张k行n列的表格,每列对应一个属性
Aj(j=1, 2, …, n),每行对应一个模式Ri(Ui) 的属 性集合(i=1, 2, …, k)。如果Aj在Ui中,那么在表 格的第i行第j列处境上符号aj,否则填上符号bij, ⑵ 反复检查F的每一个函数依赖,并修改表格中的 元素,直到表格不能修改为止。其方法如下:
4.4.3 无损连接的测试(14)
定理4.13 如果R(U)的分解为={Rl(U1), R2(U2)}, 其 中 U=U1U2,F 为 R(U) 所 满 足 的函数依赖集合,则分解是无损连接的充 分 必 要 条 件 为 ( U1U2)(U1U2) 或 者 (U1U2)(U2U1)成立。 此定理表明,当模式R分解成两个关系模 式Rl(U1)和R2(U2)时,如果其公共属性能函 数决定U1或U2中的其它属性,这样的分解 就是无损连接的。
关系模式规范化
关系模式规范化关系模式规范化是指对数据库关系模式(如表)采用规范化的方法,使其更加结构化和可维护。
它的目的是减少存储重复的数据,提高效率,简化查询,以及提高安全性。
它包括一系列的操作,包括表拆分、冗余删除、粗粒度拆分和标准化。
二、规范化的优势1.少冗余数据:规范化会消除重复数据,减少存储空间,减少用于存储数据的磁盘空间。
2.高查询性能:规范化可以帮助查询更快找到所需要的数据,提高查询性能,提高查询效率。
3.高安全性:规范化可以减少存储数据的安全风险。
4.善数据结构:规范化会把表组织成有结构的形式,以便更容易访问和管理。
5.加数据一致性:规范化可以提高数据一致性,减少数据冗余,改善数据的准确性和可靠性。
三、如何规范化规范化的方法有很多,下面介绍一下几个常用的方法。
1.拆分:表拆分是把一个表拆分成多个小表,以减少冗余数据和简化查询,而无需减少存储空间。
2.余删除:冗余删除是指把不需要的重复数据从数据库中删除,以提高查询性能。
3.粒度拆分:粗粒度拆分是把一个表拆分成几个表,以提高存储空间利用率。
4.准化:标准化是把不同的表中的数据转化为一致的格式,以提高数据一致性。
四、关系模式规范化的注意事项1.范化不能改变数据库表结构,因此会影响SQL查询性能。
2.范化不能改变表中存储的数据,因此应该充分考虑是否需要规范化,以避免数据损坏。
3.规范化过程中,必须慎重考虑所有相关的查询,以避免查询效率的降低。
4.规范化完成后,应该定期对数据库进行检查,确保其正确性和可靠性。
五、结论关系模式规范化技术是一项重要的数据库技术,它可以帮助提高数据库的性能,简化查询,提高安全性,增加数据一致性,改善数据结构和数据存储空间。
然而,规范化也有一定的技术挑战和注意事项,如果不小心处理,很容易导致数据损坏和查询效率的降低。
因此,有必要加以详细的调查,确保在应用规范化技术之前,充分了解有关技术和实施方法,以避免技术上的失误。
《关系模式的规范化》课件
1 减少数据Байду номын сангаас余
规范化可以减少数据存储 空间的占用,提高数据库 的性能和响应速度。
2 提高数据更新和修改
的效率
规范化可以减少数据更新 和修改时的复杂性,降低 数据不一致性的风险。
3 增强数据的可扩展性
规范化可以提高数据的可 扩展性,使得数据库能够 适应未来的需求变化。
规范化关系模式的方案
第一范式
1. 每个属性都是原子的 2. 每个属性只能包含一个值 3. 每个属性在一个关系中
结论和总结
通过规范化关系模式,我们可以提高数据库的性能、一致性和可维护性。规 范化是有效管理和组织数据库的重要工具。
只能出现一次
第二范式
1. 满足第一范式 2. 所有非主键属性完全依
赖于主键
第三范式
1. 满足第二范式 2. 不存在传递依赖
规范化关系模式的实施步骤
1
分析数据库
评估数据库的结构和关系,确定需要进行规范化的部分。
2
分解关系
将复杂的关系拆分为多个简单的关系,使每个关系都满足规范化的要求。
3
建立关系
建立新的关系和外键来表示原始关系之间的联系。
《关系模式的规范化》 PPT课件
这是一份关于关系模式规范化的PPT课件。通过本课件,我将向大家介绍背景、 定义、重要性、好处、实施步骤等相关内容,帮助大家更好地理解和应用关 系模式。
背景介绍
在数据库设计和管理中,关系模式是一种用于描述和组织数据的方法。了解背景可以帮助我们更好地理解关系 模式的起源和发展。
什么是关系模式
关系模式是一种用表格形式表示实体、属性和关系的数据结构,它是关系数 据库的基础。关系模式中的实体由表格的行表示,属性由表格的列表示。
第6章关系数据库规范化理论
·包含在任一候选码中的属性,叫做主属性(Prime Attribute);
第6章 关系数据库规范化理论
· 不包含在任何码中的属性称为非主属性 (Nonprime Attribute)或非码属性(Non―key Attribute);
第6章 关系数据库规范化理论
2. 插入与删除异常 无法插入某部分信息或删除掉不应删除的信息称 为插入或删除异常。
例如,9级工资为660元的信息无法插入表。 因为该 表的码是姓名,而目前无职工工资级别为9级,表中不能 插入码为空值的记录。 即在插入一行时,此关系模式强 迫同时增加关于两个实体的数据。 又如,要删除姓名为 C的职工记录时,又将7级工资的信息一起删去了。 即在 删除一行时,删除了关于两个实体的数据。
属性间的联系可分为以下三类: 1. 一对一关系(1∶1) 以职工模式为例: 职工(职工号,姓名,职称,部 门),如果该企业(或单位)中职工无重名,则属性职工 号与姓名之间是1∶1关系。 一个职工号唯一地决定一 个姓名,一个姓名也可决定唯一的职工号。 设X、 Y是关系R的两个属性(集)。 如果对于X 中的任一具体值,Y中至多有一个值与之对应,且反之亦 然,则称X、 Y两属性间是一对一关系。
是唯一的。 对表 6 ― 4、 表 6 ― 5分别进行横向和纵 向展开,可分别转化为如表 6 ― 6、 表 6 ― 7 所示的符 合1NF的关系。
第6章 关系数据库规范化理论
6.1 关系规范化的作用
所谓规范化,就是用形式更为简洁、 结构更加规范 的关系模式取代原有关系的过程。
例 有三个属性的工资表(姓名,级别,工资)关系模 式。 对应此模式建立的表如表 6 ― 1 所示。
第6章 关系规范化理论
电子工业出版社(《数据库基础教程(SQL Server平台)》配套电子教案)
(3) 传递函数依赖
Y 定义6.4 若X→Y,Y→Z, X ,且Y X,则 称Z传递函数依赖(Transitive Functional Dependency)于X。
• 注意:若X不函数依赖于Y,意味着X与Y不是 一一对应的;否则Z就是直接函数依赖于X,而 不是传递依赖于X。
电子工业出版社(《数据库基础教程(SQL Server平台)》配套电子教案)
范式的类别及各类范式之间的关系
1NF 2 NF 3 NF BCNF 4 NF 5 NF
电子工业出版社(《数据库基础教程(SQL Server平台)》配套电子教案)
6.3.1 关系模式和码
定义6.5 如果关系模式R<U,F >的一个或多个属 性A1,A2,…,An的组合满足如下条件,则该 组合为关系模式R的码: (1)这些属性函数决定该关系模式的所有属性, 即U; (2)A1,A2,…,An的任何真子集都不能函数 决定R的所有属性。
电子工业出版社(《数据库基础教程(SQL Server平台)》配套电子教案)
示例
【例】分析关系模式SP(商品编号,商品名称,生产厂家,厂 家地址,单价) ,该模式最高属于第几范式? • 分析:在SP模式中,存在函数依赖:商品编号 → 生产厂家, 生产厂家 → 厂家地址,因此,“厂家地址”对码的依赖是 传递函数依赖。所以,SP不是第三范式的。而该模式中不 存在非主属性对码的部分函数依赖,故SP∈2NF。 • 将SP分解为以下两个模式: SP(商品编号,商品名称,生产厂家,单价) CS(生产厂家,厂家地址) 这两个模式均为第三范式的。
第六章 关系规范化理论
— 关系数据库设计理论基础
关系模式的规范化
关系模式应满足的基本条件
一、元组的每个分量必须是不可分的数据项
关系模式 基本条件
关系数据库特别强调,关系中的属性不能 是组合属性,必须是基本项,并把这一要求规 定为鉴别表格是否为“关系”的标准。
关系模式应满足的基本条件
五、不能出现删除异常
关系模式 基本条件
关系模式设计的不好,会导致同一关系中 出现多种信息混合存储。 多种信息之间的复杂依赖关系是出现删除 异常问题的关键所在。
关系模式应满足的基本条件
六、应考虑查询要求、数据组织应合理
关系模式 基本条件
关系模式设计时,不仅要考虑数据自身的 结构完整性,还要考虑到数据的使用要求。 对于查询实时性要求高的数据库,有必要 通过视图等方式增加数据冗余来增加数据库的 方便性与可用性。
关系模式应满足的基本条件
关系模式 基本条件
二、数据库中的数据冗余应尽可能少 数据冗余是数据库最忌讳的毛病。数据冗 余会使数据库中的数据量巨增,系统负担过重, 并会浪费大量的存储空间。 数据冗余还会导致数据的不完整、增加数 据维护的代价,数据冗余还会造成数据查询和 统计的困难。
关系模式应满足的基本条件
三、不能因为数据更新而引起数据不一致问题
关系模式 基本条件
关系模式设计的不好,会导致不必要的数 据冗余。 当执行数据修改时可能会出现冗余数据被 部分修改,从而导致数据更新异常。
关系模式应满足的基本条件
四、不能出现数据插入异常
关系模式 基本条件
关系模式设计的不好,会导致同一关系中 出现多种信息混合存储。 多种信息之间的复杂依赖关系是导致数据 不能被正确插入的关键所在。
[IT认证]第六章 关系模式的规范化理习题-精品文档
关系模式的规范化理论掌握:函数依赖;关键字定义;关系模式的规范化(1NF-BCNF)。
理解:无损连接分解;Armstrong公理;多值依赖;4NF。
一、填空题1. 从关系规范化理论的角度讲,一个只满足1NF的关系可能存在的四方面问题是:数据冗余度大、修改异常、插入异常和_________。
2. 如果一个满足1NF关系的所有属性合起来组成一个关键字,则该关系最高满足的范式是______(在1NF、2NF、3NF范围内)。
3. 在函数依赖中,平凡的函数依赖根据Armstrong推理规则中的_______________律就可推出。
4. 关键字是__________决定关系的属性全集。
5. 在一个关系模式中,所有关键字中的属性构成一个集合,称为_______;6. 主属性集中的属性称为_____________,非主属性集中的属性称为____________。
7. 两个函数依赖集F和G等价的充分必要条件____________.二、选择题1. 下面关于函数依赖的叙述中,不正确的是( )A. 若X→Y,Y→Z,则X→YZB. 若XY→Z,则X→Z,Y→ZC. 若X→Y,Y→Z,则X→ZD. 若X→Y,Y'包含Y,则X—Y'2. 下面关于函数依赖的叙述中,不正确的是( )A. 若X→Y,X→Z,则X→YZB. 若XY→Z,则X→Z,Y→ZC. 若X→Y,WY→Z,则XW→ZD. 若X→Y,则XZ→YZ3. 设有关系模式R(A,B,C,D)和R上的函数依赖集FD={ A→B,B→C},则R的主码应是A. AB. BC. ADD. CD4. 关系模型中的关系模式至少是()A. 1NFB. 2NFC. 3NFD. BCNF5. 关系模式R中属性全部是主属性,则R的最高范式必定是()A. 2NFB. 3NF C.BCNF D.4NF6. 2NF如何规范为3NF()A. 消除非主属性对码的部分函数依赖B.消除非主属性对码的传递函数依赖C.消除主属性对码的部分和传递函数依赖 D. 消除非平凡且非函数依赖的多值依赖7. 设关系模式R (A,B,C),F是R上成立的FD集,F = {B→C},则分解ρ = {AB,BC}相对于F ()A. 是无损联接,也是保持FD的分解B. 是无损联接,但不保持FD的分解C. 不是无损联接,但保持FD分解D. 既不是无损联接,也不保持FD的分解8. 关系模式R分解成ρ = {R1,…,R k},F是R上的一个FD集,那么R中满足F的每一个关系r,与其投影联接表达式mρ(r)间的关系满足()A. r⊆ mρ(r)B. mρ(r) ⊆ rC. r = mρ(r)D. r≠mρ(r)三、名词释义,简要说明它们满足的FD条件。
关系模式规范化
各种范式之间的关系如图1所示。
图1
各种范式之间的关系
一、第一范式(1NF)
第一范式(First Normal Form)是最基本的规范形式, 之后的每个范式必须都要满足1NF。 定义4:如果关系模式R,其所有的属性均为简单属性, 即每个属性都是不可再分的,则称R属于第一范式,简 称1NF,记作R1NF。 (在前面讨论关系的性质时,我们把满足这个条件的关 系称为规范化关系) 在关系数据库系统中只讨论规范化的关系,凡是非规 范化的关系模式必须化成规范化的关系。 在非规范化的关系中去掉组合项就能化成规范化的关 系。每个规范化的关系都属于1NF,这也是它之所以称 为“第一”的原因。
二、完全函数依赖与部分函数依赖
定义2:设关系模式R(U),U是属性全集,X和Y是U的子集, 如果X→Y,并且对于X的任何一个真子集X′,都有X′ Y, 则称Y对X完全函数依赖(Full Functional Dependency),记 作 X f Y。 如果对X的某个真子集X′,有X′→Y,则称Y对部分函 数依赖(Partial Functional Dependency),记作X Y。
而一个学生只能属于一个系,所以当CARDNO的值确定之后,SNAME、DEPT 的值也随之被唯一的确定了。 这类似于变量之间的单值函数关系。设单值函数Y=F(X),自变量X的值可 以决定一个唯一的函数值Y。在这里,我们说CARDNO函数决定(SNAME, DEPT),或者说(SNAME,DEPT)函数依赖于SNO。
其中:CARDNO表示借书证号号, SNAME表示借书学生姓名,DEPT表 示学生所在的系别,BNO表示图书编号,DATE表示借阅日期。
BORROW(CARDNO,SNAME,DEPT,BNO,DATE) 这个关系模式在使用中会出现什么问题呢? 数据冗余: 对于借书人每次借一本书,其姓名NAME及所在系DEPT 都要重复存放一次,数据的冗余度很大,浪费了存储 空间。 更新异常: 由于数据冗余,如果借书人所在系改变了,有关借书 人的所有元组中的所在系的信息都要修改,这不仅增 加了更新代价,而且存在着潜在的不一致性,有可能 出现一部分数据被修改,而另一部分数据没有被修改。 因此,系统要付出很大的代价来维护数据库的完整性。
关系模型的规范化设计理论
SN表示学生姓名, DEPT表示学生所在系别, CNO表示课程号,
不合理关系模式存在的问题
•根据实际情况,这些数据有以下语义规定 •一个系有若干个学生,一个学生只属于一个系; •一个系只有一名系主任,一个系主任可以同时兼 几个系的系主任; •一个学生可以选修多门功课,每门课程 •可被若干个学生选修; •每个学生学习的课程有一个成绩。
• 一个好的关系模式应该具备四个条件:
– 尽可能少的数据冗余 – 没有插入异常 – 没有删除异常 – 没有更新异常
好关系模式VS.最优关系模式
注意
• 一个好的关系模式并不是在任何情况下都 是最优的,
– 比如查询某个学生选修课程名及所在系的系主 任时,要通过连接,而连接所需的系统开销非 常大
– 因此要以实际设计的目标出发进行设计
关键
• 如何将这些相互关联的关系模式组建成一个适合的关
系模型?
• 规范化理论具有具有指导作用。
关系数据库的设计理论-前言
• 关系数据库规范化理论主要包括三方面的 内容:
• 函数依赖 • 范式(Normal Form) • 模式设计
• 函数依赖起着核心作用,是模式分解和模 式设计的基础,
• 范式是模式分解的标准。
不合理的关系模式存在的问题 ——(3)删除异常。
• 当某系学生全部毕业而未招生时,要删除 全部学生的记录,这时系名、系主任也随 之删除,现实中系仍存在,但数据库中却 无法找到该系的信息。
• 如果某学生不再选修C1课程,本应该只删 去C1,但C1是主关系键的一部分,为保证 实体完整性,必须将整个元组一起删掉, 这样,有关该学生所有的其他信息也随之 丢失。
– (SNO,CNO)属性的组合能唯一标识一个元 组,故(SNO,CNO)是该关系模式的主键。
关系规范化理论
An Introduction to Database System
第六章 关系数据理论
计算机科学与技术系 郑海旭
第六章 关系数据理论
6.1 问题的提出
6.2 规范化
6.4 模式的分解方法简介 6.5 小结
本章解决的问题
针对具体问题,如何构造一个适合于
它的数据模式 (使用的工具─关系数据库的规范化理 论)
模式的分解(续)
例:S-D-L(Sno, Sdept, Sloc) F={ Sno→Sdept,Sdept→Sloc,Sno→Sloc} 分解方法可以有多种: 1. S-D-L分解为三个关系模式 R1(Sno) R2(Sdept) R3(Sloc) 2. SL分解为下面二个关系模式 R1(Sno, Sloc) R2(Sdept, Sloc)
6.3 模式的分解
规范化:把低一级的关系模式分解为若干
个高一级的关系模式的过程。
只有能够保证分解后的关系模式与原关系
模式等价,分解方法才有意义。
关系模式分解的标准
给定R(U,F), 将其分解成 R1(U1,F1), R2(U2,F2), ….Rn(Un,Fn) 三种模式分解等价的定义: ⒈ 分解具有无损连接性 U=U1∞U2 ∞…Un ⒉ 分解要保持函数依赖 F与 ∪Fi等价 ⒊ 分解既要保持函数依赖,又要具有无损连 接性
规范化程度可以有多个不同的级别规范化程度过低的关系不一定能够很好地描述现实世界可能会存在插入异常删除异常修改复杂数据冗余等问题一个低一级范式的关系模式通过模式分解可以转换为若干个高一级范式的关系模式集合这种过程就叫关系模式的规范化1nf1nf2nf2nf3nf3nfbcnfbcnf4nf4nf5nf5nf消除非主属性对码的部分依赖消除非主属性对码的传递依赖消除主属性对码的部分和传递依赖消除多值依赖消除连接依赖消除不合适的数据依赖的各关系模式达到某种程度的分离采用一事一地的模式设计原则让一个关系描述一个概念一个实体或者实体间的一种联系
数据库第六章
五、数据依赖对关系模式旳影响
[例1]建立一种描述学校教务旳数据库:
学生旳学号(Sno)、所在系(Sdept) 系主任姓名(Mname)、课程名(Cname) 成绩(Grade)
单一旳关系模式 : Student <U、F>
U ={ Sno, Sdept, Mname, Cname, Grade }
[例2]
关系模式S(Sno, Sdept, Sage),单个属性Sno是码, SC(Sno,Cno,Grade)中,(Sno,Cno)是码 [例3]
关系模式R(P,W,A) P:演奏者 W:作品 A:听众 一种演奏者能够演奏多种作品 某一作品可被多种演奏者演奏 听众能够欣赏不同演奏者旳不同作品 码为(P,W,A),即All-Key
❖ 函数依赖涉及: (Sno, Cno) F Grade Sno → Sdept (Sno, Cno) P Sdept Sno → Sloc (Sno, Cno) P Sloc Sdept → Sloc
2NF(续)
S-L-C
Sno
Sdept
Grade
Cno
Sloc
❖ S-L-C旳码为(Sno, Cno) ❖ S-L-C满足第一范式。 ❖ 非主属性Sdept和Sloc部分函数依赖于码(Sno, Cno)
例:S-L-C(Sno, Sdept, Sloc, Cno, Grade) ∈1NF S-L-C(Sno, Sdept, Sloc, Cno, Grade) ∈2NF SC(Sno, Cno, Grade) ∈ 2NF S-L(Sno, Sdept, Sloc) ∈ 2NF
2NF(续)
❖ 采用投影分解法将一种1NF旳关系分解为多种2NF旳关系, 能够在一定程度上减轻原1NF关系中存在旳插入异常、删 除异常、数据冗余度大、修改复杂等问题。
关系数据模式的规范化理论
第一范式的原则和规则
第一范式要求数据库表中的每个属性都是原子性的,不可再分解,确保数据的唯一性。
第二范式的原则和规则第二范式要数据库表中的非主键属性必须完全依赖于主键,消除了数据冗 余和更新异常。
第三范式的原则和规则
第三范式要求数据库表中的非主键属性不应相互依赖,消除了数据冗余和传递依赖。
逆范式的概念和应用
关系数据模式的规范化理论
本部分介绍关系数据模式的规范化理论,包括规范化理论的定义和关系数据 库的基本概念。
规范化理论的定义
规范化理论是数据库设计中的基本原则,用于优化数据库结构,提高数据存 储和操作的效率。
关系数据库的基本概念
关系数据库是按照关系模型组织的数据集合,具有集合、表、行和列等基本概念。
逆范式是指在某些情况下,有意将数据冗余存储在数据库中,以提高查询性 能。
规范化理论的优缺点
规范化理论的优点是提高了数据的一致性和完整性,减少了数据冗余和更新异常。缺点是增加了数据库的复杂 性和查询的复杂度。
数据库原理第六章关系数据理论
6.2 规范化
规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依 赖,以解决插入异常、删除异常、更新异常和数据冗余问题。
6.2.1 函数依赖
一、函数依赖 二、平凡函数依赖与非平凡函数依赖 三、完全函数依赖与部分函数依赖 四、传递函数依赖
一、函数依赖
定义6.1 设R(U)是一个属性集U上的关系模式,X和Y
• 主属性与非主属性 • ALL KEY
外部码
定义6.5 关系模式 R 中属性或属性组X 并非 R的码,但 X 是另一个关系模式 的码,则称 X 是R 的外部码(Foreign key)也称外码
• 主码又和外部码一起提供了表示关系间联系 的手段。
6.2.3 范式
• 范式是符合某一种级别的关系模式的集合。 • 关系数据库中的关系必须满足一定的要求。满足
什么是数据依赖(续)
3. 数据依赖的类型
• 函数依赖(Functional Dependency,简记为FD) • 多值依赖(Multivalued Dependency,简记为MVD) • 其他
四、关系模式的简化表示
● 关系模式R(U, D, DOM, F) 简化为一个三元组:
R(U, F)
r r R ● 当且仅当U上的一个关系
注: 如果Y→X, 即X←→Y,则Z直接依赖于X。
例: 在关系Std(Sno, Sdept, Mname)中,有: Sno → Sdept,Sdept → Mname Mname传递函数依赖于Sno
6.2.2 码
定义6.4 设K为关系模式R<U,F>中的属性或属 性组合。若K f U,则K称为R的一个侯选 码(Candidate Key)。若关系模式R有多个 候选码,则选定其中的一个做为主码(Prim ary key)。
第6章规范化理论
第6章规范化理论预习提纲一、准备知识1.为什么要对关系进行规范化?2.什么是关系的规范化?3.如何对关系进行规范化(如何将一个不好的关系规范化为好的)?1)如何判断一个关系模式是好的?2)规范化理论:函数依赖、平凡的函数依赖、非平凡的函数依赖、完全函数依赖、部分函数依赖、传递依赖、候选码、主属性、非主属性、第第1NF、第2NF、第3NF、BCNF3)规范化过程①给出函数依赖②写出候选码③判断达到的NF级别④判断是否存在问题⑤分析存在问题的原因⑥给出解决办法⑦再次判断分解后的关系模式是否解决了问题g4.Armtrong公理系统逻辑蕴含Armtrong公理函数依赖的闭包属性闭包快速求解候选码的方法函数依赖集的等价最小函数依赖集5.关系模式分解分解的等价定义(分解准则)什么是无损连接性?什么是保持函数依赖?如何判断不同的分解准则能达到的规范化级别二、作业练习1.在关系数据库中,从关系规范化的意义看,如果关系R中的非主属性对码有部分函数依赖,那么R至多是()A.1NFB.2NFC.3NFD.BCNF2.设有关系模式R(S,D,M),其函数依赖集:F={S→D,D→M},则关系模式R的规范化程度最高达到()。
A.1NFB.2NFC.3NFD.BCNF3.设有关系模式R(A,B,C,D),其数据依赖集:F={(A,B)→C,C→D},则关系模式R的规范化程度最高达到()。
A.1NFB.2NFC.3NFD.BCNF4.某→Y,当下列哪一条成立时,称为平凡的函数依赖()。
A.某∈YB.Y某C.某∩Y=ΦD.某∩Y≠Φ5.有关系:教学(学号、教工号、课程号)假定每个学生可以选修多门课程,每门课程可以由多名学生来选修,每个老师可以讲授多门课程,每门课程只能由一个老师来讲授,那么该关系的候选码是( )A.(课程号,教工号)B.(学号,课程号)C.(学号,教工号)D.(学号,教工号,课程号)6.在关系模式R(A,B,C,D)中,存在函数依赖关系{A→B,A→C,A→D,(B,C)→A},则候选码是(A或(BC)),关系模式R(A,B,C,D)的规范化程度最高达到(BCNF)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第6章关系模式的规范化理论关系数据库的规范化设计是指面对一个现实问题,如何选择一个比较好的关系模式集合。
规范化设计理论对关系数据库结构的设计起着重要的作用。
关系模型有严格的数学理论基础,因此人们就以关系模型为作为讨论对象,形成了数据库逻辑设计的一个有力工具――关系数据库的规范化理论。
本章内容(1)关系模式的冗余和异常问题。
(2)FD的定义、逻辑蕴涵、闭包、推理规则、与关键码的联系;平凡的FD;属性集的闭包;推理规则的正确性和完备性;FD集的等价;最小依赖集。
(3)无损分解的定义、性质、测试;保持依赖集的分解。
(4)关系模式的范式:1NF,2NF,3NF,BCNF。
分解成2NF、3NF模式集的算法。
(5)MVD、4NF、5NF的定义。
一,关系模式设计中的问题1.什么是好的数据库构建好的,合适的数据库模式,是数据库设计的基本问题a) 体现客观世界的信息b) 无过度的冗余c) 无插入异常d) 无删除异常e) 无更新复杂如书上的S_C_G关系。
假设需要设计一个学生学习情况数据库StuDB。
下面我们以模式S_C_G(Sno,Sname,Dname,Age,Cno,Cname,Score,Pre_cno)为例来说明该模式存在的问题。
下表是其一个实例。
3冗余度大:每选一门课,他本人信息和有关课程信息都要重复一次。
4插入异常:插入一门课,若没学生选修,则不能把该课程插入表中。
5删除异常:如S11号学生的删除,有一门只有他选,会造成课程的丢失。
6更新复杂:更新一个人的信息,则要同时更新很多条记录。
还有更新选修课时也存在这样的情况。
2.异常的原因:数据信赖的约束3.解决方法:数据库设计的规范化:分解,每个相对的独立,依赖关系比较单纯,如分解为3NF 我们采用分解的方法,将上述S_C_G分解成以下三个模式:S(Sno,Sname,age,Dname)C(Cno,Cname,Pre_cno)S_C(Sno,Cno,Score)4.规范化设计理论包括三个内容:i> 数据信赖---- 核心,研究数据之间的联系ii> 范式---- 关系模式的标准iii> 模式设计方法---- 自动化设计的基础二,函数依赖(Functional Dependency,FD)1. 函数依赖的定义:(还有非函数的依赖?,什么是函数?给出一个值能唯一确定另外一个值?映射:一对一,多对一,一对多?)定义:函数依赖是指一个或一组属性可以(唯一)决定其它属性的值。
数学的语言:设有关系模式R(U),其中U={A1,A2,…,A n}是关系的属性全集,X、Y是U的属性子集,设t和u是关系R上的任意两个元组,如果t和u在X的投影t[X]=u[X]推出t[Y]=u[Y],即:t[X]=u[X] => t[Y]=u[Y],则称X 函数决定Y ,或Y 函数依赖于X 。
记为X →Y 。
在上述的关系模式S (Sno ,Sname ,age ,Dname )中,存在以下函数依赖:Sno →age Sno →Dname ...(Sno,Cno )→Score... 2. 几种类型的函数依赖定义6.2(非平凡函数依赖、平凡函数依赖):一个函数依赖X →Y 如果满足Y ⊈X ,则称此函数依赖为非平凡函数依赖,否则称之为平凡函数依赖。
例如X →Φ, X →X , XZ →X 等都是平凡函数依赖。
定义6.3(完全函数依赖、部分函数依赖):设X 、Y 是关系R 的不同属性集,若X →Y (Y 函数依赖于X ),且不存在X’ ⊂X ,使X’→Y ,则称Y 完全函数依赖于X ,记为Y X f−→−;(即不存在真子集仍然是函数依赖关系的函数依赖是完全函数依赖)。
否则则称Y 部分函数依赖于X ,记为Y X p−→−。
例如,在上例关系S 中, Dname f−→−Sno 是完全函数依赖;Dname p −→−Sname)(Sno, 、Dname p−→−age)(Sno, 是部分函数依赖。
在属性Y 与X 之间,除了完全函数依赖和部分函数依赖关系等直接函数依赖,还存在间接函数依赖关系。
如果在关系S 中增加系的电话号码Dtel ,从而有Sno →Dname, Dname →Dtel ,于是Sno →Dtel 。
在这个函数依赖中,Dtel 并不直接依赖于Sno ,是通过中间属性Dname 间接依赖于Sno 。
这就是传递函数依赖。
定义6.4(传递函数依赖):设X 、Y 、Z 是关系模式R (U)中的不同的属性集,如果X →Y ,Y →X ,Y →Z ,则称Z 传递依赖于X 。
否则,称为非传递函数依赖。
举例说明:定义6.5 关键字(Key ,候选键):在关系模式R(U)中,若K ⊆U ,且满足U K f−→−,则称K 为R 的关键字。
一个包含了关键字的属性集合也能够函数决定(但不是完全函数决定,而是部分决定)属性全集,我们把这种包含了关键字的属性集合称为超关键字(Super Key)。
例如,在上例的S (Sno ,Sname ,Dname ,Age )、C (Cno,Cname,Pre_cno )、S_C (Sno ,Cno ,Score )三个关系模式中,存在以下关键字:),,,(Age Dname Sname Sno Sno f−→−)_Pr ,,(con e Cname Cno Cno f−→−score Cno Sno f−→−),(所以,Sno 、Cno 和(Sno ,Cno )分别是关系模式S 、C 和S_C 的关键字 。
),,,(),(Age Dname Sname Sno Sname Sno p−→−),,,(),(Age Dname Sname Sno Dname Sno p−→−所以,(Sno ,Sname)和(Sno ,Dname)都不是关键字,而是超关键字。
3 函数依赖的公理系统 (1) 函数依赖的逻辑蕴涵例如 在上述的传递函数依赖中,由X →Y ,Y →Z ,推导出X →Z ,这可以表示为: {X →Y ,Y →Z }⊨ X →Z 其中: ⊨表示逻辑蕴涵。
一般地,函数依赖的逻辑蕴涵定义如下:定义6.6(逻辑蕴涵):设F 是由关系模式R(U)满足的一个函数依赖集,X →Y 是R 的一个函数依赖,且不包含在F ,如果满足F 中所有函数依赖的任一具体关系r ,也满足X →Y ,则称函数依赖集F 逻辑地蕴涵函数依赖X →Y ,或称X →Y 可从F 推出。
可表示为: F ⊨X →Y例:Sno →Dname, Dname →Dtel, 则: Sno →Dtel F X →Y函数依赖集F 的闭包F+定义6.7:函数依赖集F 所逻辑蕴涵的函数依赖的全体称为为F 的闭包(Closure ),记为F +,即F +={X →Y |F ⊨X →Y }例如,有关系R (X ,Y ,Z ),它的函数依赖集F ={X →Y ,Y →Z },则其闭包F +为:⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→=+YZYZ XYZXYZ XYZXZ XYZXY XYZX Z YZ YZ XYZ YZ XZ YZ XY YZ X Y YZ XZ XYZ XZ XZ XZ XY XZ X YZ XY XYZ XY XZ XY XY XY X YZ Y Z XYZ Z XZ Z XY Z X Z Y Y XYZ Y XZ Y XY Y X ZZ Y Y X XYZ X XZ X XY X X Z Y XYZ XZ XY X Fφφφφφφφφφ(2) Armstrong 公理系统 1)独立推理规则即下面给出的Armstrong 公理的三条推理规则是彼此独立的。
A1:自反律(Reflexivity)如果Y ⊆X ,则X →Y 成立,这是一个平凡函数依赖。
根据A1可以推出X →Ф、U →X 等平凡函数依赖(因为Ф⊆X ⊆U )、XY →X 。
A2:增广律(Augmentation)如果X →Y ,且Z ⊆W ,则XW →YZ 成立。
根据A2可以推出XW →Y 、XZ →YZ 或XW →YW 、X →XY 、XY →X 等。
A3:传递律(Transitivity)如果X →Y 且Y →Z ,则X →Z 成立其他推理规则推论1:合并规则(The Union Rule){X→Y,X→Z}⊨X→YZ推论2:分解规则(The Decomposition Rule)如果X→Y,Z ⊆Y,则X→Z成立; (X→YZ),X→Y,X→Z 推论3:伪传递规则(The Pseudo Transitivity Rule){X→Y,WY→Z}⊨XW→Z证:(1)X→Y⊨X→XY(A2增广律)X→Z⊨XY→YZ(A2增广律)由上可得X→YZ(A3传递律)(2)Z⊆Y⊨Y→Z(A1自反律)X→Y(给定条件)由上可得X→Z(A3传递律)(3)X→Y⊨WX→WY(A2增广律)WY→Z(给定条件)由上可得XW→Z(A3传递律)例6.2:设有关系模式R(A,B,C,D,E)及其上的函数依赖集F={AB→CD,A→B,D→E},求证F必蕴涵A→E。
证明:∵A→B (给定条件)∴A→AB (A2增广律)∵AB→CD (给定条件)∴A→CD (A3传递律)∴A→C,A→D (分解规则)∵D→E (给定条件)∴A→E (A3传递律)证毕。
一个重要定理定理6.1:若Ai(i=1,2,…,n)是关系模式R的属性,则X→(A1,A2,…,An)成立的充分必要条件是X→Ai均成立证明由分解和合并规则容易得到。
推论6.1 X是候选键的充分必要条件是X→每个属性Ai。
例:1. 现有如下关系模式:R(A#,B#,C,D,E) ,R上存在的FD有A#B#→E,B#→C,C→D ,求R的一个候选键。
解:A#B#→E, 得A#B#→A#B#E又B#→C, 得A#B#→A#B#CE又C→D, 得A#B#→A#B#CDE因此A#B#是候选键。
也可以这样做:先由B#→C 出发,得B#→B#CD, 还少一个A#, 再加一个A#即可,得A#B#→A#B#CDE2. 设有关系模式R (A,B,C,D),F是R上成立的FD集,F = {D→A,D→B},试写出关系模式R的候选键,并说明理由。
方法一因为:D→A,D→B (已知)得D→ABD→D,得D→ABD, 但D!→C而CD→C(A1自反律),我们有,CD→ABCD, 即CD→U因此,CD为候选键。
也可以这样做:方法二D→A,D→B (已知)D→D,但D!→C而CD→C(A1自反律),我们有,CD→A, CD→B, CD→C, CD→D, 由合并规则知:CD→ABCD因此,CD为候选键。