Over a million developers have joined DZone.

Normalisation – A Technique to Design a Database System

· Database Zone

Sign up for the Couchbase Community Newsletter to stay ahead of the curve on the latest NoSQL news, events, and webinars. Brought to you in partnership with Coucbase.

The Normalisation is a data analysis technique to design a database system. The Normalisation allows the database designer to understand the current data structure within an organisation. The end result of a normalisation is a set of entity. We remove the unnecessary redudency by normalising the database table.

When we talk about normalise a database table practically there is a procedure to perform this. To normalise a table we need to proceed through various steps. These steps are called Normalisation Form. The Normalisation Form of NF are known as 1NF, 2NF, 3NF, 4NF, 5NF. Generally we follow the procedure upto 3NF as many of tables get normalised after 3NF. but sometimes we need to perform higher NF. Here are the steps to normalised a table:

Step 1: First we convert the data source into unnormalised form(UNF).
Step 2: Transform the unnormalised data into First normal form(1NF).
Step 3: Transform the 1NF into 2NF.
Step 4: Transform the 2NF to 3NF.

After 3NF if the data source is still in unmormalised form then we perform the following steps.

Step 5: Transform 3NF to Boyce-Code Normal Form(BCNF).
Step 6: Transform BCNF into 4NF.
Step 7: Transform 4NF to 5NF.

Normalisation is a bottom-up technique for database design, normally it is based on existing system.

The Getting Started with NoSQL Guide will get you hands-on with NoSQL in minutes with no coding needed. Brought to you in partnership with Couchbase.


Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}