内容正文:
关系数据库规范化理论
第4章
目录
01
关系规范化
的引入
02
函数依赖
03
函数依赖的
公理系统
04
关系模式的
规范化
05
多值依赖
与4NF
06
关系模式分解
及规范化步骤
本章主要内容
通过第2、3章的学习,学生可以完成数据库关系模型的设计及实现。每种关系模型对应一种关系模式,关系模式的好坏直接决定数据的完整性、准确性、一致性和操作性。然而,是不是所有满足关系模型的关系模式设计都是“最好”的设计?不同的关系模式设计会出现什么样的问题?有没有什么理论标准来评价或者优化该关系模式,使其成为“更好”的关系模式设计?
本章重点内容是学习如何针对具体的应用项目,从概念模型设计出发,通过不断优化,实现一个“较好”的数据库关系模式设计。其内容包括关系模式设计存在的常见问题,关系模式中属性间依赖关系及函数依赖的公理系统理论,最小函数依赖集及其求解算法,范式及其转换步骤和多属性之间的依赖关系。
函数依赖的公理系统
第4章
03
4.3.1 函数依赖集的完备性
1. 问题的引入
首先看一个例子,在关系模式R中,已知函数依赖X→{A,B};根据函数依赖的定义,可推出未知函数依赖X→{A}和X→{B};在关系模式R,已知非平凡函数依赖集F{X→Y,Y→Z},根据传递函数依赖的定义,可推出新的未知函数依赖X→Z。在关系模式R中,X→{A}、X→{B}和X→Z并不是直接在给定的函数依赖F中,而是依据一定的推理规则和已知条件推导出来的。
将这种由已知的函数依赖集合F,推导出新的函数依赖的问题一般化。解决该问题需要有一套推理规则理论,即函数依赖的公理系统。
4.3.1 函数依赖集的完备性
2.函数依赖集F的逻辑蕴含
定义:设有关系模式R(U,F),X和Y是属性集合U的两个子集,若对于R中任何一个满足函数依赖集F的关系r,函数依赖X→Y都成立,则称F逻辑蕴含X→Y,或称X→Y可以由F推出。记为F|=X→Y
【例4.5】关系模式R=(A,B,C),函数依赖集F={A→B,B→C},证明:F逻辑蕴含A→C。
4.3.1 函数依赖集的完备性
3. 函数依赖集的完备性
闭包的定义:设关系模式R(U,F),F是函数依赖集,被F逻辑蕴含的函数依赖的全体构成的集合,称为函数依赖集F的闭包(Closure),记为
由以上定义可知,已知函数依赖集F求新函数依赖,可以归结为求F的闭包。
4.3.2 函数依赖的推理规则
在关系模式R中,为了从已知的函数依赖集F中推导出其闭包,1974年,阿姆斯特朗(W. W. Armstrong)在论文中提出了一套推理规则,即著名的“Armstrong公理系统”,其为函数依赖集的推导提供了一个有效且完备的理论基础。
4.3.2 函数依赖的推理规则
1.Armstrong公理及其正确性
在Armstrong公理系统中,有3条基本公理:自反律(Reflexivity)、增广律(Augmentation)及传递律(Transitivity)。经研究发现,任何函数依赖关系都可由此三条基本公理推出。
A1自反律
如果YXU,则X→Y在R上成立。
证明:因YX,若r中存在两个元组在X上的值相同,那么Y的值也必然相同,其中平凡函数依赖就可以依据自反律推出。
例如:在教学关系模式TC中,可知(SNo,CN)→SNo和(SNo,CN)→CN。
4.3.2 函数依赖的推理规则
A2增广律
如果X→Y在R上成立,且ZU,则XZ→YZ在R上成立。
证明:用反证法。
假设r中存在两个元组u1和u2并违反XZ→YZ,即u1[XZ]=u2[XZ],但u1[YZ]≠u2[YZ]。
由u1[YZ]≠u2[YZ]可知,u1[Y]≠u2[Y]或者u1[Z]≠u2[Z]。
若u1[Y]≠u2[Y],则与已知X→Y相矛盾;若u1[Z]≠u2[Z],则与假设的u1[XZ]=u2[XZ]相矛盾。
因此假设不成立,从而得出增广律是正确的。
例如:教学关系模式TC中,已知SNo→Sex,则(SNo,SN)→(SN,Sex)也成立。
4.3.2 函数依赖的推理规则
A3传递律
如果X→Y和Y→Z在R上成立,则X→Z在R上也成立。
证明:用反证法。
假设r中存在两个元组u1和u2违反X→Z,即u1[X]=u2[X],但u1[Z]≠u2[Z]。
根据上述假设,u1[Y]=u2[Y],但u1[Z]≠u2[Z]。
若u1[Y]=u2[Y],则与已知Y→Z相矛盾;若u1[Y]≠u2[Y],则与已知X→Y相矛盾。
因此,假设不成立,传递律是正确的。
例如:教学关系模式TC中,已知SNo→DNo,DNo→DN,则SNo→DN。
4.3.2 函数依赖的推理规则
根据以上3条基本定理的证明,可以得出如下定理。
定理4.1 Armstrong公理的推理规