日期:2014-05-16  浏览次数:20460 次

复习要点-保持 函数依赖的分解

分解的另一个特性是在分解的过程中能否保持函数依赖集,如果不能保持FD,那么数据的语义就回出现混乱。


保持函数依赖的分解

设ρ={R1,....Rk}是R的一个分解,F是R上的FD集,如果有F在Ri上得投影的并(记为K)逻辑蕴含F,那么成为分解ρ保持函数依赖集F。

理解 - 其实就是把FD集进行投影后再合并后能逻辑蕴含F。K+=F+。如果F的投影不蕴含F,而又用ρ={R1,....Rk}表达R,很可能会找到一个数据库实例σ满足投影后的依赖,但不满足F,对σ的更新也由可能是r违反函数依赖

如果某分解能保持FD集,那么在数据输入或更新时,只要每个关系模式本身的FD约束被满足,就可以确保整个数据库中数据的语义完整性不被破坏,显然这是一种良好的特性。


模式分解与模式等价问题

我们讨论的关系模式分解的两个特性实际上涉及两个数据库模式的等价问题,这种等价包括数据等价(无损分解)和语义等价(保持函数依赖的分解)两个方面。数据等价是指两个数据库实例应表示同样的信息内容,用“无损分解”衡量。如果是无损分解,那么对泛关系反复的投影和连接都不会丢失信息。语义等价是指两个数据库模式应有相同的依赖集闭包。在依赖集闭包相等的情况下,数据的语义不会出差错的。违反数据等价或语义等价的分解很难说是一个号的模式设计。但要同时达到无损分解和保持FD的分解也不是一件容易的事情,需要认真对待。

?

理解 - 其实,保持FD的分解一眼就能从题目中看出,只要看FD左右的两个属性是否分别在两个Ri中,若再同一个Ri中则保持FD,反之,FD丢失。