The Database Design Resource Center



The 5 Normal Forms | Denormalization


Database normalization - Creating high performance from the start.

Database normalization is not a theory - It is a set of clearly defined rules that, when followed, without exception should give you a much better performing finished system right from the start of your analysis phase.

However, due to the language used in formal definitions of the different Normal Forms, many people have had difficulties in understanding the full concept of database normalization.

And I have to agree; understanding relational algebra, or the formal descriptions of the Normal Forms (which actually are neccessary to cover all aspects), doesn't make it easy.

However, the fun part of it is, that even without the theoretical conciousness of normalization theory, most people normalize their ER models intuitively: You know that the name of your customers should only appear once, and in one place; the CUSTOMERS table. You also know that for each order line, you do not have to calculate the value of the sale. All this, that you actually know, and intuitively practice, is database normalization. We humans tend to be effective, even if we are not always aware of it.

The only problem with this approach, is that when you are not operating in a methodical manner, you might slip a little here and there. That's when problems enter into your analysis and/or design: It is no longer consistent throughout the whole model.

Actually, if you participate in discussion forums, and read all messages for help on various problems, you can see that many of the problems are relating to results of poorly designed and/or denormalized databases.

In today's database theory, we operate with 5 Normal Forms; 1NF through 5NF. In addition, we sometimes refer to Boyce/Codd Normal Form (BCNF), which is a "higher grade" of 3NF, and Domain/Key Normal Form (DKNF), which focuses on database-side constraint definitions. Actually some people are now also talking about a 6th Normal Form, 6NF: Basicly, tables are decomposed into even smaller tables, containing an identifier plus one data column. I won't be discussing that further for now; maybe later ;-)

In the following keynotes, taken from my eBook on Database Normalization, I give you the formal definitions of the 5 common Normal Forms, and a consideration of disadvantages of denormalization:

  • Formal definition of the 5 Normal Forms In this keynote, I present to you the formal definitions of the 5 common Normal Forms. Quite hard to grasp? In my eBook I have used a much more understandable language and E-R examples, or at least, so I think.
  • Normalization, Denormalization and Performance Denormalization is almost as popular a term as normalization. It is widely assumed that to denormalize a database is a means of computing (derived) values and store them in the database, or store the same information in several places in order to 'help' the system to perform better. This keynote makes you aware of the perhaps not so obvious dangers in such a process.

Return to Database Design home


Exclusive interviews with:
Steven Feuerstein, PLSQL expert
Donald Burleson, Top IT consultant


Free eBook

Subscribe to my newsletter and get my ebook on Entity Relationship Modeling Principles as a free gift:


What visitors say...

"I just stumbled accross your site looking for some normalization theory and I have to say it is fantastic.

I have been in the database field for 10+ years and I have never before come across such a useful site. Thank you for taking the time to put this site together."

Mike, USA

Read more Testimonials



Database Normalization eBook:


Database Normalization eBook




Copyright © www.databasedesign-resource.com / Alf A. Pedersen
All rights reserved.
All information contained on this website is for informational purposes only.
Disclaimer: www.databasedesign-resource.com does not warrant any company, product, service or any content contained herein.

Return to top

Copyright acknowledgement note:

The name Oracle is a trademark of Oracle Corporation.
The names MS Access/MS SQL Server are trademarks of Microsoft Corporation.
Any other names used on this website may be trademarks of their respective owners, which I fully respect.