Decomposition Using Functional Dependencies