Database Normalization 1NF 2NF 3NF

Поділитися
Вставка
  • Опубліковано 23 січ 2025

КОМЕНТАРІ • 219

  • @ItsGorka
    @ItsGorka 2 роки тому +112

    Got a databases exam tomorrow for uni. This has really came in clutch since I've always struggled to understand the differences between 1NF - 3NF. Cheers!

  • @sebastianxu2631
    @sebastianxu2631 Рік тому +144

    This video taught me normalization in 10 min, but my lecturer spent 1 hour confusing me

  • @sainiapulemasara
    @sainiapulemasara 2 роки тому +10

    I had a class in the morning hours about normalisation and woke early to watch this. It has been very helpful to me. Be blessed alot.

  • @AlJean-mr1jj
    @AlJean-mr1jj Місяць тому +1

    Spent 3 days in a software engineering course and still didn't understand crap. 10 mins with you and I'm a legend.

  • @fastcurious5890
    @fastcurious5890 4 місяці тому +3

    There cannot be more simplistic explanation on normalization than this video. It took me years to find this short but exceptional tutorial. Thank you!

    • @JesperLowgren
      @JesperLowgren  4 місяці тому

      Thank you for your feedback !!😁

  • @teacherOfMusic-e7w
    @teacherOfMusic-e7w Рік тому +11

    YES! I have listened / read / watched some 10 other explanations that seem to use absolute gibberish for this concept. But yours is immediately crystal clear. I finally understand 3rd Normal Form. Thank you so much.

  • @JessiesGengar
    @JessiesGengar 11 місяців тому +4

    This is so helpful!
    i've been struggeling to understand this particular part of the course i'm following for the past 3 days, and you have made it very clear in 10 minutes.
    it's clear, with a simple visual and without all the extra's which just confuses the main point.
    TY so much, i can continue my course with confidence!

  • @Alfenijonas
    @Alfenijonas 10 місяців тому +2

    Nice examples and explanations. Everything goes from start to end, without any "side quests". The explanation is fluent and has a flow. Like a well-written book. Clicked that like button and spent some time writing this comment in hopes that the yt algorithm will show this to as many people as possible.

    • @JesperLowgren
      @JesperLowgren  10 місяців тому +1

      I really appreciate your feedback 😁!!

    • @Alfenijonas
      @Alfenijonas 10 місяців тому +1

      @@JesperLowgren I really appreciate your explanation!

    • @JesperLowgren
      @JesperLowgren  10 місяців тому

      @@Alfenijonas My pleasure !!

  • @alekizzu4705
    @alekizzu4705 2 роки тому +9

    I have a Microsoft Access exam tomorrow and I was struggling a lot with normalisation. You explained it well and now I have a decent understanding of what I have to do. Thank you!

  • @paigearoman
    @paigearoman Рік тому +3

    Omg I was sobbing trying to figure out my assignment until I found this video. It's the only video I could find that used an example I could understand! 😭

  • @yehanwasura
    @yehanwasura Рік тому +4

    There's at least a one guy on educational videos saying they didn't get anything from lectures.😅
    So here I am, Thank you ,this video helped me a lot.

  • @ED-zq9tq
    @ED-zq9tq 3 місяці тому +2

    well explained, straight to the point, No extra or less info . Thank you sir.

  • @kareemsharawi4778
    @kareemsharawi4778 Рік тому +4

    This is just amazing the way you describe things! I come here after failing to understand NF through an instructor of a well known EXPENSIVE online educational platform (will not mention the name). Thank you very much!

  • @kemalist9878
    @kemalist9878 3 роки тому +4

    Finally, somebody! I've needed this video for such a long time, thank you.

  • @feimimi
    @feimimi 9 місяців тому +1

    got a database exam tomorrow too and ive been going crazy reading the material over and over again,, this vid really just saved my life

  • @makenzierebeca8408
    @makenzierebeca8408 3 роки тому +5

    This video has been super useful in my computer course!!

    • @JesperLowgren
      @JesperLowgren  3 роки тому

      Thank you. Good luck with your course!

  • @dude_mude3366
    @dude_mude3366 Рік тому

    I got a CS exam next week, ur A LIFE SAVER!!!

  • @yssplays2620
    @yssplays2620 7 місяців тому +1

    THE BEST NORMALIZATION EXPLAINING EVER

  • @rishabhsingh0768
    @rishabhsingh0768 5 місяців тому

    Such an amazing explanation in just 10 minutes..Thank you so much!!!

  • @mine991127
    @mine991127 Рік тому +1

    So useful! I could not understand anything from my classes at uni before this

    • @JesperLowgren
      @JesperLowgren  Рік тому

      Thank you, I am very happy I could help 😄!

  • @omarcruz6326
    @omarcruz6326 Місяць тому

    Hello Jesper.
    Great video !
    Thanks a lot for the excellent work.

  • @Comrade4213
    @Comrade4213 10 місяців тому +1

    Beautiful video and a great explanation. Thanks Jesper.

  • @daniyarauezkhan7518
    @daniyarauezkhan7518 5 місяців тому +2

    6:39
    Doesn't the second table violateS the 3rd rule of normalization of the first form? It seems to me that it would be better to define the columns Employee ID, Skill Name and Skill ID in the second table. Thus, the primary key can be assigned to a combination of Emloyee ID and Skill ID

    • @papafoxtrot11
      @papafoxtrot11 4 місяці тому

      I had a similar question in this part of the video. Your solution makes more sense to me. TY

  • @papafoxtrot11
    @papafoxtrot11 4 місяці тому +4

    I'm a little confused on step 4 of 1NF.. You circled the two skill and skill id columns indicating that there can be no repeating groups. Then you moved them. But you moved them both to the same new table. If these skill columns were repeating groups in the original table, what makes them not "repeating groups" when side-by-side in a different table??

    • @yanabudnik3482
      @yanabudnik3482 3 місяці тому

      I am confused about the same thing, it looks like the second table is still not in the 1NF as there are repeating groups...

    • @yoochem
      @yoochem 2 місяці тому

      same question here!

  • @andygaal7936
    @andygaal7936 5 місяців тому

    very effective lesson, nicely done I instantly could understand the matter, thanks !

  • @andresviveros3994
    @andresviveros3994 8 місяців тому +1

    this has helped me get a job in application support where we use DBs to query data for bugs

  • @iamkhol2232
    @iamkhol2232 10 місяців тому +1

    Really well explained, much better than some Udemy courses!

  • @sunilgajurel2618
    @sunilgajurel2618 2 роки тому +1

    great Vedio so far. I really got concept up to 3NF . Bunch of thanks.

  • @joenathanlofties1253
    @joenathanlofties1253 Рік тому

    Writing an essay on normalizing a presented database, this helps alot!

  • @zweitekonto9654
    @zweitekonto9654 Рік тому +1

    At 9:15 in the video, what does it mean "Not defined by the primary key"?

    • @JesperLowgren
      @JesperLowgren  Рік тому +1

      Good question! Looking back, it is somewhat ambiguous. If job names are stored in its own entity, and job name is the primary key (as opposed to job id), then Job Name is a legitimate Foreign Key in the Employee entity.
      But.... a better way is to define Job Names using the primary key Job ID. In this case, storing job name in an employee entity is incorrect, as job name is not defined using employee id.
      Hope this makes sense 😄.

  • @deffdepth824
    @deffdepth824 Рік тому +1

    Thank you for this wonderful explaination. Please make more videos!

    • @JesperLowgren
      @JesperLowgren  Рік тому

      Thank you !! I wish I had time to make more 😁

  • @tooslow1238
    @tooslow1238 8 місяців тому

    7:28 since the second spreadsheet has 2 skills (2 Ids, 2 names), don't we need to specify 2 skill ids in the new spreadsheet (skill 1 id/ skill 2 id)?

  • @diegoortega2374
    @diegoortega2374 Рік тому +1

    Thank you Jesper, your explanatio was just awesome! Cheers man!

  • @jentevanrosmalen9300
    @jentevanrosmalen9300 2 роки тому +1

    I have an exam tommorow and this was the one thing I couldn't understand, Thank u!

  • @pranicbutton
    @pranicbutton 3 роки тому +2

    Great video with many useful insights.

    • @JesperLowgren
      @JesperLowgren  3 роки тому

      Thank you Robert, glad you liked it :).

  • @ashwinichoudhary811
    @ashwinichoudhary811 Рік тому

    You save whole lot of a struggle to me , thanks Jesper

  • @riannacarlos4334
    @riannacarlos4334 3 роки тому +1

    Easy to understand with great for your next video :).

  • @2684dennis
    @2684dennis Рік тому +1

    Is it aloud to have 2 foreign keys?

    • @JesperLowgren
      @JesperLowgren  Рік тому

      Hi, yes it is allowed and necessary. For example, in a PERSON entity, you might have a Foreign Key to a PERSON-GENDER entity, and to a PERSON-PREFERENCE entity etc. Each Foreign Key brings more meaning to the entity.

    • @2684dennis
      @2684dennis Рік тому +1

      @@JesperLowgren oke, so only a primary key you can have once, but multiple foreign key, and candidaat keys can also be more because they are optional primary keys? im learning this cause in 2 weeks i got exame but the book i have from school, its bad, it has so much text in it and so much tekst between () that when you reed it the obviouse answer is sinking away in all the unnessesary tekst. this vid about normalisation is exctually good to follow and good to understand, im gonna write this down in my writingbook to learn.

    • @JesperLowgren
      @JesperLowgren  Рік тому

      @@2684dennis yes there can be multiple unique keys, and each unique key is a candidate primary key. But there can only be one primary key.

  • @gjergjikokushta
    @gjergjikokushta 2 роки тому +4

    Thank you Jasper - best explaination so far. I teach students in highschool - but the textbook it kinda techy and not very suitable for students. Your explanation is easy to grasp :)

  • @danielscopyright1375
    @danielscopyright1375 Рік тому +3

    I love this video, so easy to understand. But then at minute 8:00, I don't think it should be "skill 1 ID" since it references a skills table containing any skills. Then I suggest it should be only ''skill Id''. Kindly correct me if am wrong.

  • @barisaytimur
    @barisaytimur Рік тому +1

    great video, keep up the great work my G!

  • @highwaytoheaven4738
    @highwaytoheaven4738 5 місяців тому +1

    Hi I have one question.Can I remove Employee Id Skill 1 id table? and add new employee id to skill id and skill name. So the final table will be skill id employee id skill name.

    • @JesperLowgren
      @JesperLowgren  5 місяців тому +1

      Hi. That would violate normalization as skill name is only partially dependent on the primary key, e.g. skill id.

    • @highwaytoheaven4738
      @highwaytoheaven4738 4 місяці тому +1

      @@JesperLowgren you mean employee id does not depend on skill id and that violates 2NF. Isn't it?

    • @JesperLowgren
      @JesperLowgren  4 місяці тому

      @@highwaytoheaven4738 Correct!

  • @mm-vv3ih
    @mm-vv3ih 2 роки тому +1

    Thank you for video but I don't understand what you did at 6:26 :( what are the repeating groups here?

    • @alekizzu4705
      @alekizzu4705 2 роки тому

      Skill ID and Skill Name are repeating, so he had to rename them into Skill ID 1 Skill Name 1 Skill ID 2 Skill Name 2 so there are no repeating columns

    •  Рік тому +1

      @@alekizzu4705 No, he just placed the same data in a separate table, nothing changed at all. This is certainly not the repeating group issue.

  • @btchhushington2810
    @btchhushington2810 10 місяців тому +2

    I would love to see a video on 4NF-5NF: exceptions. Liked the video, Subscribed to the Channel and Shared on LinkedIn. Great job!!

    • @JesperLowgren
      @JesperLowgren  10 місяців тому

      Thank you! Will do one of 4NF and 5NF, been thinking about it for a while.

  • @Licvidatorr
    @Licvidatorr Рік тому +1

    Thank you, i have an exam tomorrow and this helped me !

  • @SyncCryo
    @SyncCryo 6 місяців тому +1

    Can I send you a look at a moderation page I want to create but am unsure how to normalise correctly?

    • @JesperLowgren
      @JesperLowgren  6 місяців тому

      Of course 😄!

    • @SyncCryo
      @SyncCryo 6 місяців тому

      @JesperLowgren Awesome! How can I contact you so I can send my draft of the page?

    • @JesperLowgren
      @JesperLowgren  6 місяців тому +1

      @@SyncCryo jlowgren at outlook.com

    • @SyncCryo
      @SyncCryo 6 місяців тому

      @@JesperLowgren Great! I've dropped you an email.

    • @SyncCryo
      @SyncCryo 6 місяців тому

      @JesperLowgren Thank you! I've sent you the draft moderation page. Let me know when you can take a look 🙏

  • @moeeljawad5361
    @moeeljawad5361 29 днів тому +1

    Amazing explanation. Shouldn't the address be also in a separate table (Address ID, Address)?

    • @willywooca
      @willywooca 27 днів тому +1

      Agree, an employee can have multiple addresses. Also employee can have multiple jobs, similar to employee can have multiple skills. Therefore we need a table called EmployeeAddress, and a table called EmployeeJob, similar to what the EmployeeSkill that he has created.

  • @jacobs8531
    @jacobs8531 Рік тому

    Great explanation and a refresher,

  • @ShrlockHomebodyy
    @ShrlockHomebodyy 3 місяці тому

    SUPER DUPER HELPFUL, THANK YOU SIR!!

  • @cheesydrippin
    @cheesydrippin Рік тому +1

    briefly explained well! thanks sir 🙏

  • @percio6802
    @percio6802 2 роки тому

    9:17
    Why is 'Job Name' not in 3NF? You can find out what job the employee works by their employee ID?

  • @meowpasha4998
    @meowpasha4998 2 роки тому

    Nice Job! I understand it under 15 mins thx.

  • @evalaviniabucur1789
    @evalaviniabucur1789 2 роки тому +5

    Thank you, I understood 3NF quite well from your explanation. How do you know when to draw the line when using 3NF? For example, the Employee table's primary key doesn't define the address column. Should we also move the addresses to a separate table and uniquely identify each address, then change the address column in the Employee table to, let's say, address_id?

    • @JesperLowgren
      @JesperLowgren  2 роки тому +2

      Hi Eva, a great observation and the answer is.... you could! Many organisations use services like Experian to validate addresses, and you could store a primary key for a particular address instead of the whole address. The same goes for employee. The question I would ask, and where I would draw the line, is how the data is used. Are there any benefits in creating a specific address table with a primary key? If yes, then I would do it, if no, I wouldn't. In most cases there probably wouldn't be a benefit and it would be easier to store the full address in attributes against an employee (or customer for that matter). Unless you are in the business of managing address data, like Experian, then you most certainly would. Hope this helps 😀.

    • @evalaviniabucur1789
      @evalaviniabucur1789 2 роки тому +2

      @@JesperLowgren thank you for the answer and, yes, it helps. It's just that I'm the sort of person who tends to believe you can't learn computer programming if you don't understand how the current flows inside the computer if you understand what I mean, and that is the reason I'm not really able to draw some lines :))

    • @ryzawy
      @ryzawy 8 місяців тому

      Interesting thread. If it’s up to one to decide, in which NF do the scenarios fall? Are both 3NF of varying degrees? I understand it depends, but I am a bit confused on how to identify NFs then

  • @DreamsAPI
    @DreamsAPI Рік тому +1

    Hi @Jasper, I could not find your second video about cardinality 4t and 5th

    • @JesperLowgren
      @JesperLowgren  Рік тому

      Hi, here is the link to the video that addresses the 4th and 5th Business Normal Form: ua-cam.com/video/49BsrjjlObY/v-deo.html

  • @theyvesloy
    @theyvesloy 2 роки тому +2

    with the rule that each column value should be atomic, shouldn’t name and address be split up?

    • @JesperLowgren
      @JesperLowgren  2 роки тому +1

      Hi Yves, yes a great observation and the answer is yes, you could split them and create an address entity with an address id, and then add address id as a foreign key to name. Some organisations do this when address is particularly important, such as sending items to a postal address. For example, using an external address validation service like Experian, and using the Experian address ID as a foreign key against a customer entity.

  • @tigranasatryan5232
    @tigranasatryan5232 8 місяців тому +1

    great video, great explanation!!!!

  • @iulianab
    @iulianab 8 місяців тому

    Hi! Thank you for this video, much appreciated! Can you please tell me if there is any rule related to one to one relationships in a Third Normal Form?

  • @henriettaneiss8764
    @henriettaneiss8764 3 роки тому +1

    Very good intro and well explained.

  • @centillionare
    @centillionare 5 місяців тому +1

    So why is Job Name not defined by Employee ID, but Address is? I got all of this video except this part.

    • @JesperLowgren
      @JesperLowgren  5 місяців тому +1

      Because the employee ID identifies the address, and the address depends on the employee id. But job name does not depend on employee id but on job id.

    • @centillionare
      @centillionare 5 місяців тому

      @@JesperLowgrenthank you!

  • @cubingandgaming6158
    @cubingandgaming6158 Рік тому +1

    THANK YOU JESPER

  • @TehGhostWhoPlay
    @TehGhostWhoPlay 11 місяців тому +1

    I m confused as to how job name doesn’t rely on employee id. Can someone explain to me why?

    • @JesperLowgren
      @JesperLowgren  11 місяців тому +1

      Hi Ariel, a job name might be Forklift Operator. An employee id might be 37 (John Smith). You can relate id 37 to job name Forklift Operator. But the job name Forklift Operator does not rely on employee id 37 (or any other employee id). The job name Forklift Operator can exist even if it is not related to any employee id; hence employee id does not depend on job name. Hope this makes sense. 😀

    • @TehGhostWhoPlay
      @TehGhostWhoPlay 11 місяців тому +1

      @@JesperLowgren I think i do understand it a bit more. Thank you for the clarification.

  • @khiarahmed4045
    @khiarahmed4045 Рік тому +1

    Great video, explained well 😊

  • @vincentdreemurr
    @vincentdreemurr 5 місяців тому

    why is the column next to "employee id" still "skill 1 id"? should it just be "skill id" instead?

  • @TexasISPDude
    @TexasISPDude 7 місяців тому +1

    Can a PK have a relationship with its FK counterpart in more than one table?

    • @JesperLowgren
      @JesperLowgren  7 місяців тому +1

      Yes it can! For example, a Contact with PK contact_id can be an FK in both a Leads table and an Opportunity table.

    • @TexasISPDude
      @TexasISPDude 7 місяців тому

      @@JesperLowgren wow thanks a lot! I had such a hard time and conflicting information on that as a 2 week old initiate.

    • @TexasISPDude
      @TexasISPDude 7 місяців тому +1

      @@JesperLowgren Now i just need to know what those diagrams with the Diamonds and rectangles and bubbles and numbers is called so i can find out what they mean. Im just starting the textbook: Fundamentals of Database Systems Seventh Edition.

    • @JesperLowgren
      @JesperLowgren  7 місяців тому +1

      @@TexasISPDude my pleasure, I get excited when others get value from my videos 😄.

    • @JesperLowgren
      @JesperLowgren  7 місяців тому +1

      @@TexasISPDude I had a quick look and the book seems to use several notations, including UML (which is object modelling, not data modelling). Data modelling is based on the concept of a one-to-many relationship, which can be described using different notations. I used the crowfoot notation in the video.

  • @shavirtooray3369
    @shavirtooray3369 Рік тому

    Hi not sure if someone can assist here but in the 2NF stage when we work with employee id and skill id's wouldnt one of the tables be "EmployeeID | Skill1 ID | Skill 2 ID" instead of just "EmployeeID | Skill 1 ID"

    • @hdot2613
      @hdot2613 10 місяців тому

      No, because each new "skill" will be represented as a new row in the Skill table

  • @Aminerami5749
    @Aminerami5749 Рік тому

    This is amazingly explained
    Thanks a lot

  • @MuksEmmaN
    @MuksEmmaN Рік тому +1

    God bless you dearly sir!

  • @mehranbarahouei2346
    @mehranbarahouei2346 Рік тому +1

    great job Jesper

  • @Mehmetcetin00
    @Mehmetcetin00 3 роки тому +8

    This one is the best one.

  • @kimchijam
    @kimchijam 7 місяців тому +1

    quick and simple, nice

  • @howling-wolf
    @howling-wolf Рік тому +2

    I love how he pronounces "data". And yes I mean that honestly.

  • @BigTompa1
    @BigTompa1 3 місяці тому +1

    great explanation

  • @BrianEscalanteRamirez
    @BrianEscalanteRamirez 3 місяці тому +1

    Great video

  • @ranaanforlemu8243
    @ranaanforlemu8243 10 місяців тому +1

    Very Helpful 👍👍

  • @AlJean-mr1jj
    @AlJean-mr1jj Місяць тому

    Quick question? Why did you create an employee id/ job id table instead? Like you did on skill name.

  • @MatthewOrtman-k1p
    @MatthewOrtman-k1p 4 місяці тому +1

    A lot of this seems arbitrary. So in third normal form how is the job name not defined by employee id?

    • @JesperLowgren
      @JesperLowgren  4 місяці тому

      There is a difference between RELATED and DEPENDENT. Job name might be related to an employee, or it might not, if there are no employees with that job name. But they are not dependent, because an employee and a job can exist separately, e.g. they do not depend on each other to exist.

  • @YouTubeMarketingexpert007
    @YouTubeMarketingexpert007 3 роки тому +2

    Great video, but keen to see higher forms of normalization.

    • @JesperLowgren
      @JesperLowgren  3 роки тому +1

      Thank you, yes I am planning to make a video on BCNF, 4NF, and 5NF soon!

  • @krisscage
    @krisscage 8 місяців тому

    Thank you for great lecture.

  • @christiangeorge5313
    @christiangeorge5313 3 місяці тому +1

    Thank you, this helped!

  • @omniscienceisdead8837
    @omniscienceisdead8837 2 роки тому +1

    simple and clear , thank you

  • @Hillgrov
    @Hillgrov 7 місяців тому

    Why do every book and online resources have different definitions and rules for the normalization forms.. I've just watched 3 videos and read 2 articles.. none of them are in agreement.

  • @alaa.albast
    @alaa.albast Рік тому +1

    Thank you ,I understand now ...

  • @MohamedBarreOMER
    @MohamedBarreOMER 8 місяців тому +1

    Wonder explanation

  • @bartomiejpotaman6973
    @bartomiejpotaman6973 Місяць тому

    Great insight!

  • @fgfanta
    @fgfanta 2 роки тому

    What does it mean that a column depends on another, or that a column fully defines another? I don't get it from the examples, would like a proper definition, such that I look at a table, and can tell if a column depends on another or a column fully defines another.

    • @Adam-zo7nz
      @Adam-zo7nz 2 роки тому

      Did you find a good resource for understanding this? I'm in the same position as you when you made this comment.

  • @raddivant8840
    @raddivant8840 2 місяці тому

    Great primer

  • @ZawmyoHtet-lg7jn
    @ZawmyoHtet-lg7jn Рік тому

    Thank you very much, Sir.

  • @shinsa_lomboto
    @shinsa_lomboto 7 місяців тому +2

    thanks, and i have an exam on tuesday

  • @ShmeegleSon
    @ShmeegleSon 2 роки тому +1

    Thank you that helped me out

  • @tylerhanserd8616
    @tylerhanserd8616 Рік тому +1

    Thank you! So much!!!

  • @mustafasacan4373
    @mustafasacan4373 3 роки тому +1

    Amazing.

  • @luc7964
    @luc7964 2 місяці тому

    I think the 4th rule of 1NF is very unclear I believe you should have explained what a repeating group is and how what you are doing is solving it.

  • @PandaBear-y3d
    @PandaBear-y3d Рік тому +1

    ez explaination 5-star review!

  • @not_nev
    @not_nev 7 місяців тому

    thank you for real doc Jesper Lowgren Sheldon ❤

  • @stevewaterfield4862
    @stevewaterfield4862 Рік тому +1

    Thanks. 😊

  • @SmashedHelix23
    @SmashedHelix23 Рік тому +1

    W. Better than my comp sci teacher

  • @nasrhussain9126
    @nasrhussain9126 Рік тому +1

    Starts 4:30

  • @novatrap1940
    @novatrap1940 3 роки тому +1

    Great!!

  • @vanessabano7180
    @vanessabano7180 2 роки тому

    Very helpful!

  • @aiautoglasscrm
    @aiautoglasscrm Рік тому

    Liked and subscribed