以下是表“投资组合”的功能依赖关系(包含有关特定用户购买的股票的信息):
User_name, Stock_ID -> Quantity, Buying Price ;
Stock_ID -> Current_Price ;
Buying_Price, Current_Price -> Change ;
Quantity, Change -> Net_Change ;
以下是表“投资组合”的功能依赖关系(包含有关特定用户购买的股票的信息):
User_name, Stock_ID -> Quantity, Buying Price ;
Stock_ID -> Current_Price ;
Buying_Price, Current_Price -> Change ;
Quantity, Change -> Net_Change ;
您确定要在表中使用这些似乎是多余的并且只会导致不必要的功能依赖的属性吗?如果 'change'='buying_price'-'current_price' 和 'Net_change'='Quantity'*'change',那么 'buying_price' 和 'current_price' 可能足以以更少的冗余实现相同的结果,因为 'Change' 和可以在需要时计算“Net_change”。
正如 Lordferrous 已经提到的,关系不在 2NF 中,为了实现这一点,我们必须将部分依赖“Stock_ID -> Current_Price”移动到不同的关系。在此过程中 FD3 (Buying_Price, Current_Price -> Change ) 将丢失。