Intermediate Topic 22 of 51 Databases
Normal Forms
Progressive rules 1NF through BCNF for table design.
How it works
Normal forms are progressively stricter rules for table design. First normal form requires atomic values and no repeating groups. Second normal form also requires that non-key attributes depend on the whole of a composite key, not part of it. Third normal form removes transitive dependencies, so non-key attributes depend only on the key. Boyce-Codd normal form requires every determinant to be a candidate key; higher forms deal with multivalued and join dependencies.
Step-by-step walkthrough
- 1NF: each cell holds one atomic value.
- 2NF: every non-key column depends on the whole key.
- 3NF: non-key columns depend only on the key, not on each other.
- BCNF: every determinant is a candidate key.
- Each step removes more redundancy.
Where it is used
Database designers use them as a checklist to find redundancy and anomalies, and to explain why a schema should be split.
Common pitfall
Memorizing definitions without applying them to concrete dependencies leads to mistakes. Not every schema must reach the highest form; practical designs stop at third normal form or BCNF and denormalize deliberately for performance. Identify candidate keys first, then list dependencies, and test with sample data to see anomalies.
Where it fits in the course
Normal Forms is topic 22 of 51 in Databases, rated Intermediate. It follows Normalization. The next topic is Denormalization.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Databases quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Databases quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Normal Forms?
Where do people use Normal Forms?
What is the most common mistake with Normal Forms?
What should I learn before this topic?
How can I practice it?
Is Normal Forms hard to learn?
How long does it take to learn Normal Forms?
Which topics are related to Normal Forms?
What should I study after Normal Forms?
Related topics
- Normalization (Databases)
- Denormalization (Databases)
- Indexes (Databases)
- Transactions (Databases)
- HTML Forms (Web Development)
- Normal Distribution (Math for Computing)