I am taking a databases course and i'm learning about functional dependencies. I have searched around and did not find any information on this. My questions is if we are given a table with some tuples, are we able to determine the FDs for this relation instance?

2 Answers 2


It's guesswork and detective work. It's a little like what an archaeologist does. You make the most of the data you find, but you realize that some pattern you think you see might be contradicted if you had a wider sample.


No. The reason why database designers are interested in FDs is because they are a formalisation of Business Rules - rules about the data which accurately reflect the Business Domain to be modelled in the database. The only sound and practical way to identify FDs is by analysing and understanding a set of business requirements.

Suppose you are designing a database for a members-only club and you are given the data for all current members. You notice that for every member Sex = "Male". Can you conclude from the data that the club only admits men? Of course not. The only way to know that is by knowing what the club rules are. You could conclude from the data that the club is not a women-only club, but that's something different. Knowing what dependencies do not apply isn't the same as knowing what dependencies do apply.

You can of course use data to help you test a set of given FDs (by making sure that the FD holds for every row of some sample data) but you first have to know what FDs to try; you shouldn't expect to derive them from data alone.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.