Translating a table into 1NF alleviates much of the data redundancy and wasted space of a table that has not been normalized.
First normal form is only a first step to good design. It is still possible for a table in 1NF to be designed inefficiently. Consider the following relation:
Order (CustID, CustName, Address, Phone, OrderDate, OrderNo, ItemNo, Title, Price, Shipped)
The relation has no repeating groups and is, therefore, in 1NF. But the relation's design is still inefficient. First, the relation describes four entities:
- Customers (CustID, CustName, Address, Phone),
- Orders (OrderDate, OrderNo),
- Item (ItemNo, Title, Price), and
- order Line Items (OrderNo, ItemNo, Shipped).
In this relation, a customer's personal information will be repeated in every record referring to an order the customer placed.
As noted earlier, repetition increases the amount of time it takes to update that information and makes it more likely that an update will be missed, causing inconsistencies in the database.
You can begin to address these problems by putting your relations into second normal form
- second normal form (2NF): A table is in second normal form when every attribute is functionally dependent on the entire primary key.
- concatenated primary key: A primary key made up of more than one field.
The next lesson defines second normal form.