二、转换成3NF的保持函数依赖的分解
来源:互联网 发布:淘宝买的东西靠谱不 编辑:程序博客网 时间:2024/05/29 06:56
转换成3NF的保持函数依赖的分解
==================================================
算法2:
===================================================================
例1:关系模式R<U,F>,其中U={C,T,H,R,S,G},
F={CS→G,C→T,TH→R,HR→C,HS→R},将其分解成3NF并保持函数依赖。
解:根据算法进行求解
(一)计算F的最小函数依赖集
① 利用分解规则,将所有的函数依赖变成右边都是单个属性的函数依赖。由于F的所有函数依赖的右边都是单个属性,故不用分解。
② 去掉F中多余的函数依赖
A.设CS→G为冗余的函数依赖,则去掉CS→G,得:
F1={C→T,TH→R,HR→C,HS→R}
计算(CS)F1+:
设X(0)=CS
计算X(1):扫描F1中各个函数依赖,找到左部为CS或CS子集的函数依赖,找到一个C→T函数依赖。故有X(1)=X(0)∪T=CST。
计算X(2):扫描F1中的各个函数依赖,找到左部为CST或CST子集的函数依赖,没有找到任何函数依赖。故有X(2)=X(1)。算法终止。
(CS)F1+= CST不包含G,故CS→G不是冗余的函数依赖,不能从F1中去掉。
B.设C→T为冗余的函数依赖,则去掉C→T,得:
F2={CS→G,TH→R,HR→C,HS→R}
计算(C)F2+:
设X(0)=C
计算X(1):扫描F2中的各个函数依赖,没有找到左部为C的函数依赖。故有X(1)=X(0)。算法终止。故C→T不是冗余的函数依赖,不能从F2中去掉。
C.设TH→R为冗余的函数依赖,则去掉TH→R,得:
F3={CS→G,C→T,HR→C,HS→R}
计算(TH)F3+:
设X(0)=TH
计算X(1):扫描F3中的各个函数依赖,没有找到左部为TH或TH子集的函数依赖。故有X(1)=X(0)。算法终止。故TH→R不是冗余的函数依赖,不能从F3中去掉。
D.设HR→C为冗余的函数依赖,则去掉HR→C,得:
F4={CS→G,C→T,TH→R,HS→R}
计算(HR)F4+:
设X(0)=HR
计算X(1):扫描F4中的各个函数依赖,没有找到左部为HR或HR子集的函数依赖。故有X(1)=X(0)。算法终止。故HR→C不是冗余的函数依赖,不能从F4中去掉。
E.设HS→R为冗余的函数依赖,则去掉HS→R,得:
F5={CS→G,C→T,TH→R,HR→C}
计算(HS)F5+:
设X(0)=HS
计算X(1):扫描F5中的各个函数依赖,没有找到左部为HS或HS子集的函数依赖。故有X(1)=X(0)。算法终止。故HS→R不是冗余的函数依赖,不能从F5中去掉。即:F5={CS→G,C→T,TH→R,HR→C,HS→R}
③ 去掉F5中各函数依赖左边多余的属性(只检查左部不是单个属性的函数依赖),没有发现左边有多余属性的函数依赖。
故最小函数依赖集为:F={CS→G,C→T,TH→R,HR→C,HS→R}
(二)由于R中的所有属性均在F中都出现,所以转下一步。
(三)对F按具有相同左部的原则分为:
R1=CSG,R2=CT,R3=THR,R4=HRC,R5=HSR。
所以ρ={R1(CSG),R2(CT),R3(THR),R4(HRC),R5(HSR)}。
- 二、转换成3NF的保持函数依赖的分解
- 三、转换成3NF的保持无损连接和函数依赖的分解
- 转换成3NF的保持无损连接和函数依赖的分解
- 1.转换成3NF的保持函数依赖的分解
- 2.转换成3NF的保持无损连接和函数依赖的分解
- 转换成3NF的保持无损连接和函数依赖的分解
- 求最小函数依赖以及结果为3NF的保持函数依赖分解---Java实现
- 两个例子说明3NF的无损保持依赖分解
- 具有无损性连接和保持函数依赖的3NF分解C++实现
- 关系规范化之满足第三范式3NF的函数依赖保持分解算法
- 一个无损连接和保持函数依赖性的3nf分解
- 保持函数依赖的模式分解
- 3nf的分解
- 关系规范化之分解的函数依赖保持性判定
- 无损分解和保持依赖的判断
- 四、转换成BCNF的保持无损连接的分解
- 转换成BCNF的保持无损连接的分解
- 3.转换成BCNF的保持无损连接的分解
- 不见光就死的ContentPane:原因及解决之道
- 字符串处理函数 strtok
- 【VC++】在MFC中显示IplImage图像的方法
- 生产者-消费者问题实现 (linux下C语言)
- c语言的一些有用的库,记录一下。
- 二、转换成3NF的保持函数依赖的分解
- 生产者-消费者问题实现 (windows)
- linux c常用字符串处理函数
- HDU/HDOJ 3875 Euclidean Algorithm 多校联合第四场
- C# foreach或许你所不知道的
- sizeof的疑问
- Windows 2000/XP 注册表终极修改(转载) .
- 三、转换成3NF的保持无损连接和函数依赖的分解
- highcharts document