3 Normal Forms Tutorial

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!

142 Responses to “3 Normal Forms Tutorial”

  • 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.

  • Excellent article

  • 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.

  • Awesome 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.

  • Nice tutorial.Thanks.

  • 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.

  • Sankarshan V KAtti

    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!

  • Amazing….
    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!

Leave a Reply