Does having a composite/compound key (using multiple columns/attributes) to form the primary key break first normal form? (I am assuming that this is handled by the DBMS, and so the attribute containing composite key does not exist in the table/relation itself, and so this still complies with the first normal form, but is this correct?) thanks.
No, this is quite normal (pun intended). The criteria is
Tables are said to be in first normal form when:
- The table has a primary key.
- No single attribute (column) has multiple values.
- The non-key attributes (columns) depend on the primary key.
None of these requirements for 1NF is violated by the design you propose.
For instance a Junction Table created to normalize a many-to-many relationship will always have a composite Primary Key, with each component being also a Foreign Key into one of the joined tables.
A table in First Normal Form can have a composite key that have many columns to form a primary key:
When a table in the first normal form:
- has a primary key.
- No attribute/column has multiple values.
- The non-key attributes/columns depend on the primary key.
- The non-key has no repeating groups in attributes/Columns
For instance, the following two examples are not in the first normal form:
One student table with a student ID and class:
1st example: class column has many values.
2nd example: classes are repeating groups.
a. Student_id, (class_1, class_2,class_3). b. Student_id, class_1, class_2, class_3