1st, 2nd and 3rd Normal Form (Database Normalisation)

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 พ.ย. 2024

ความคิดเห็น • 341

  • @PsychicSploob
    @PsychicSploob 3 ปีที่แล้ว +671

    In so many courses, they use ridiculous language almost to make the information as indigestible as possible. Thank you so much for making an effort to convey a cohesive idea. Academia should learn a thing or two from you.

    • @learnlearnscratch
      @learnlearnscratch  3 ปีที่แล้ว +46

      I'm glad it was helpful! :-)

    • @2NormalHuman
      @2NormalHuman 2 ปีที่แล้ว +21

      agreed!! in university they would spend an hour to explain it, while still making the students confused

    • @genjioto
      @genjioto 2 ปีที่แล้ว +15

      OMG I agree. Its sucks because database and design is super important but is the dryest material ever.

    • @alexgonzalez-hy6xe
      @alexgonzalez-hy6xe 2 ปีที่แล้ว +1

      Need advice for normalisation of a database for purchases in a book store
      How would I normalise a table in 1nf 2nf and 3nf that has details for a customers purchase of different books-including Author, title, purchase date, price. There is 7 different books, with all the information above for each of the books
      Also for the purchaser there is contact information such as name and address. Can someone please explain this properly or give me an example. Thanks!

    • @agt5jx87
      @agt5jx87 2 ปีที่แล้ว +1

      Thank you! My course material made this needlessly confusing.

  • @badwolf3065
    @badwolf3065 2 ปีที่แล้ว +203

    Thank you. My teacher spent over an hour confusing everyone instead of just laying it out simply. You saved me from that confusion.

  • @harrisali7619
    @harrisali7619 ปีที่แล้ว +12

    Bro came in clutch night befor exam, ily

  • @genjioto
    @genjioto 2 ปีที่แล้ว +92

    This is actually an extremely amazing, if not the best breakdown of the three normal forms by far.

  • @yin3229
    @yin3229 ปีที่แล้ว +2

    Its incredible how much easier things are to understand when they are explained in simple terms rather than overcomplicated messes full of jargon.

  • @TCamp72a
    @TCamp72a 3 ปีที่แล้ว +72

    Stopping the video at 5:14 to make this comment. You put the first table into 1NF, but then to move on, you switched to a completely different example. From a viewer's perspective, it would have been more helpful in creating understanding to have the same example follow through all the forms of normalization. I'm not ungrateful... I truly appreciate this video! It's just a suggestion. :-)

    • @studious_viewer
      @studious_viewer 2 ปีที่แล้ว +2

      its done tho, can't simplify further

    • @CausticTitan
      @CausticTitan 2 ปีที่แล้ว +18

      @@studious_viewer I believe that Tracy means to say that he should have chosen a single example that was unstructured which could then move all the way to total normalization.
      I think that this would actually be better done as a "part 2" so that each transition can be viewed both in a vacuum, but also as a complete series of transformations.

    • @bucztechph
      @bucztechph วันที่ผ่านมา

      I like it that way, because it gives a little assignment for us to solve for the first example table and make it a 2nf and 3nf

  • @gimmickmusic8827
    @gimmickmusic8827 3 ปีที่แล้ว +9

    You summed up and explained in 12 minutes what my instructor couldn't do in 3 hours. Thank you so much.

  • @navrajbains9034
    @navrajbains9034 3 ปีที่แล้ว +48

    Simple explanation and examples. What a textbook can't do in ten pages is done in under 12 minutes. Thank you for taking the time in making this video, please keep up the great work!

  • @mantasgumbelevicius2891
    @mantasgumbelevicius2891 2 ปีที่แล้ว +1

    Liked this tutorial. As Michael Scott would say: "Explain me as I am 5" - You just did it. Thank you

  • @g0nk_droid
    @g0nk_droid 10 หลายเดือนก่อน +1

    I was banging my head on the desk trying to understand it from my textbook but this really cleared things up, great video

  • @lazolabucwa8821
    @lazolabucwa8821 ปีที่แล้ว +2

    The one tutorial to rule them all. Thank you so much for this super easy and short explanation.

  • @CLEOCHAN183
    @CLEOCHAN183 2 หลายเดือนก่อน

    The best and most concise explanation for database normalisation I've ever watched!

  • @caomengde1645
    @caomengde1645 2 ปีที่แล้ว +2

    I have seen lots of explanations about table normalization and I believed this is the best of them all.

  • @GoodDeedsLeadTo
    @GoodDeedsLeadTo 2 ปีที่แล้ว

    Nobody made it simple to understand like you, millions thumbs up for you, but there is no transitivity seen between the non prime attributes in 3NF. Thanks

  • @ElvisANgoh
    @ElvisANgoh ปีที่แล้ว +1

    I don't want to get ahead of myself, but I think you got the gift of teaching. Can't wait to check out more of your videos

    • @learnlearnscratch
      @learnlearnscratch  ปีที่แล้ว

      Thank you very much for your comment! It's greatly appreciated! 😊

  • @cerysdunning9327
    @cerysdunning9327 3 ปีที่แล้ว +26

    you saved me with this, i was so stressed about it during my lessons

  • @bettercallmaul778
    @bettercallmaul778 5 หลายเดือนก่อน +2

    omg bro you are like a water in the desert I was just about to give up on my assignment and saw your video thank you so much!

  • @happyclapper7620
    @happyclapper7620 2 ปีที่แล้ว +7

    This is so much easier to understand than in my university course. My lecturer spends 2 ours on a topic overcomplicating it and throwing in fancy terminology. This is clear and concise and easily coneys the topic. Thanks :)

  • @MrACrazyHobo
    @MrACrazyHobo 4 ปีที่แล้ว +42

    Very good tutorial. Definitely the best tutorial Ive seen so far

  • @ramy2mi290
    @ramy2mi290 2 ปีที่แล้ว

    Had a 2 hour lecture and couldn't understand what you just explained in 10 minutes, thanks so much.

  • @gregmattia2958
    @gregmattia2958 8 หลายเดือนก่อน

    literally the only video on youtube that explains this clearly. Thank you good sir

  • @jacksonzamorano
    @jacksonzamorano ปีที่แล้ว

    This was 2 50-minute lectures in my Database class, and it still didn't make sense. This is a 11 minute video which clearly explains what each form is and how to make a database comply to a form. Thank you.

  • @jade-j
    @jade-j ปีที่แล้ว +1

    Thank you so much read this in a textbook 3 times and it never got clearer! This really helped out

  • @edwardlungu2446
    @edwardlungu2446 ปีที่แล้ว

    it was so hard for me to comprehend this topic....but you have nailed it this is the best explanation ever on normalization . thank you so much

  • @oscargalvez7
    @oscargalvez7 10 หลายเดือนก่อน +1

    Wow, this was so simply explained, it could be taught to kids in preschool 😬💯

  • @ioannisp5725
    @ioannisp5725 ปีที่แล้ว +3

    waittt, a simple explanation? Thats rare. Bless you g

  • @Dev_Jet
    @Dev_Jet ปีที่แล้ว +1

    A simplified explanation for this topic, which may appear complex to some, including myself. I really appreciated this tutorial, thank you!

  • @RavenFelman
    @RavenFelman ปีที่แล้ว

    From all the tutorials i've watched regarding this topic, this is the only one that made me understand completely the 3 Normal Forms.
    Thank you so much ♥

  • @steadmac
    @steadmac 2 ปีที่แล้ว

    So easy to understand. I spent way too long being confused by a text book and you helped me grasp the concept in a fraction of the time I spent reading. Plus...your voice is nice to listen to.

  • @robpatty1811
    @robpatty1811 2 ปีที่แล้ว +2

    This is such a clear and concise breakdown. Was trying to learn about DB normalisation from a textbook and it was so boring. Thank you very much for making this video.

  • @Mr..Books2
    @Mr..Books2 3 ปีที่แล้ว +42

    Good explanation ....But I feel if u had used a single example would be great.... deducing it from 1NF to 3NF

  • @ricardolopez514
    @ricardolopez514 2 ปีที่แล้ว

    Pretty neat, Spent hours trying to understand the material provided by the university, even failed a test. just watched this video and now understand 1NF, 2NF and 3NF.

  • @lmaoiwaslikelmao1132
    @lmaoiwaslikelmao1132 3 ปีที่แล้ว

    Easily the best explanation and example ive seen on youtube

  • @janalombard9032
    @janalombard9032 4 ปีที่แล้ว +2

    The 1st Video that explains the concepts in a way that makes sense to a beginner. Thank You!!

  • @lucafrancis5572
    @lucafrancis5572 ปีที่แล้ว

    Really great video. Not excessive, explained everything I didn't understand in perfect clarity. Will be watching your channel in the future!

  • @streetcraft_creativity
    @streetcraft_creativity ปีที่แล้ว

    Thank you. My teacher took 6 months trying to explain this but still didn't understand him, but you took less than 15 minutes

  • @MrLewislauyik
    @MrLewislauyik ปีที่แล้ว +1

    So clear. You saved my mid-term exam.

  • @25756881
    @25756881 2 ปีที่แล้ว

    The best explanation I've read so far.

  • @mehulkasliwal7036
    @mehulkasliwal7036 ปีที่แล้ว

    Thank I god I stumbled upon this video I literally have an exam in 6 hours and this helped me a lot.

  • @jaytaylor2332
    @jaytaylor2332 ปีที่แล้ว

    Love the bullet points. Straight and sweet to the point. Keep up the awesome work.

  • @jess.hawkins
    @jess.hawkins ปีที่แล้ว +1

    Thanks, I already knew how to do db normalisation (I can do it without thinking), but I need to "show my workings" for an assignment and I tend to get lost in the rules of the normal forms, this explanation is a big help! -your mention about splitting first name, last name is interesting, as I've seen people advocate for either approach (splitting, or leaving the full name). I think the best wisdom on the matter is, it depends on whether one needs to access the first name and last name separately or not. If no need, they can remain joined.

  • @typingcat
    @typingcat 2 ปีที่แล้ว

    Finally, normal English video in the search result, not Indian or other foreign accents.

    • @SreenikethanI
      @SreenikethanI 7 หลายเดือนก่อน +1

      did you know that the rest of the world exists

    • @SreenikethanI
      @SreenikethanI 7 หลายเดือนก่อน +1

      shocker, right?

  • @AhmadAli-wu3jj
    @AhmadAli-wu3jj ปีที่แล้ว

    proudly calling you my teacher

  • @bonguthandokhumalo7552
    @bonguthandokhumalo7552 2 ปีที่แล้ว +18

    It would have been much better if you have used one (unstructured) example through out the video, and made use of keys on the 3NF because one person could be a winner more than once in different years of course or names be the same (highly unlikely but possible). Besides that, great tutorial, you made it much easier. Thank you.

    • @SamuelOgazi
      @SamuelOgazi 10 หลายเดือนก่อน

      I agree that using the same dataset from start to finish might have had its own benefits.
      However, from the example you cited, even if the same person with the same name won all tournaments in the same year or multiple years, does it distort the 3NF?
      Won't every record or row still be unique as tournament names and years do the distinguishing?

  • @arvind9438
    @arvind9438 2 หลายเดือนก่อน

    thank you so much, watching this 30 mins befor exam

  • @jakeinator21
    @jakeinator21 3 ปีที่แล้ว +5

    This was so much easier to understand than my textbook, thank you!

  • @jabraham08
    @jabraham08 2 ปีที่แล้ว

    Thank you! Thank you! Thank you! You explained concept in 11 minutes what others couldn't in hours.

  • @pythonatearubyonrails3541
    @pythonatearubyonrails3541 ปีที่แล้ว

    I did not get it until I wrote everything down and drew the tables, then it clicked, thx for the video!

  • @davidcunha7615
    @davidcunha7615 3 ปีที่แล้ว +1

    Great job! I feel like it's easy for normal form to get confusing but you showed it's actually pretty easy

  • @jpgb8126
    @jpgb8126 ปีที่แล้ว

    you actually helped me pass my exam of databases
    thank you a lot

  • @l4chl4n47
    @l4chl4n47 3 ปีที่แล้ว

    I was completely lost with normalisation, thank you for explaining it

  • @hanieh1329
    @hanieh1329 2 ปีที่แล้ว

    thank you after searching tones of source about normalization your description quite understandable

  • @jairojared1
    @jairojared1 ปีที่แล้ว

    I've watched like 5 NF videos and this is the first intuitive one. Thank you

  • @mattiafiore7568
    @mattiafiore7568 3 ปีที่แล้ว

    Seriously the best video on normalization

  • @metalpunk
    @metalpunk 2 ปีที่แล้ว +2

    Thank you for this explanation! I'm retaking a databases course, and the first time around, I had trouble understanding normal forms in lecture or from the verbose section in the textbook. This video, however, is very easy to understand

  • @StevenLouis-p2h
    @StevenLouis-p2h ปีที่แล้ว

    Thank you so much. I think you illustrate it much better than my professor. I think my professor simply wasted my time. From now on, I decide not to attend her lectures any more, but listen to your lecture instead.

  • @FabrizioBianchi
    @FabrizioBianchi 7 หลายเดือนก่อน +1

    4 years later... tomorrow I am going to have a meeting with a colleague from Data Science who disrespected 1NF.
    I don't know who or how is listening to me, but I didn't know anything about this and TH-cam suggested this video in the New for me section of the Home.
    I feel like having buffed up with a side quest before having to beat a boss.

  • @tiffanyvestal3619
    @tiffanyvestal3619 ปีที่แล้ว

    That was much more helpful than my college book. Thank you.

  • @logandonlan3625
    @logandonlan3625 2 ปีที่แล้ว

    This made no sense in my book, but you made it so simple. Thanks!

  • @TidusfromZanarkand
    @TidusfromZanarkand 3 ปีที่แล้ว +3

    Your tutorial is a gem, mate!! It's really simple, the examples are great, and (not to be racist but I feel every European that has recently started messing with programming) you speak in fluent, understandable English. I'm having such a hard time to understand Indians trying to explain anything in English, which is such a pity if you consider how great some of their tutorials are

  • @mistersir3185
    @mistersir3185 2 ปีที่แล้ว +1

    how did you manage to dumb it down so easily? Other explanations on YT are boring and confusing, but this video just made it make sense.

  • @melvin23060
    @melvin23060 11 หลายเดือนก่อน

    Thank you for this very helpful video!
    One comment for the last example (2NF -> 3NF): Winner contains both the winners first name and last name. Therefore it is not in 1NF because the values are divisable. If we want to be correct, we need to split up the names in first_name and last_name

    • @learnlearnscratch
      @learnlearnscratch  11 หลายเดือนก่อน +2

      Does a first name and last name need to be separate in order to achieve atomicity and therefore 1NF? The answer is... it depends on what you are going to do with the data. If you are going to search, sort or filter using fn/sn separately then it needs to be separate and therefore it is not in 1NF, if you are only ever going to use that data in a single combined manner then it is indeed in 1NF.

  • @skyz6789
    @skyz6789 7 หลายเดือนก่อน

    This helped me more than office hours thank you 🙏

  • @emilytrinh2977
    @emilytrinh2977 3 ปีที่แล้ว

    Great and easy to understand explanation in a short amount of time

  • @frankasante5594
    @frankasante5594 3 ปีที่แล้ว +2

    Clean and simple explanation! Such a great tutorial

  • @aliencaocao
    @aliencaocao 3 ปีที่แล้ว +1

    BEST TUTORIAL
    Most other courses are bullshit to understand

  • @jonsnow7844
    @jonsnow7844 3 ปีที่แล้ว

    Very good. The specifics I think are more important and better at communicating the theme then the broad analogy technique.

  • @MrPerfias
    @MrPerfias 3 ปีที่แล้ว +1

    so clear, thanks. Makes normalization really understandable

  • @benyaminbansal5113
    @benyaminbansal5113 2 หลายเดือนก่อน

    Very helpful with the diagrams as well, the resource which i'm currently learning this from, does not have diagrams and i believe the author of the textbook purposely makes it difficult to understand. Thank you very much.

  • @whyareallnamestaken69
    @whyareallnamestaken69 2 ปีที่แล้ว

    You're a legend, mate. Thanks for the easy to understand tutorial.

  • @ajamumutumwa7343
    @ajamumutumwa7343 3 หลายเดือนก่อน

    Thank you for this great tutorial, which makes some difficult concepts easy to understand. My only little contribution is to wonder why you did not use some raw data from the beginning and showed through 1st - 3rd Normal Form how to transfer such data. Most people start their database life via Excel, and as you're aware they pick up some terrible habits very quickly. Thank you, it gave me that Eureka realisation moment I'd been searching for.

  • @mmmh-ru8dr
    @mmmh-ru8dr 6 หลายเดือนก่อน +1

    Out here saving our A Levels

  • @yusuffomoloja9026
    @yusuffomoloja9026 3 ปีที่แล้ว +2

    Thank you for the efforts at creating this video. It makes me understand the concept.

  • @funlolageorge1467
    @funlolageorge1467 ปีที่แล้ว

    So easy to understand. In such a short time. . ❤❤❤❤❤ thank you. .

  • @daluppo6961
    @daluppo6961 4 ปีที่แล้ว +37

    Why didn't you split the winners names to first and last name on your 3rd NF example tho? That makes it not so atomic

    • @chuckbecker4983
      @chuckbecker4983 3 ปีที่แล้ว +10

      Could (perhaps should) have "Tournament", "Year", and "Winner ID" in the left-hand table, and the right-hand table would have attributes "Winner ID", "LName", "FName", and "DOB". Because this is a many-to-many relationship there should actually be three tables: (1) Tournaments, (2) Winners, and the middle table (3) TournamentID/WinnerID/Year. Some of this depends on the architect's judgment, like "How big is this likely to get?" If it will remain a small database of dozens or maybe a couple hundred records, some corner-cutting can be justified.

    • @jaclynfitzsimmons8825
      @jaclynfitzsimmons8825 3 ปีที่แล้ว +1

      Wondering exactly the same.

    • @reedofwater
      @reedofwater 3 ปีที่แล้ว

      Wondering the same thing.

  • @peterho3119
    @peterho3119 ปีที่แล้ว

    Simple and Amazing! Feel thankful watching this video!

  • @lavexitosh
    @lavexitosh 2 หลายเดือนก่อน

    Simplest explanation out there. Thank you.

  • @NagatosRevenge
    @NagatosRevenge 3 ปีที่แล้ว

    Thanks for this video, currently taking Database Management & Design and this is a great resource!

  • @grandmiton866
    @grandmiton866 2 ปีที่แล้ว

    Straight to the point and easily understood. Thanks!

  • @naveedasgari8415
    @naveedasgari8415 4 ปีที่แล้ว

    Thank you! Got exam in Database on tuesday and you saved me

  • @vinsonbeduya5434
    @vinsonbeduya5434 3 ปีที่แล้ว +2

    Awesome explanation! Thank you so much. Your 11 minute lecture was a lot more useful than my professor's half hour one. lol.

  • @Huni-ph2ow
    @Huni-ph2ow 3 ปีที่แล้ว

    Thank you so much for your effort
    Also best tutorial keep going teacher🙏

  • @revanslacey
    @revanslacey 2 ปีที่แล้ว +26

    9:54 In this table the 'Winner' has a first and second name together as a composite. Does this mean it is not yet first normal form as that would require these data to be in different columns? Also, should the 3rd normal form tables have a unique key? What if there were two 'Bob Albertson's who were both born on 28 September 1968?

    • @alexandraak2347
      @alexandraak2347 2 ปีที่แล้ว

      when you build the database you can set that field as "date" and have different formats (ex. 10/24/2022 or Oct 24 2022) so that example is not divisible and it is in 1st normal form

  • @mirandalyu2673
    @mirandalyu2673 ปีที่แล้ว

    this video is awesome! Well explains these three concepts

  • @ArcticFoxAK
    @ArcticFoxAK 3 ปีที่แล้ว +34

    Isn't the Tournament example not actually in 3NF because the "Winner" column can be divisible (First name, Last name) which violates 1NF?

    • @Cmppayne26542
      @Cmppayne26542 3 ปีที่แล้ว +11

      You only have to split them if you suspect your logical model needs it to be split. For example, a phone number could be split for area codes, but your database model does not care about area codes. So there is no need to split phone numbers into multiple columns.

    • @rayvongregory8072
      @rayvongregory8072 2 ปีที่แล้ว +5

      I was thinking that, too. Instead of using the winner's name in the Tournament Winners table, I would just have a table of winners with columns:
      [ ID, First Name, Last Name, DOB ]
      Then I'd use the ID in the Tournament Winners Winner column because the current model fails the moment two winners have the same name.

  • @Damnedindenial
    @Damnedindenial ปีที่แล้ว

    i really think you should do all of database class i would watch and we all need it

  • @Photovalve
    @Photovalve ปีที่แล้ว +1

    Thanks, that's a brilliant explanation. You should write a book, because that is better than the books I've read. I see you do a lot of hobbyist videos. Perhaps you should do some more aimed at professionals. I'd definitely watch them. Especially about databases.

  • @tungtran-py6iq
    @tungtran-py6iq 3 ปีที่แล้ว

    Best video of normal form so far. Luv you!

  • @Eyenn_n
    @Eyenn_n ปีที่แล้ว

    Very clearly explained. Thank you for uploading this!

  • @kikimaxwell1506
    @kikimaxwell1506 ปีที่แล้ว

    This was amazing and straight to the point. Thank you.

  • @jessicabawden3113
    @jessicabawden3113 8 หลายเดือนก่อน

    Could you please make a video about Entity Relationship Diagrams? Your way of explaining things is amazing.

    • @learnlearnscratch
      @learnlearnscratch  8 หลายเดือนก่อน

      Here is a video I made about the different types of ERD - th-cam.com/video/QG2luqhsCHI/w-d-xo.html . I will be doing a more general video soon.

  • @eufraniodiogo50
    @eufraniodiogo50 2 ปีที่แล้ว

    Very good and simple explanation.🙃

  • @sudipshrestha3826
    @sudipshrestha3826 ปีที่แล้ว

    a hundred million worth video

  • @jameskirkham5019
    @jameskirkham5019 3 ปีที่แล้ว

    Fantastic video mate cheers best explanation I've heard

  • @padoharaja4503
    @padoharaja4503 3 ปีที่แล้ว

    i think you are the most clear

  • @_indrid_cold_
    @_indrid_cold_ ปีที่แล้ว

    Lovely and clear, very well done - thank you!

  • @nanaoseibonsu3798
    @nanaoseibonsu3798 4 ปีที่แล้ว +19

    Why can't one relation be used for 1nf, 2nf and 3nf? Changing example tables doesn't create consistency. Most tutorials on this do the same mistake

    • @GUNSESSION
      @GUNSESSION 4 ปีที่แล้ว

      ah boy i hear you.

    • @ferrysuhandri
      @ferrysuhandri 3 ปีที่แล้ว +1

      it's different problem with different solution

    • @AsliArtistVlogs
      @AsliArtistVlogs 3 ปีที่แล้ว +5

      @@ferrysuhandri Not really you can have an example thay goes through all 3 in sequential order

    • @CausticTitan
      @CausticTitan 2 ปีที่แล้ว

      I think that this would actually be better done as a "part 2" so that each transition can be viewed both in a vacuum, but also as a complete series of transformations. Definitely something worth considering.

  • @aoalothman
    @aoalothman 2 ปีที่แล้ว

    Thank you very much , u r the first one conveying the ideas clearly but I have something to ask you for if possible my friend that is if you could provide another example about the third form and thanks again

  • @MattEland
    @MattEland 2 ปีที่แล้ว

    This is great! I wish it also included BCNF, but absolutely fantastic nonetheless.

  • @anuradhamangalpalli2774
    @anuradhamangalpalli2774 ปีที่แล้ว

    Very nicely explained