数据库规范化理论---模式分解

这里主要讨论基础考试选择题,判断一个分解是有损无损、是否保持函数依赖。

一、公式法

无损分解 ⇔ R1∩R2→(R1-R2)或R1∩R2→(R2-R1) 

保持函数依赖 ⇔ (F1∪F2)+=F+

说明:这里的判断无损的→以及判断保持函数依赖的求闭包,可以使用Armstrong定理

注:公式法最大的问题:判断无损时,如果分解超过3个以上,则无能为力。

 

二、希赛法

数据库规范化理论---模式分解_第1张图片

如上题,如果分解的结果集中,只要有一个集合,能够通过现有的函数依赖,还原成原来的集合,则无损。

关键:还原过程中,只能通过现有集合中的元素确定新元素加入,不能把新加入的元素再用来确定新元素。

 

 

保持依赖的判断。 
如果F上的每一个函数依赖都在其分解后的某一个关系上成立,则这个分解是保持依赖的(这是一个充分条件)。 
如果上述判断失败,并不能断言分解不是保持依赖的,还要使用下面的通用方法来做进一步判断。 
该方法的表述如下: 
算法二: 
对F上的每一个α→β使用下面的过程: 
result:=α; 
while(result发生变化)do 
for each 分解后的Ri 
t=(result∩Ri)+ ∩Ri 
result=result∪t

你可能感兴趣的:(软考,软考---数据库)