一、分解的概念
1、分解的定义
2、判断一个关系模式的集合P是否为关系模式R的一个分解
只要满足以下三个条件,P就是R的一个分解
(1)P中所有关系模式属性集的并集是R的属性集
(2)P中所有不同的关系模式的属性集之间不存在包含关系
(3)P中关系模式的函数依赖集都是F在该关系模式属性集上的投影
3、F在关系模式上的投影
(1)定义
F在关系模式上的投影是F闭包中满足属性集的并集是子集的函数依赖的集合,记为
{}
(2)求解方法
对于中的每一个子集X,若存在属性Y属于X关于F的闭包并且Y属于,则将并入到
中,最终所得到的就是F在关系模式上的投影
二、对前面学过的存储学生选课信息中的关系模式R进行分解
分解方式一:
分析
(1)对分解中的三个关系模式进行自然连接,可恢复原关系模式R中的所有信息,我们称对R进
行的这种分解具有无损连接性
(2)同时,分解中的三个关系模式函数依赖集的并集包含了原关系模式R中的函数依赖集,我
们称这种分解具有保持函数依赖特性
三、分解方式二:
分析:
分解后信息发生了丢失,无法对分解后的各关系模式进行连接,来恢复得到原关系模式R中的数据
,因此该分解不具有无损连接性,也没有保持函数依赖
四、分解方式三:
该分解具有无损连接性,但原关系模式中的所在系系主任这个函数依赖丢失了,并没有投影到分
解中的某个关系模式上,即分解没有保持函数依赖,会出现数据不一致问题
五、小结:
1、对关系模式的分解不是唯一的
2、理想的分解应既具有无损连接性又保持函数依赖
(1)分解具有无损连接性——数据等价
(2)分解保持函数依赖——语义等价