| Lesson 11 | Limitations of 2NF |
| Objective | Describe the limitations of (2NF) Second Normal Form during the Normalization Process |
Second Normal Form (2NF) is a major milestone in the normalization process because it addresses a specific class of design defects: partial dependency in tables that use a composite primary key. When a relation is in 2NF, every non-key attribute is fully functionally dependent on the entire primary key (not just part of it).
That sounds like “the table is clean,” but 2NF is not the finish line. You can still have repeated values, insertion/deletion/modification anomalies, and update storms even after achieving 2NF. The reason is simple: 2NF focuses on the relationship between non-key attributes and the key, but it does not prevent dependencies among non-key attributes. Those are handled by 3NF (and beyond).
To make this concrete, consider the following “all-in-one” CD table:
Diagram below represents a non-decomposed table
| CD | |||||
| CDNo | Title | Price | CatNo | Cat Name | DistId |
| 101 | Tales 1 | 14.95 | 1 | YA-8 | 101 |
| 102 | Tales 2 | 13.95 | 1 | YA-8 | 101 |
| 102 | Tales 2 | 13.95 | 1 | YA-8 | 102 |
| 103 | Tales 3 | 12.95 | 2 | YA-11 | 102 |
It is represented in relational notation as:
CD (CDNo, Title, Price, CatNo, CatName, DistID)
Notice that CatNo and CatName repeat across multiple rows. This repetition is not just
cosmetic—it creates classic anomalies:
CatNo=1,
CatName=YA-8) unless at least one CD exists in that category.
YA-8 gets renamed),
you must update multiple rows, and missed updates create inconsistencies.
Even if you argued this table can be arranged into 2NF, it still contains a design smell: category description facts are mixed into CD facts. The normalization process is telling you that “category” is its own concept, and the table should be decomposed.
From a relational theory perspective, normalization is driven by functional dependencies (FDs). 2NF addresses only one pattern: non-key attribute depends on part of a composite key. But a relation can satisfy that rule and still violate other dependency constraints that cause anomalies.
In other words, 2NF answers: “Does every non-key attribute depend on the whole key?” It does not answer: “Do non-key attributes depend on other non-key attributes?” or “Are we storing multiple independent themes in one relation?”
Key → A and A → B, then B is transitively dependent on the key.
2NF permits this, and transitive dependencies are a primary source of update anomalies.
A common “gotcha” is a table where the key is simple (not composite), so partial dependency isn’t even possible, yet anomalies still occur due to transitive dependency. Assume each new DVD title comes from one distributor, and each distributor has exactly one warehouse phone number:
Item (item_numb, title, distrib_numb, warehouse_phone_number)
Here, item_numb is the key. Because the key is not composite, the table is automatically in 2NF as long
as it is in 1NF. But notice the implied dependencies:
item_numb → distrib_numb
distrib_numb → warehouse_phone_number
therefore: item_numb → warehouse_phone_number (transitively)
That transitive dependency causes the same anomalies you saw earlier:
The key point: this relation can be in 2NF and still be poorly designed. That is the practical limitation of 2NF—it doesn’t stop transitive dependencies.
The usual next step is 3NF decomposition, separating distributor data into its own relation and referencing it from
Item.