关系数据库设计理论(5) 关系模式的规范化
2007-06-22 13:10
696 查看
图4.5.1 算法分解树 | 算法1:存在两个问题: 第一、分解结果不唯一 例:最后一次分解时如果选择HR→C, 则分解的最终结果为 CSG、CT、HRC和HRS。 所以分解要结合语义和实际应用 来考虑。 第二、分解不保证是保持函数依赖的 例:TH→R未能保持,在分解后各模式的 函数依赖的并集中没有逻辑蕴涵 TH→R。 |
4、面向3NF且保持函数依赖的分解(算法2) 输入:关系模式R及其上的最小函数依赖集F。 输出:R的保持函数依赖的分解,其中每一个关系模式是关于F在其上投影的3NF。 算法实现: 1)如果R中存在一些不在F中出现的属性, 则将它们单独构成一个关系模式,并从模式R中消去; 2)如果F中有一个函数依赖X→A,且XA=R,则R不用分解, 算法终止; 3)对F中的每一个函数依赖X→A,构造一个关系模式XA。 如果X→A1,X→A2,…,X→An均属于F,则构造一个关系模式XA1A2…An。 定理:算法2正确(证明略) 例4.5.9:分解算法1例2关系模式CTHRSG,要保持函数依赖达到3NF。 解:关系模式CTHRSG的最小函数依赖集F={C→T,CS→G,HR→C, HS→R,TH→R}。该模式可以保持函数依赖地分解为如下一 组3NF的关系模式:ρ={CT,CSG,CHR,HSR,HRT}。 5、面向3NF既有无损联接性又保持函数依赖的分解(算法3) 输入:关系模式R及其上的最小函数依赖集F。 输出:R的具有无损联接性及保持函数依赖的分解, 其中每一个关系模式均为3NF。 算法实现: 1) 按算法2对关系模式R进行分解,设结果为σ={R1,R2,…,Rk}; 2) X是R的关键字,τ=σ∪{X}是R的一个分解。 3) 求τ式的最小集合(当Ri≤Rj∈τ时,消去Ri)。 定理:算法3正确 设X是R的关键字,则τ=σ∪{X}是R的一个分解, 且所有的关系模式均满足3NF,同时具有无损联接性和保持函数依赖性。 由于σ中全部模式均为3NF,X中属性之间不存在传递和部分函数依赖, 即X也是3NF的。分解τ具有无损联接性可以无损联接性检验算法验证。 由于X为R的关键字,表中模式X所对应的行,应用修改规则处理后, 将变成全部由а组成。 例4.5.10: 将算法1例2的关系模式CTHRSG分解为一组3NF的关系模式, 要求分解既具有无损联接性又保持函数依赖。 解:在算法2例中得σ={CT,CSG,CHR,HSR,HRT}, 而HS是原模式的关键字,所以τ={CT,CSG,CHR,HSR,HRT,HS}。 由于HS是模式HSR的一个子集,所以 消去HS后的分解{CT,CSG,CHR,HSR,HRT} 就是具有无损联接性和保持函数依赖性的分解, 且其中每一个模式均为3NF。 |
相关文章推荐
- 关系数据库设计理论(1) 关系模式及其评价
- 关系数据库设计理论(4) 关系模式的分解
- 关系数据库设计理论(二)函数依赖的规则
- 第三章:关系模式设计理论
- 对关系数据库的设计理论的简单认识
- 数据库设计模式规范化----范式
- 数据库系统原理(4)--数据依赖与关系模式规范化
- 关系数据库规范化理论
- 数据库——设计关系模式要用的概念
- 关系数据库设计理论
- 规范化关系模式设计
- 关系数据库规范化理论
- 关系数据库(MySQL)的规范化、以及设计原则
- 关系数据库设计理论
- 自考《数据库系统原理》(3)之关系模式设计理论
- 关系数据库设计规范化流程
- 关系数据库设计的规范化与非规范化之争
- 关系数据库设计理论
- 关系数据库规范化理论 函数依赖与范式理论
- 关系数据库的模式设计(转贴)