A functional dependency means that one column, or a combination of columns, uniquely determines another column. It is directional: employee_id → employee_name does not imply that employee_name → employee_id. section 6.5
A purchase example
In a purchase table, purchase_id determines receipt details such as total_price and purchase_time. However, product_quantity and product_price depend on the combination of purchase_id and code; neither column determines them alone. Moving those attributes to a purchase_product table with that combination as its key removes the dependency problem. section 6.6
Use functional dependencies to check whether each table is organized around the right key:
- Identify which column or column combination determines each value. section 6.5
- Keep attributes directly dependent on a key in the same table. section 6.5 section 6.7
- Separate attributes that depend on another nonkey column or on a composite key. section 6.6 section 6.7
product_id → total_price, purchase_time, payment_id, email purchase_id, code → product_quantity, product_price
Browse the dependency listing for the purchase table and its purchase-product relationship. section 6.6

