1.转换成3NF的保持函数依赖的分解
2017-03-04 15:23
176 查看
1.转换成3NF的保持函数依赖的分解
例1:关系模式
解:根据算法进行求解
(一)计算F的最小函数依赖集
① 利用分解规则,将所有的函数依赖变成右边都是单个属性的函数依赖。由于F的所有函数依赖的右边都是单个属性,故不用分解
举个例子就是:CS→GB 变成 CS→G CS→B
② 去掉F中多余的函数依赖
设CS→G为冗余的函数依赖,则去掉CS→G,得:
F1={C→T,TH→R,HR→C,HS→R}
计算(CS)F1+: G不属于(CS)F1+ 故这个不是冗余的函数依赖
同理:分别判断,C→T,TH→R,HR→C,HS→R 是不是冗余的函数依赖
③ 去掉F5中各函数依赖左边多余的属性(只检查左部不是单个属性的函数依赖),没有发现左边有多余属性的函数依赖。
举例:CS→G 去掉C得到S→G这是无法由后面的依赖推出的,同理去掉S,同样的方法对其他所有的函数依赖进行检验
(二)由于R中的所有属性均在F中都出现,所以转下一步。
举例: U={C,T,H,R,S,G},F={CS→G}
由于T,H,R没有在F中出现,于是将R1={THP}作为一个分解关系
故最小函数依赖集为:F={CS→G,C→T,TH→R,HR→C,HS→R}
(三)对F按具有相同左部的原则分为:
R1=CSG,R2=CT,R3=THR,R4=HRC,R5=HSR。
所以ρ={R1(CSG),R2(CT),R3(THR),R4(HRC),R5(HSR)}。
相同左部分的原则:
举例:C→T ,C→A是相同的左部,则将二者合并为一个关系C→AT
例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的所有函数依赖的右边都是单个属性,故不用分解
举个例子就是:CS→GB 变成 CS→G CS→B
② 去掉F中多余的函数依赖
设CS→G为冗余的函数依赖,则去掉CS→G,得:
F1={C→T,TH→R,HR→C,HS→R}
计算(CS)F1+: G不属于(CS)F1+ 故这个不是冗余的函数依赖
同理:分别判断,C→T,TH→R,HR→C,HS→R 是不是冗余的函数依赖
③ 去掉F5中各函数依赖左边多余的属性(只检查左部不是单个属性的函数依赖),没有发现左边有多余属性的函数依赖。
举例:CS→G 去掉C得到S→G这是无法由后面的依赖推出的,同理去掉S,同样的方法对其他所有的函数依赖进行检验
(二)由于R中的所有属性均在F中都出现,所以转下一步。
举例: U={C,T,H,R,S,G},F={CS→G}
由于T,H,R没有在F中出现,于是将R1={THP}作为一个分解关系
故最小函数依赖集为:F={CS→G,C→T,TH→R,HR→C,HS→R}
(三)对F按具有相同左部的原则分为:
R1=CSG,R2=CT,R3=THR,R4=HRC,R5=HSR。
所以ρ={R1(CSG),R2(CT),R3(THR),R4(HRC),R5(HSR)}。
相同左部分的原则:
举例:C→T ,C→A是相同的左部,则将二者合并为一个关系C→AT
相关文章推荐
- 【数据库】转换成3NF的保持函数依赖的分解
- 转换成3NF的保持无损连接和函数依赖的分解
- 二、转换成3NF的保持函数依赖的分解
- 2.转换成3NF的保持无损连接和函数依赖的分解
- 三、转换成3NF的保持无损连接和函数依赖的分解
- 转换成3NF的保持无损连接和函数依赖的分解
- 【数据库】转换成3NF的保持无损连接和函数依赖的分解
- 分解成3NF的保持函数依赖的分解算法:
- 分解成3NF保持函数依赖且为无损连接的算法
- 关系规范化之满足第三范式3NF的函数依赖保持分解算法
- 求最小函数依赖以及结果为3NF的保持函数依赖分解---Java实现
- 一个无损连接和保持函数依赖性的3nf分解
- 一个无损连接和保持函数依赖性的3nf分解
- 具有无损性连接和保持函数依赖的3NF分解C++实现
- 保持函数依赖的模式分解
- 数据库 无损分解和保持依赖的判断
- 存在依赖关系的存储过程与函数,其中的个别对象发生变化后,整个依赖关系是否自动保持?
- 数据库 之 ER模型、函数依赖、无损分解、关系代数
- 【数据库】转换成BCNF的保持无损连接的分解
- 数据库--ER模型、函数依赖、无损分解、关系代数