1NF
Atomic values in cells; no repeating groups. The floor of the relational model.
Level: beginner
What is it?
First Normal Form (1NF) is commonly taught as requiring a single value from the intended domain in each attribute position and avoiding repeating groups or list-valued columns in the relational model. Practical database types can store arrays or JSON, but those values require a separate modeling decision rather than being assumed equivalent to ordinary relational attributes.
Why does it matter?
Atomic columns make predicates, constraints, joins, and indexes more predictable. Bundling multiple independent values in one cell often forces brittle string parsing and makes updates difficult.
Mental model
Each row-column intersection should represent one value with one meaning for the relation's model. If a student has multiple courses, represent the repeating relationship as multiple enrollment rows rather than a comma-separated list.
How it works
- 1NF is not a requirement that text contain no spaces or delimiters; atomicity is relative to the chosen data domain.
- A repeating group such as phone1, phone2, phone3 reveals a fixed upper bound and often a multivalued relationship.
- A separate child table can represent a variable number of related values with keys.
- SQL arrays and JSON may be appropriate when the nested structure is intentionally treated as a single document value, but trade-offs differ.
- 1NF alone does not remove partial or transitive dependencies; higher normal forms address other anomalies.
Steps
- A Students row stores courses as the string 'DBMS, OS, Networks'.
- Move the many-to-many relationship into Enrollment(student_id, course_id).
- Store one student-course relationship per row and constrain the pair as unique.
- Join Enrollment back to Students and Courses for a combined display.
Real-world usage
- Solving normalization questions in database courses and GATE CSE.
- Designing relational tables with repeating one-to-many values.
- Reviewing schemas where arrays or comma-separated strings are difficult to query.
Common mistakes
- Claiming a text value is non-atomic merely because it contains punctuation.
- Assuming 1NF guarantees the absence of all redundancy.
- Creating one column per possible repeated item instead of representing the relationship.
Interview questions
Why is a comma-separated list of courses usually a poor relational design?
Membership is hard to constrain, index, join, and update safely; a relationship table represents each student-course pair directly.
Does 1NF guarantee a table has no redundancy?
No. It addresses repeating groups/atomic attributes; partial and transitive dependencies are addressed by stronger normal forms.