First Normal Form (1NF)
A table is in 1NF if every column contains only atomic (indivisible) values and there are no repeating groups. Each cell must hold a single value, not a list or set.
Violation of 1NF
NOT in 1NF: Repeating groups
โโโโโโฌโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ID โ Name โ Courses โ
โโโโโโผโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ 1 โ Alice โ Databases, Networking โ
โ 2 โ Bob โ Databases, OS โ
โโโโโโดโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Problems:
โข "Databases, Networking" is NOT atomic โ it's two values in one cell
โข Can't query efficiently: WHERE Courses = 'Databases'
โข Can't index individual courses
Converting to 1NF
IN 1NF: One value per cell
Option 1: Separate rows
โโโโโโฌโโโโโโโโโโฌโโโโโโโโโโโโโ
โ ID โ Name โ Course โ
โโโโโโผโโโโโโโโโโผโโโโโโโโโโโโโค
โ 1 โ Alice โ Databases โ
โ 1 โ Alice โ Networking โ
โ 2 โ Bob โ Databases โ
โ 2 โ Bob โ OS โ
โโโโโโดโโโโโโโโโโดโโโโโโโโโโโโโ
Option 2: Separate tables (better โ fully normalized)
Students Enrollments Courses
โโโโโโฌโโโโโโโโโโ โโโโโโฌโโโโโโโโโโ โโโโโโฌโโโโโโโโโ
โ ID โ Name โ โSID โCrsID โ โ ID โ Title โ
โโโโโโผโโโโโโโโโโค โโโโโโผโโโโโโโโโโค โโโโโโผโโโโโโโโโค
โ 1 โ Alice โ โ 1 โ 101 โ โ101 โ DB โ
โ 2 โ Bob โ โ 1 โ 102 โ โ102 โ Net โ
โโโโโโดโโโโโโโโโโ โ 2 โ 101 โ โ103 โ OS โ
โ 2 โ 103 โ โโโโโโดโโโโโโโโโ
โโโโโโดโโโโโโโโโโ
Rules for 1NF
- Each column must contain atomic values (no lists, no sets).
- Each row must be unique (have a primary key).
- Each column must contain values of a single type.
- Column names must be unique within the table.