关系模式的规范化理论.ppt
文本预览下载声明
第6章 关系模式的规范化理论 本章主要内容 关系数据库的规范化设计是指面对一个现实问题,如何选择一个比较好的关系模式集合。规范化设计理论对关系数据库结构的设计起着重要的作用。 本章主要内容 关系模式的规范化理论 6.1 关系模式设计中的问题 假设需要设计一个学生学习情况数据库StuDB。 下面我们以模式S_C_G(S#,SN,SD,SA,C#,CN,G,PC#)为例来说明该模式存在的问题。下表是其一个实例。 关系模式的分解 我们采用分解的方法,将上述S_C_G分解成以下三个模式: S(S#,SN,SD,SA) C(C#,CN,PC#) S_C(S#,C#,G) 6.2 函数依赖 1)函数依赖(Functional Dependency,简称FD) 2)几种类型的函数依赖 几种类型的函数依赖 3)关系的关健字和超关键字 6.3 函数依赖的公理系统 6.3.1 函数依赖的逻辑蕴涵 6.3.2 Armstrong公理系统 6.3.3 函数依赖集的等价与覆盖 6.3.1 函数依赖的逻辑蕴涵 例如在上述的传递函数依赖中,由X→Y,Y→Z,推导出X→Z,这可以表示为: {X→Y,Y→Z}? X→Z 其中: ?表示逻辑蕴涵。 一般地讲,函数依赖的逻辑蕴涵定义如下: 函数依赖集F的闭包F+ 6.3.2 Armstrong公理系统 1)独立推理规则 即下面给出的Armstrong公理的三条推理规则是彼此独立的。 2)其他推理规则 一个重要定理 属性集闭包 定义6.8(属性集闭包):设有关系模式R(U),U={ A1,A2,…,An},X是U的子集,F是U上的一个函数依赖集,则属性集X关于函数依赖集F的闭包 定义为: ={Ai|Ai∈U,且X→Ai可用阿氏公理从F推出} 属性集的闭包计算 算法6.1的求解过程 属性集闭包计算结束判断方法 在判断计算何时结束时,可用下面四种方法: (1)X(i+1)= X(i)。 (2)X(i+1)已包含了全部属性。 (3)在F中再也找不到函数依赖的右部属性是X(i)中未出现过的属性。 (4)在F中再也找不到满足条件V X(i)的函数依赖V→W。 6.3.3 函数依赖集的等价和覆盖 最小函数依赖集 最小覆盖的求解事例 6.4 关系模式的分解 及其问题 6.4.1 什么叫模式分解 6.4.2 分解的无损连接性 6.4.3 保持函数依赖性 6.4.1 什么叫模式分解 例6.6:设在模式R(U,F)中 U={SNO,SNAME,DNAME,DADDR} F={SNO→SNAME,SNO→DNAME,DNAME→DADDR} 如果对R作如下分解(方法1): ρ={R1({SNO,SNAME},{SNO→SNAME}), R2( {DNAME,DADDR}, {DNAME→DADDR})} (1)连接不失真问题 方法2:假设按下列方法对R进行分解 ρ={R1 ({SNO,SNAME,DNAME},{SNO→SNAME,SNO→DNAME} ), R2({DNAME,DADDR}),{DNAME→DADDR})} (2)依赖保持问题 上例方法1: F={SNO→SNAME,SNO→DNAME,DNAME→DADDR} F1∪F2={SNO→SNAME,DNAME→DADDR} F+={SNO→SNAME,SNO→DNAME,DNAME→DADDR,SNO→DADDR} (F1∪F2)+={SNO→SNAME,DNAME→DADDR} 6.4.2 分解的无损连接性 r 和mρ(r)之间的联系 定理6.4证明 2)无损连接的检验 事例说明 简单的检验方法 6.4.3 函数依赖保持性 6.5 关系模式的规范化6.5.1 范式 1)第一范式(1NF) 2)第二范式(2NF) 3)第三范式(3NF) 4)Boyce-Codd范式(BCNF) 事例 范式之间的关系 6.5.2 模式分解的算法 1)结果为BCNF的连接不失真分解 结果为BCNF的连接不失真分解算法 事例 (2) 分解 分解树 ?2)结果为3NF的依赖保持分解 3)结果为3NF且具有依赖保持和连接不失真的分解 6.6 多值函数依赖与4NF 6.6.2 多值函数依赖 2)多值依赖的其他推理规则 6.6.3 4NF 本章小结 本章
显示全部