转换所有的文件描述符,使得任何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