functional dependency problem