Database Normalization

Database Normalization

Normalization is the process of organizing data in a database to minimize redundancy and eliminate undesirable characteristics like insertion, update, and deletion anomalies.

6 min read

Updated

June 30, 2026

Normalization is the process of organizing data in a database to minimize redundancy and eliminate undesirable characteristics like insertion, update, and deletion anomalies.

Normalization helps in:

  • Breaks table into smaller, related tables.
  • Eliminates insert, update, delete anomalies.
  • Make data consistent, reliable, and scalable.

1. First Normal Forms (1NF)

  • Using row order to convey the information is not permitted
  • Mixing the datatypes within the same columns is not permitted
  • Having a table without primary key is not permitted
  • Repeating the item or groups within same row is not permitted

Before 1NF Player Inventory

player_idinventory
12 amulets, 4 rings
230 copper coins
33 shields, 18 gold coins, 7 rings

Improved 1NF Player Inventory

player_iditem_typeitem_quantity
1amulets2
1rings4
2copper coins30
3shields3
3gold coins18
3rings7

🔑 Primary key → player_id ****+ item_type

2. Second Normal Forms (2NF):

Every non-key attribute in the table should depend on the entire primary key (applies when composite key exists)

Before 2NF Player Inventory

player_iditem_typeitem_quantityplayer_rating
1amulets2intermediate
1rings4intermediate
2copper coins30beginner
3shields3advanced
3gold coins18advanced
3rings7advanced

Improved 1NF Player Inventory

Player

player_idplayer_rating
1intermediate
2beginner
3advanced
4beginner

Player Inventory

player_iditem_typeitem_quantity
1amulets2
1rings4
2copper coins30
3shields3
3gold coins18
3rings7

3. Third Normal Forms (3NF):

Every non-key attribute in the table should depend on the key, the whole key or nothing but a key. Remove transitive dependency

Before 3NF Player

player_idplayer_ratingplayer_skill_level
1intermediate4
2beginner3
3advanced8
4beginner1

Dependency Flow

Player_Id → Player_Skill_Level Player_Id → Player_Skill_Level → Player_Rating Transitive Dependency

Improved 3NF

Player

player_idplayer_skill_level
14
23
38
41

Player_Skill_Level

player_skill_levelplayer_rating
1beginner
2beginner
3beginner
4intermediate
5intermediate
6intermediate
7advanced
8advanced
9advanced

4. Fourth Normal Forms (4NF):

Multivalued dependencies in a table must be multivalued dependencies on the key

Before 4NF Model_Colors_And_Styles_Available

modelcolorstyle
tweetyyellowduplex
tweetyyellowbungalow
tweetyblueduplex
metrogreyhigh-rise
metrobrownhigh-rise
metrobrownmodular

Improved 4NF

Model_Colors_Available

modelcolor
tweetyyellow
tweetyblue
metrobrown
metrogrey

Model_Styles_Available

modelstyle
tweetyduplex
tweetybungalow
metrohigh-rise
metromodular

5. Third Normal Forms (5NF):

5NF removes redundancy caused by complex join dependencies. A table should be split into smaller tables if it can be perfectly reconstructed by joining them together.

logo

It was great having you here, my inbox is always open whether you have a question, a project in mind, or just want to say hi, I'll get back to you!

Available for work

© 2026 Mohd Ubaid Khan. All rights reserved.