第六章 关系模式的规范化理论
数据库关系模式的规范化设计理论

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课件。通过本课件,我将向大家介绍背景、 定义、重要性、好处、实施步骤等相关内容,帮助大家更好地理解和应用关 系模式。
背景介绍
在数据库设计和管理中,关系模式是一种用于描述和组织数据的方法。了解背景可以帮助我们更好地理解关系 模式的起源和发展。
什么是关系模式
关系模式是一种用表格形式表示实体、属性和关系的数据结构,它是关系数 据库的基础。关系模式中的实体由表格的行表示,属性由表格的列表示。
- 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为候选键。