As for 1NF:
- All the attributes are single valued.
- There are no derived data attributes.
- There are no repeating groups.
- We have defined primary identifiers for all relations (tables).
The relations are in 1NF. As for 2NF:
- The relations are in 1NF.
- All attributes are dependent on the whole primary identifier. We only have to check the 3rd relation above (the one with the primary identifier of Cust ID, Stock) since it is the only one with more than one field. Why does this matter for checking 2NF? (Try to answer this question before reading on.)
You can't have an attribute that is dependent on some part of the primary identifier if the primary identifier only has one field. So, to violate 2NF (and not 1NF), the primary key has to have more than one field.
The relations are in 2NF.
Return to 2nd normal form discussion.