Cialis Soft For Sale Miacalcin No Prescription Buy Feldene No Prescription Buy Online Zerit Buy Viagra Soft Online Dilantin For Sale Lanoxin No Prescription Buy Elimite No Prescription Buy Online Calan Buy Lozol Online Relafen For Sale Eurax No Prescription Buy Lamictal No Prescription Buy Online Cialis Soft Tabs Buy Capoten Online Risperdal For Sale Motrin No Prescription Buy Cialis No Prescription Buy Online Meagan Buy Cardizem Online Lynoral For Sale Casodex No Prescription Buy Bactroban No Prescription Buy Online Maxalt Buy Ultram Online

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!

94 Responses to “3 Normal Forms Tutorial”


  1. 1 Hemant Tandon

    I am a DBA, now reading this article really thrilled me.

    I loved every peice of it.

    Doubt which came to me as a DBA regarding performance were addressed beautifully.

    All possible doubt were covered and beautifull knitted, because of which reader don’t loose interest.

    Superb Keep it up.

    Also, I wanted to have a PDF for future reference that was also taken care.

    Its suits my requrement completely.

    Thank You :)

  2. 2 Sarah

    OMG…After reading sooo many books, asking questions to the instructor, and viewing multiple websites, I still was confused on what to do for the 3 norms of a database. Your tutorial explained exactly what I was supposed to do without all that extra stuff. Cheers!!!

  3. 3 Yugkirty

    Hey!!

    I have been having so many confusions in understanding normalization, but after going through your tutorial I feel confident that I am now clear on the topic.

  4. 4 Jeff Lindberg

    Thank you for the excellent step-by-step discussion. I had used these concepts for some time but never really understood how they related to the “3rd normal form” and its concepts.

    Thanks!

  5. 5 Swaroopa

    Dear Fred,

    Aftr so many years I really found a good stuff of explanation on the Three Normal Forms.Got my all doubts on Normal Forms cleared. Thanks a lot

  6. 6 Anu-Ramesh

    Hello Fred,

    The example you gave is really nice.
    Thank you very much for providing such a good example.
    Keep continuing the same work.

  7. 7 RRJoshi

    Hi Fred,
    I referred numerous books and sites to understand the three forms of Normalization.The best part about the example you have provided is that from the 1NF till 3NF,you have followed/explained the same example,you have explained it layman’s terms and using cell#,row# etc.This is one of the best explanatory examples I have ever come across.Thanks a Lot!!Good Job!

  8. 8 sakshi

    Good Tutorial. Clearly explained the three normal forms. Now even if I want, I cannot forget it. Good Job!

  9. 9 amit

    it is dam good and you explained every step in the easiest way thank you for the great healp, its realy best

  10. 10 GauravChawla

    Very good article.Was really very helpful.

  11. 11 Shilpa M

    nice article for beginners, really good

  12. 12 bhagyashri Agate

    Very well explained! Helped a lot to clear the basic concepts of database normalization

  13. 13 Laterlus

    Thanks, by far the best explanation or normalization I’ve ever seen.

  14. 14 michael

    thank you Fred for one of the best tutorials i have ever read.
    i read many of your other posts as well, including the cat stuff.
    i especially like the performance monitoring and the o_direct and dt utility.
    thanks again, it’s the kindness and knowledge of persons like yourself that helps me stay employed. please keep it up, ( i also have cats to feed, (kids too)):]

  15. 15 peace

    i need employee management system softwares tutorial
    in my mail id babi_sharma12@yahoo.com

  16. 16 peace

    hi
    i wanted to know about human resource management system about banking
    in programming idea

  17. 17 Gagandeep Singh

    The idea is awesome and it is easy to understand the concept of normalisation.Really i am inspired by the article.It removed all my doubts related to Normalisation.

  18. 18 Priyabrat

    I am a database developer.
    This tutorial gives a outstanding explanation of the concept of normalization. The steps and approach illustrated here can help normalize realtime databases.

    Great work Man!!!!

  19. 19 java boy

    Stunning. Outstanding. Perfect!

  20. 20 Eddy

    Concur with your reviewers – You are spot on Fred and everything is soooooo clear i can’t beleive how i stumbled on your site after going through so many articles on Normalization that were “Greek” (no pun intended for the wonderful people of Greece)to me.

    God bless! you even have humour! i hope you are a teacher. I have never given a review online, but you surely deserve it and i could not wait to finish the article to post one.

  21. 21 S.Gajalakshmi

    There are no words to express my abundant thankfulness to you. My search has ended I can say.

  22. 22 sam

    this was really very useful article. but i think theres no need of having 2 phases for the decomposition of the second normal form. it can be done in one phase i guess. thanks.

  23. 23 Chan Beauvais

    A very good article.
    But you miss one minor detail.
    The price in the item entity may change over time.
    I consider it acceptable to keep the item price in the order detail, or have a price change many side relation to the item.
    The price exists independently at the time the order is placed or fulfilled, depending on business rule.

  24. 24 Srikanth

    The example and explanation are really helpful. Thanks for posting this article.

    Thanks

  25. 25 phaneendra

    This is very good material for normalization. Thanks to publisher

  26. 26 Harsha

    Awesome description !!!!

    Normalization is explained very beautifully !!!!

  27. 27 vivek

    Simply superb . (No charge for awesomeness :-) )

  28. 28 Venkateswarlu S

    hai dear,

    I’am really thankfull to you this is a nice article to go through for the one who want to know clear description about NF’s. nice work dude.

  29. 29 ioutside

    Even though there are plenty of praise posted already, I still have to add mine: excellent tutorial!

    I’d like to see similar tutorial on explanations beyond 3NF in the future.

    Thanks!

  30. 30 sanju

    Gud work…
    Thxs for the Post

  31. 31 manibalan

    ya its realy nice..great work..i am totally blank in normalaization now i got a clear idea oon normalization…nice

  32. 32 Debnil

    The best Example I have ever seen. I dont know who has prepared this but hats off to you !!!!!!!! you have a very good idea on this !!!! Keep it up Boss….

  33. 33 Tej

    Understanding made very easy………………………. :)
    3 normal forms are explained besutifullly……….
    Thank you Fred

  34. 34 Sudhi

    BEAUTIFULL!!. This is an example on how all the tutorials should be like. Excellent contents.

  35. 35 Al

    Wow thanks for the tutorial, I kinda understood the concept, but the terminology escaped me. Thanks!

  36. 36 Manoj Kumar

    Salute to the author, This article shows you can simply make understand others the Complex things in easy manner if you know your job.. Thank you so much for this…

  37. 37 ranjan

    Fred

    For the first time someone explained exactly what a Tuple means. Otherwise all reputed writers either define it by some set notations and bla bla or they just call a row as a Tuple. Your article has been one of the best reading that I ever had and your style just suits you to be defined as a “Mentor” or a “Guru”. This is how a Guru is supposed to explain. You have pulled another life-long student for yourself. Thank you very much.

    regards

    ranjan

  38. 38 David Crawford

    Apart from my business, I teach advanced database design to guys who reside at Her Majesty’s Pleasure and are rehabilitating, and I have found that this protocol is excellent. Really good, and rare to find such a clear description of the process required to build a relational database.

  39. 39 Fred Coulson

    David,

    I am more than happy to assist with Her Majesty’s pleasure in any way I can!

    Thanks for the kind remarks.

  40. 40 Helder Lourenço

    I´de like to see some problems solved here… if price or description of itemid changes over the time, and we go back to see/edit invoice details, we get the new values, not the ones that made up de invoice first time. Even for beginners this is not a system we should use because invoice history is forgotten. But anyway this is a great tutorial for NF.

  41. 41 Sunil Patil (Indore->India)

    Excellent, Normalization is explained very beautifully !!!!

  42. 42 reader

    Simply superb explanation…. hats off to u..

  43. 43 Cee Washey

    Thanks!! Finally all my “huhs” about normalization have been answered. After reading the article I said God bless you for putting it out there. Keep up the good work.

  44. 44 ashish leuva

    so much simplified explanation !!
    Its really cool !!

    Thanks a lot !!

  45. 45 Rahul

    Off course an excellent tutorial. But I expect a little bit more clear explanation on 1st normal form. IT does not seems to be sufficient.

  46. 46 Rahul

    One more thing. May you kindly contribute your tutorial over higher levels of normalization? It would really be helpful. Also, some more examples will surely help the learners.

  47. 47 Sally

    You light my road to do database normalization. Thank you so much for the clearly explanation how to do it. Helpful!!!

  48. 48 Robert Schmid

    Databases have always been a weakness for me as a developer. I can sort-of-intuitively get things in to 3NF but I could never explain why. Now I can, thank you! Could please now do 4-6 Normal Forms as well?

  49. 49 blank template

    Hi I can say your guideline it was quite excellent cause it was quite clear in term of explanation I can say. It was quite completely awsome technique. Thanks for a good article. Best.

  50. 50 Tommy

    Well summarized, Straight to the point and very helpful indeed!
    An infant could understand normalizations reading this material.
    Thanks. Your the best!

  51. 51 Ankur

    nice work

  52. 52 Jay

    What my professor couldn’t do in 2 weeks of lecture, was accomplished with this tutorial.
    I finally “FULLY” understand how the 3 normal forms work, and are carried out.
    Well done, easy to follow and appreciated greatly!

  53. 53 kailash

    So nice,This is very cruicial,I am so impressed with this article.

  54. 54 Shikha

    very nice tutorial.

  55. 55 pavan

    it was great… thanks..

  56. 56 Prathibha

    Hi,

    Thanks for making the explanation of normalization so clear and simple.I loved every bit of explanation.Your efforts is greatly admired.

  57. 57 Prachi

    Really very well explained..

  58. 58 Sham

    Awesome work!

  59. 59 daz

    Thanks, this was really help, keep it up…

  60. 60 Sakthi Kumar Pandian

    Its really good.step by step explaination is very nice to understand clearly..

    Thanks.

  61. 61 Raja

    crisp , to the point , amazing clarity . Simply superb :) .

  62. 62 Sanath

    Very clear presentation… Great work…

  63. 63 vivek arya

    OMG…. Despite reading texts by big names (Korth, Chen etc) i couldn’t clear it out that what was mormalisation. But reading your text has cleared every concept of mine regarding normal forms.

    It goes by the saying the most famous books by the most famous authors are generally the most complex.

  64. 64 Hariprasad

    Hi,
    Its a really great article. Every line provides valuable inputs to the readers. Excellent narration.

    Thanks,

    Hariprasad R

  65. 65 Praveen NV

    The example taken and basics of normalization is very clear.Thanks for the info.

  66. 66 Don Saelzler

    With SAP BI, the rules about normal forms are often ignored during ETL, so, the concepts receded in my mind as I use(d) the model provided by SAP. Reading this made the concepts fresh again, and provided ‘handles’ better than I had before. Thx.

  67. 67 Thiyagu

    This is definetly an excellent way of putting the Normalization concepts in a Novice Mind. Well Done Author !

  68. 68 Raj Kumar

    this tutorial helped me alot,its simply outstanding!!!!

  69. 69 Ankush

    Very well framed tutorial.

    Hope to see another tutorial for other normal forms too.

    Great work!!!!!

  70. 70 Roberto F.

    Thank you very much for your explanation in your tutorial, with the examples you have given clarity to this complex subject.

  71. 71 Sanjay

    Absolutely brilliant… Thank you so much

  72. 72 Charles

    THis is the most informative tut out there! I struggled with this concept and my textbook never made any sense, thank u. Like really, THANK YOU!

  73. 73 karthikeyan.p

    simply superb….nice work…thanks

  74. 74 Pritish Kulkarni

    A very nice article to explain 3 NFs. The step by step process makes it really easy to understand. I have been working as DB developers for several years and although I knew what the 3 NFs were, I have not found anything that explains the NFs in such simple words….

    I agree with a point made by Chad though. In real world the price of an item can change in the due cource of time, so there is nothing wrong with keeping the price in the order_item table..

  75. 75 Leann

    I am a student just learning this stuff. After all the reading I’ve done on this for the beginnings of a class project, this is THE BEST tutorial I’ve come across and helped sooooo much! Thanks!!

  76. 76 Anoop

    Really dear its veru usefull.
    Thanx for providing this type of such a gud doc.

  77. 77 Anoop

    Really dear its very useful.
    Thanx for providing this type of such a gud doc.

  78. 78 James Bragg

    With regard to price:

    Sevral have commented on how they would include it back on the items table. however this breaks NF3. I think we all agree, while this model is a good start, it’s far from ready for the real world. you have to consider time and how you want to deal with updates. I’d use a Cange History table on the price and address info as well.

  79. 79 Ragesh

    Good one…Keep up the good work…:):D

  80. 80 Bob Schmidt

    Thank for this and trusting you will not object, I am going to post a link to your pdf in an email I am distributing here at work.

    Your work is far better than what is found on Wikipedia, I would love for you to get it linked there. It is better than the top 5 links found in Google.

    I would like your opinion on a this: your model would still be in 3NF if you were to drop the INVOICE entity and instead have a simple m:m between order line and customer. I know this is not customary.

    My reasoning is:
    1) Nothing in the forms dictates that we eliminate repetition of a data value. And I do think that mulling this over is worthwhile.
    2) The only consequential fact is that the customer wants the item.
    3) The implementation of this model has resulted in false rules in that some order processing systems will not allow order lines to be moved between orders.

    If it is true that the ORDER is composed of lines such that a different set of lines constitutes something different, then your model stands.

    Of course, this is my opinion and I would love a response.

    - Bob Schmidt

  81. 81 Bob Schmidt

    Correction…
    I would like your opinion on a this: your model would still be in 3NF if you were to drop the ORDER entity and instead ORDER_LINE resolves the m:m between CUSTOMER and ITEM. Order date repeats on each line as does order number. Order number is not a key, just a tag. I know this is not customary.

    My reasoning is:
    1) Nothing in the forms dictates that we eliminate repetition of a data value. And I do think that mulling this over is worthwhile.
    2) The only consequential fact is that the customer wants the item.
    3) The implementation of this model has resulted in false rules in that some order processing systems will not allow order lines to be moved between orders.

    If it is true that the ORDER is composed of lines such that a different set of lines constitutes something different, then your model stands.

    Of course, this is my opinion and I would love a response.

  82. 82 Nisha

    Articale is too good… The concept has been explained in so neat fashion. Kudos….
    Would have been nice, if we had continued with BCNF and 4NF too…

  83. 83 Snake

    Thanks! Neat little article this. Using it to study for my exam !

  84. 84 Syed Jahangir Zafar

    realy i never seen this type of top level notes before at any where. keep it and moves to describe the database more topics like that.

  85. 85 Mahesh

    It is a wonderful article.It really cleared all my doubts in normalizing table.I guarantee that who ever reads this article must leave some comments.

    Thanks
    Mahesh

  86. 86 Ravi

    It’s a well organized article which coverup the whole content of normalization…..

    Thanks

    Ravi..

  87. 87 Chatura

    Great Work!!!!

    Very useful article.Keep it up the good work

    Thank you

  88. 88 Pretty Geeks

    Nice and detailed article to clear concepts on urgent basis especially when have short time to prepare for Database interview. ThaNks

  89. 89 Nilesh

    Hi,

    This is very good article.It clears my cocept abt normlisation.

  90. 90 Mare

    I understand what 3rd normal form is and when I have had to perform an ETL function on a text file with repeating groups, I have always used and ETL tool (cognos’ data manager) that has a pivot functions that creates this process perfectly. However, I have never written the code from scratch to do so (kinda spoiled with the great ETL features),,but now I would like to know what is the SQL do perform this “pivot” function, i.e. I have a record that looks like:

    ProductNbr, Units, Jan, Feb, Mar, Apl, May…

    And I want to normalize it to be:

    Productnbr, Month, Units….

    This would be a miracle if you could show me what SQl could do this.

  91. 91 Langdon

    Excellent ! I understood the real concept of Normalization only by our step-by-step procedures in it. You pulled the features of normalization at each step . May God provide everything you needs ! All the Best ! :)

  92. 92 James

    Thanks, Fred! Much easier to understand the first 3 NFs now. I think the examples and discussion are well-thought out and make a real contribution to demystifying normalization.

  93. 93 khl

    Jus love you for the way 3NF was framed here…. Thanks Fred! Need more such topics which would go for discussion.

  94. 94 Pritam

    Pretty elaborate explanation of Normalization. I just loved it. Thanks

Leave a Reply