Concerning 3NF. If you have a composite non-key determinant to a single non-key dependent, does this violate 3NF? Everything I read on transitive dependencies says one non-key determining another non-key, but does not address the composite aspect.

Example: Ingredient(IngredientID (PK) —> Name, Supplier, Classification, UnitOfSale, UnitPrice)

A single supplier supplies an ingredient with a specific name and classification. So, (Name, Classification) --> Supplier. Does this violate 3NF?

Thank you for your time and thoughts.


1 Answer 1


A relation is in 3NF if for every non-trivial functional dependency, every determinant is a superkey, or, if it is not a superkey, every determinate is a prime attribute (i.e. it is part of a candidate key).

In your example, (Name, Classification) --> Supplier violates the 3NF if and only if the following two conditions are both satisfied:

  1. (Name, Classification) is not a candidate key.

  2. Supplier is not a prime attribute.

For the truth of the two conditions, you have to know either a set of Functional Dependencies which is a cover of all the FDs of the relation (and from those one can find all the candidate keys, and consequently, all the prime attributes of the relation), or, by knowing the meaning of the data, you know that they are true (for instance, you know that a couple of values Name, Classification can appear multiple times inside the relation, and that no candidate key exists that include Supplier).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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