Read my highly-acclaimed tutorial on the Three Normal Forms.
Download a printable PDF version of this tutorial.
Then come back here and leave a comment, if you want.
For the record, I don’t have any tutorials on 4th Normal Form, 5th Normal Form, Boyce-Codd Normal Form, or any other Forms (normal or otherwise) you might wish to ask about. Thanks, and happy reading!
Excellent explanation with well understandable examples throughout, that even a layman can understand.. I didnt lose interest in reading at any point of time. Awesome approach to explain the 3 forms of normalization. Thank u so much..
Really very usefull.I read many documents and websites,but I had confusion.After reading this I came to know the concepts very well.Thanks a lot.
Very useful documnent, finally i understood normalization… Thanks a lot…
Excellent explanation. Awesome approachb to explain the 3 forms of normalizaition. Thank you very much.
yup. This help’s me a lot with out any confusion.
Extremely superb, outstanding explanation of normalization.You truely have boosted my confidence about normalization.I’m so thankfull to God for the guys like you who break things down for others to understand them clearly and perfectly.Your tutorial is outstanding..Keep up the good work.May the great God bless you with more understanding to touch the hearts of other programmers!
It was really helpful. Thanks for great explanation.
Brilliant explanation. Thanks for making this so easy to understand!
it was really awesome……….it has covered each and every single speck of normalization
I have been trying to understand this normal form stuff from quite a number of years, but used to forget it – because I had never understood it in the first place..
I stumbled upon this article today, and I didn’t understand this on the first go either. I read it once again later and everything was crystal clear…each step has been explained so clearly which is what makes the difference between this article and the articles that I have read elsewhere.
Now, the concept stays clear in my mind and I believe I an spread the word / knowledge about Normal Forms to others who are struggling!!
Thanks for the pain that you have taken in putting up this article.
I could never understand the 3 Normal Forms the way i have understood now……thanks a ton. 🙂
I clarity with which you have explained the example, with a little bit or humour and the comments when moving towards the next step is amazing. My reactions were exactly what you wrote there. 🙂
Till date…..i havent read such a good article on 3 Normal Forms……..it has everthing ,…..great examples, simple explanations…………HATS OFF.!!!
KEEP IT UP ,.!!!
Apologies if this has been submitted before. When I click the submit button there’s no indication of the message being submitted.
3″ Red Freens are going for $12.00 whereas 56″ Blue Freens are going for $3.00.
I’m going to buy up all the 56″ blue ones, cut them into 3″ sizes, paint them red and corner the freen market! Who’s with me?! 😀
When I become a millionaire I’ll buy you a freen (only a 3″ one though).
Seriously though… Excellent tutorial. Thank you for the time and effort you put into it.
Very good tutorial…For a long time, I couldn’t find a good site to explain normal forms…Very very nice!!
I really appreciated the step by step explanation. It helped me see the process clearly. Thanks!
This could be the most concise and clearest article to explain database normalization. I took database course in college years ago, but I forgot the knowledge. This short article quickly refreshed my knowledge in 20 mins. Thank you so much.
WOW after lectures at campus AND reading my textbook over and over i still couldnt understand normalization. but after reading this im sooooo happy because im ready for my exam:D:D:D thanks alot for this Fred you’re a guru:D
I had to congratulate you on such a very good article, I see I am merely repeating what so many others have said… I’ll say it anyway. Of my MANY readings of this topic, yours is by far the clearest and the only one I’ve seen that I’d recommend. Thank you very much for taking this time!
It is Really Very Helpful
it is very good. after reading this we will get clarity on Normal forms
it is very good. after reading this we will get clarity on Normal forms
At last! Someone who actually explains the subject in terms a newbie can relate too!
WOW!! Such a nice material… Great job by the author to make learning easy…Thanks… My Best Wishes to the author
It is excellent material, clearly explaining the concept without any ambiguity. Great work.
The 3NF what u explained with example, i am not finding and distinction between 2NF and 3NF.
As how we have divided Order_id and Iteam_id from our main table during 2NF we could have obviously separated Customers_id as customers info is dependent on Customer_id. Same as how we divided Iteam_id…..
Please clarify this doubt…
Many people have, over the years, both in these comments and in private messages, objected to my contention in the tutorial that ITEM_PRICE leads to failure of Second Normal Form. I always go back and forth about this, and I generally tell people something like “it depends on the business rules, it’s not a matter for Normalization to solve, I wanted to keep things simple,” etc. Enough people have pointed this out that I finally decided to spell out the problem in the tutorial itself, under the NF2 discussion. Hopefully this will not prove too confusing for beginners, while at the same time keep the advanced readers satisfied!
Wonderful Article. One of the main things that differentiates this article from the rest is its practical and simple yet pragmatic explanation of the 3NF theory with apt lucid example.
Author sounds to be a great teacher as well a practitioner. This sticks in your brain forever. Keep up the good work.
Awesome article.. Loved every bit of it..
No doubt very good example, understand the 3NF now ..Keep it up
Its really awesome article. Very clear and concise cotent about normalization with some very good and easy examples.
Excellent website and tutorial, really helped me to understand each normal form as I was having trouble before.
Very well done; one of the best treatments of NF I’ve ever read. Thank you.
Very helpful, thank you!
I was stuck in a mental loop and you helped me out of it. THANKS!
I have not seen such explaination before
Thank u so much
Thank you. I was struggling with the normal forms, you saved me. 🙂
That was a nice article to get confidence about the topic..especially for freshers like me.
Thank you!! Best explanation of normal forms I have ever read!!
Very nice. Excellent. The only thing I would question would be that a customer could have zero orders. In order to exist as a customer in your system, they must have placed an order at some point. So, the modality should be one.
That’s a really good point, Paul. You have inspired me to write a whole blog post about why it’s a good point. Meanwhile I have updated the tutorial (Figures J and J.1) per your suggestion. Thanks!
Where it says;
What do we do with a table that fails Second Normal Form, as this one has? First we take out the second half of the concatenated primary key (item_id) and put it in its own table.
All the columns that depend on item_id – whether in whole or in part – follow it into the new table. We call this new table order_items (see Figure D).
There isn’t a table (yet) with itemID alone with it’s dependent attributes. Figure D shows a table with ItemID and its dependents but OrderID is also in it. Very confusing for newbs.
Excellent overall. I spent years working on order systems, and this was a very good introduction to data modeling for people.
I would disagree, however, with the statement that an “order_id identifies the *invoice*…”. An order and an invoice are entirely different things.
This is like Normal Forms for Dummies! I completely get primary and foreign keys, now, as well as how to determine them. I even went a step further while reading and figured out the change in the ERD when you consider item prices change over time. However, I thank you for not confusing the Holy crap out of me while trying to teach the basics. My only wish is that you would have tackled Unique Keys. I’m still lost with that…
Thank you very much. Just beautiful …
This was an awesome experience. Very well explained and very well understood. Thank you. Saved my exams.
A very good, clear review/refresher on some database principles I learned about 20 years ago but have not needed to use until recently. Thank you!
Very good. Nice explanation(s) with diagrams just at the right points to show what you were talking about.
I’ve used databases before – but this really crystalised what it was I was doing!