1、第第4章章 关系数据库关系数据库设计理论设计理论 l4.1 数据依赖数据依赖l4.2 关系的规范化关系的规范化l4.3 模式分解模式分解4.1 数数 据据 依依 赖赖l4.1.1 函数依赖函数依赖l 1.函数依赖的定义函数依赖的定义 设有一关系模式R(A1,A2,An),X和Y均为R的子集,对于R的任意一个可能的关系r来说,当其中任意两个元组u,v中对应于X的那些属性分量的值均相等时,则有u、v中对应于Y的那些属性分量的值也相等,称X函数确定Y,或Y函数依赖于X,记为XY。4.1 数数 据据 依依 赖赖l 2.三种函数依赖三种函数依赖 在R(U)中,如果XY,并且对于X的任意一个真子集X,都有
2、X不能确定Y,则称Y对X完全函数依赖。若X Y,但Y不完全函数依赖于X,则称Y对X部分函数依部分函数依赖赖。在R(U)中,如果XY,(X不属于Y),YZ,(Z不属于Y),则称Z对X传递函数依赖传递函数依赖。4.1 数数 据据 依依 赖赖l 4.1.3 函数依赖的公理系统函数依赖的公理系统l 1.Armstrong公理系统公理系统 把自反律、传递律和增广律称为Armstrong公理系统。Armstrong公理系统是有效的、完备的。Armstrong公理的有效性指的是由F出发根据 Armstrong公理推导出来的每一个函数依赖一定在F+中;完备性指的是F+中的每一个函数依赖,必定可以由F出发根据A
3、rmstrong公理推导出来。l 2.属性集闭包属性集闭包 Armstrong公理的完备性及有效性说明了“导出”与“蕴含”是两个完全等价的概念。于是F+也可以说成是由F出发借助Armstrong公理导出的函数依赖的集合。4.1 数数 据据 依依 赖赖l 3.最小函数依赖集最小函数依赖集 每一个函数依赖集F均等价于一个极小函数依赖集Fm。此Fm称为F的最小依赖集。4.2 关系的规范化关系的规范化l 4.2.1 第一范式第一范式 如果一个关系模式R的所有属性都是不可分的基本数据项,则R1NF。第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。但是满足第一范式的关系模
4、式并不一定是一个好的关系模式。一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化规范化。l4.2.2 第二范式第二范式 若R1NF,且每一个非主属性完全函数依赖于码,则R2NF。l4.2.3 第三范式第三范式 若R3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。l4.2.4 BCNF 关系模式R1NF,如果对于R的每个函数依赖XY,若Y不属于X,则X必含有候选码,那么RBCNF。4.2 关系的规范化关系的规范化 把泛关系模式R用一组关系模式的集合=R1,R2,Rk来表示(R1,R2,.,Rk)都是R的子集,就是数据库模式。以代替R的过
5、程称为关系模式的分解。实际上,关系模式的分解不仅仅是属性集合的分解,它是对关系模式上的函数依赖集、以及关系模式的当前值分解的具体表现。4.3 模模 式式 分分 解解l4.3.1 模式分解规则模式分解规则l 分解具有“无损连接性”(Lossless join)。l 分解要“保持函数依赖”(Preserve functional dependency)。l 分解既要“保持函数依赖”,又要具有“无损连接性”。4.3 模模 式式 分分 解解l4.3.2 模式分解方法模式分解方法 如果一个分解具有无损连接性,则它能够保证不丢失信息。如果一个分解保持了函数依赖,则它可以减轻或解决各种异常情况。分解具有无损
6、连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接性的分解不一定能够保持函数依赖。同样,保持函数依赖的分解也不一定具有无损连接性。4.3 模模 式式 分分 解解 l4.3.3 模式分解算法模式分解算法 1.关于模式分解的几个重要事实关于模式分解的几个重要事实l (1)若要求分解保持函数依赖,那么模式分离总可以达到3NF,但不一定能达到BCNF;l (2)若要求分解既保持函数依赖,又具有无损连接性,可以达到3NF,但不一定能达到BCNF;l (3)若要求分解具有无损连接性,那一定可达到4NF。4.3 模模 式式 分分 解解l 2.模式分解的具体算法模式分解的具体算法l 算法1(合成法)转换为3NF的保持函数依赖的分解。l 算法2 转换为3NF既有无损连接性又保持函数依赖的分解。4.3 模模 式式 分分 解解 本章主要讨论关系数据库设计理论,列举了较多的实例,详细介绍了关系数据库设计理论的三个方面:数据依赖、关系的规范化和模式分解。数据依赖研究数据之间的联系;范式是关系模式的标准;模式分解是自动化设计的基础。其中的重点是关系模式的规范化式。本本 章章 小小 结结