First normal form
An entity is in the first normal form if it contains no repeating
groups. In relational terms, a table is in the first normal form if
it contains no repeating columns. Repeating columns make your data
less flexible, waste disk space, and make it more difficult to search
for data. In the following telephone directory example, the name table
contains repeating columns, child1, child2, and child3.
You can see some problems in the current table. The table always reserves space on the disk for three child records, whether the person has children or not. The maximum number of children that you can record is three, but some of your acquaintances might have four or more children. To look for a particular child, you must search all three columns in every row.
To eliminate the repeating columns and bring the table to the first
normal form, separate the table into two tables. Put the repeating
columns into one of the tables. The association between the two tables
is established with a primary-key and foreign-key combination. Because
a child cannot exist without an association in the name table,
you can reference the name table with a foreign key, rec_num.
Now check the telephone directory structure in Telephone directory diagram with primary and foreign keys added for groups
that are not in the first normal form. The name-modem relationship
is not in the first normal form because the columns b9600, b14400,
and b28800 are considered repeating columns. Add a new attribute
called b_type to the modem table to contain occurrences
of b9600, b14400, and b28800. The following diagram
shows the data model normalized through the first normal form.