2014-05-17 44 views
1

我有一套关系模式的功能依赖关系,需要找到最小覆盖。我理解消除冗余线路的基本概念,但我正在努力完成。什么是完成这个最有效的方法?找到给定的函数依赖关系的最小覆盖范围

这些功能依赖:

client  --> office 

stock  --> exchange, dividend 

broker  --> profile 

company  --> stock 

client  --> risk_profile, analyst 

analyst  --> broker 

stock, broker --> investment, volume 

stock  --> company 

investment --> commission, return 

stock, broker --> client 

account  --> assets 

回答

0

转换所有的文件描述符,使得任何FD的RHS仅由单个属性

client  --> office 
stock  --> exchange 
stock  --> dividend 
broker  --> profile 
company  --> stock 
client  --> risk_profile 
client  -->analyst 
analyst  --> broker 
stock, broker --> investment 
stock, broker --> volume 
stock  --> company 
investment --> return 
investment --> commission 
stock, broker --> client 
account  --> assets 

下一步是我们需要寻找 冗余属性LHS

在LHS上选择具有2个或多于2个属性的FD

1.stock, broker --> investment 

删除一个属性在一个时间形式LHS和计算其余属性的clouser如果属性的clouser包括被淘汰的属性,那么你实际上可以删除该属性。

删除股票的形式1和经纪人

(broker)+ = {broker,profile,investment,return ,commission} 

不包含股票,所以你不能删除股票

删除经纪人形式1和计算clouser股票

(stock)+ = {stock,exchange,dividend,investment,return,commission,company} 

计算clouser这不包含经纪人,所以你不能删除经纪人

,你可以玩同样的游戏,下面的FD

2.stock, broker --> volume 
3.stock, broker --> client 

对于FD 3.你会发现,券商可以去除导致下面的FD

client  --> office 
stock  --> exchange 
stock  --> dividend 
broker  --> profile 
company  --> stock 
client  --> risk_profile 
client  -->analyst 
analyst  --> broker 
stock, broker --> investment 
stock, broker --> volume 
stock  --> company 
investment --> return 
investment --> commission 
stock  --> client 
account  --> assets 

最后一步是寻找那些冗余的函数依赖。 要检查形式X的FD ---> Y是X的冗余计算模糊,并检查它是否包含Y,如果是这种情况,那么你可以从最小覆盖集合中安全地移除FD。如下所示。客户

(client)+ = { client , risk_proflie,analyst,broker,profile } 

client  --> office 

计算clouser的clouser不包含办公室,所以你无法将其删除。 重复最后一步,你会发现没有FD可以删除,因此最小覆盖集是

client  --> office 
stock  --> exchange 
stock  --> dividend 
broker  --> profile 
company  --> stock 
client  --> risk_profile 
client  -->analyst 
analyst  --> broker 
stock, broker --> investment 
stock, broker --> volume 
stock  --> company 
investment --> return 
investment --> commission 
stock  --> client 
account  --> assets