Database Normalization 1NF 2NF 3NF

Поделиться
HTML-код
  • Опубликовано: 3 июл 2024
  • Data Normalization is the philosophy and mathematics for understanding and connecting data, and is a core stepping stones for becoming a data professional. This video explains the history of normalization, and how to normalize data to first normal form (1NF), second normal form (2NF), and third normal form (3NF).

Комментарии • 164

  • @sebastianxu2631
    @sebastianxu2631 8 месяцев назад +85

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

    • @JesperLowgren
      @JesperLowgren  8 месяцев назад +10

      LOL Thank you !!

    • @crislell
      @crislell 5 месяцев назад +2

      Exactly, I ask myself WHY? If they can simplify. Why make it more complicated than really is!!

    • @thisusernameisalreadytaken8041
      @thisusernameisalreadytaken8041 3 месяца назад

      They're not qualified (stupid) ​@@crislell

  • @ItsGorka
    @ItsGorka 2 года назад +93

    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!

  • @kemalist9878
    @kemalist9878 3 года назад +4

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

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

  • @DBalint88
    @DBalint88 Год назад +10

    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.

  • @alekizzu4705
    @alekizzu4705 Год назад +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!

  • @dude_mude3366
    @dude_mude3366 Год назад

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

  • @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!

  • @JessiesGengar
    @JessiesGengar 4 месяца назад +3

    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!

  • @feimimi
    @feimimi 2 месяца назад +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

    • @JesperLowgren
      @JesperLowgren  2 месяца назад

      This kind of feedback makes my day 😁!!

  • @makenzierebeca8408
    @makenzierebeca8408 3 года назад +5

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

    • @JesperLowgren
      @JesperLowgren  3 года назад

      Thank you. Good luck with your course!

  • @ashwinichoudhary811
    @ashwinichoudhary811 Год назад

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

  • @joenathanlofties1253
    @joenathanlofties1253 Год назад

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

  • @jacobs8531
    @jacobs8531 11 месяцев назад

    Great explanation and a refresher,

  • @diegoortega2374
    @diegoortega2374 Год назад +1

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

  • @aymanmouhcine5749
    @aymanmouhcine5749 11 месяцев назад

    This is amazingly explained
    Thanks a lot

  • @riannacarlos4334
    @riannacarlos4334 3 года назад +1

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

  • @henriettaneiss8764
    @henriettaneiss8764 3 года назад +1

    Very good intro and well explained.

  • @meowpasha4998
    @meowpasha4998 Год назад

    Nice Job! I understand it under 15 mins thx.

  • @huangJJ0412
    @huangJJ0412 Год назад +1

    briefly explained well! thanks sir 🙏

  • @pranicbutton
    @pranicbutton 3 года назад +2

    Great video with many useful insights.

    • @JesperLowgren
      @JesperLowgren  3 года назад

      Thank you Robert, glad you liked it :).

  • @paigeroman1977
    @paigeroman1977 Год назад +1

    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! 😭

  • @Comrade4213
    @Comrade4213 3 месяца назад +1

    Beautiful video and a great explanation. Thanks Jesper.

  • @yssplays2620
    @yssplays2620 Месяц назад +1

    THE BEST NORMALIZATION EXPLAINING EVER

  • @Alfenijonas
    @Alfenijonas 3 месяца назад +1

    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  3 месяца назад +1

      I really appreciate your feedback 😁!!

    • @Alfenijonas
      @Alfenijonas 3 месяца назад +1

      @@JesperLowgren I really appreciate your explanation!

    • @JesperLowgren
      @JesperLowgren  3 месяца назад

      @@Alfenijonas My pleasure !!

  • @krisscage
    @krisscage Месяц назад

    Thank you for great lecture.

  • @omniscienceisdead8837
    @omniscienceisdead8837 2 года назад +1

    simple and clear , thank you

  • @sunilgajurel2618
    @sunilgajurel2618 2 года назад +1

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

    • @JesperLowgren
      @JesperLowgren  2 года назад

      My pleasure, glad to be able to help!

  • @barisaytimur
    @barisaytimur Год назад +1

    great video, keep up the great work my G!

  • @mine991127
    @mine991127 9 месяцев назад +1

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

    • @JesperLowgren
      @JesperLowgren  9 месяцев назад

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

  • @yehanwasura
    @yehanwasura 5 месяцев назад +1

    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.

  • @deffdepth824
    @deffdepth824 10 месяцев назад +1

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

    • @JesperLowgren
      @JesperLowgren  10 месяцев назад

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

  • @tigranasatryan5232
    @tigranasatryan5232 Месяц назад +1

    great video, great explanation!!!!

  • @andresviveros3994
    @andresviveros3994 Месяц назад +1

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

  • @ZawmyoHtet-lg7jn
    @ZawmyoHtet-lg7jn 11 месяцев назад

    Thank you very much, Sir.

  • @alaa.albast
    @alaa.albast Год назад +1

    Thank you ,I understand now ...

  • @asifityourlast7846
    @asifityourlast7846 4 месяца назад +1

    THANK YOUUUUU !!

  • @mustafasacan4373
    @mustafasacan4373 3 года назад +1

    Amazing.

  • @cubingandgaming6158
    @cubingandgaming6158 5 месяцев назад +1

    THANK YOU JESPER

  • @kimchijam8720
    @kimchijam8720 7 дней назад +1

    quick and simple, nice

  • @gjergjikokushta
    @gjergjikokushta Год назад +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 :)

  • @vanessabano7180
    @vanessabano7180 2 года назад

    Very helpful!

  • @tylerhanserd8616
    @tylerhanserd8616 Год назад +1

    Thank you! So much!!!

  • @jentevanrosmalen9300
    @jentevanrosmalen9300 Год назад +1

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

  • @novatrap1940
    @novatrap1940 3 года назад +1

    Great!!

  • @khiarahmed4045
    @khiarahmed4045 10 месяцев назад +1

    Great video, explained well 😊

  • @iamkhol2232
    @iamkhol2232 3 месяца назад +1

    Really well explained, much better than some Udemy courses!

  • @kvelez
    @kvelez Месяц назад

    Thanks.

  • @MuksEmmaN
    @MuksEmmaN 10 месяцев назад +1

    God bless you dearly sir!

  • @realshinsa
    @realshinsa 10 дней назад +2

    thanks, and i have an exam on tuesday

  • @ShmeegleSon
    @ShmeegleSon Год назад +1

    Thank you that helped me out

  • @stevewaterfield4862
    @stevewaterfield4862 10 месяцев назад +1

    Thanks. 😊

  • @markkevnjflores
    @markkevnjflores 9 дней назад +1

    Thaaaank you!

  • @Licvidatorr
    @Licvidatorr 6 месяцев назад +1

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

  • @mehranbarahouei2346
    @mehranbarahouei2346 6 месяцев назад +1

    great job Jesper

  • @danielscopyright1375
    @danielscopyright1375 11 месяцев назад +2

    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.

  • @howling-wolf
    @howling-wolf Год назад +2

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

  • @priyaakter9497
    @priyaakter9497 2 года назад

    Amazing

  • @Mehmetcetin00
    @Mehmetcetin00 3 года назад +8

    This one is the best one.

  • @ranaanforlemu8243
    @ranaanforlemu8243 3 месяца назад +1

    Very Helpful 👍👍

  • @MohamedBarreOMER
    @MohamedBarreOMER Месяц назад +1

    Wonder explanation

  • @tooslow1238
    @tooslow1238 Месяц назад

    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)?

  • @iulianab
    @iulianab Месяц назад

    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?

  • @aiautoglasscrm
    @aiautoglasscrm Год назад

    Liked and subscribed

  • @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: ruclips.net/video/49BsrjjlObY/видео.html

  • @btchhushington2810
    @btchhushington2810 3 месяца назад +1

    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  3 месяца назад

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

  • @smtxtv
    @smtxtv 2 месяца назад +1

    Good video. Asst. due. Thx !

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

  • @user-ot9uv2gp7v
    @user-ot9uv2gp7v 7 месяцев назад +1

    ez explaination 5-star review!

  • @luggnugg4912
    @luggnugg4912 8 месяцев назад +1

    W. Better than my comp sci teacher

  • @user-bz4qe3gi9y
    @user-bz4qe3gi9y 6 месяцев назад +1

    🐐🐐🐐

  • @evalaviniabucur1789
    @evalaviniabucur1789 Год назад +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

      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

      @@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 Месяц назад

      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

  • @not_nev
    @not_nev 29 дней назад

    thank you for real doc Jesper Lowgren Sheldon ❤

  • @yvesloy652
    @yvesloy652 Год назад +2

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

    • @JesperLowgren
      @JesperLowgren  Год назад +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.

  • @himalkhandokar7687
    @himalkhandokar7687 2 года назад

    Keep it up

  • @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!

  • @mm-vv3ih
    @mm-vv3ih Год назад +1

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

    • @alekizzu4705
      @alekizzu4705 Год назад

      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.

  • @2684dennis
    @2684dennis 6 месяцев назад +1

    Is it aloud to have 2 foreign keys?

    • @JesperLowgren
      @JesperLowgren  6 месяцев назад

      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 6 месяцев назад +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  6 месяцев назад

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

  • @ehanahmed2985
    @ehanahmed2985 2 года назад

    Nice

  • @noelsirrom
    @noelsirrom Год назад

    this guys camera is crispy

  • @shavirtooray3369
    @shavirtooray3369 10 месяцев назад

    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 4 месяца назад

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

  • @percio6802
    @percio6802 Год назад

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

  • @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 Год назад

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

  • @nimsamreth
    @nimsamreth Год назад

    thank you, i got answer of what i what?

  • @TehGhostWhoPlay
    @TehGhostWhoPlay 4 месяца назад +1

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

    • @JesperLowgren
      @JesperLowgren  4 месяца назад +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 4 месяца назад +1

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

  • @Hillgrov
    @Hillgrov Месяц назад

    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.

  • @nasrhussain9126
    @nasrhussain9126 5 месяцев назад

    Starts 4:30

  • @thomaskaiser2475
    @thomaskaiser2475 8 дней назад +1

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

    • @JesperLowgren
      @JesperLowgren  8 дней назад +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.

    • @thomaskaiser2475
      @thomaskaiser2475 8 дней назад

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

    • @thomaskaiser2475
      @thomaskaiser2475 8 дней назад +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  8 дней назад +1

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

    • @JesperLowgren
      @JesperLowgren  8 дней назад +1

      @@thomaskaiser2475 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.

  • @rustyspottedcat8885
    @rustyspottedcat8885 Год назад

    "divide and conquer"

  • @WanoFax
    @WanoFax 7 месяцев назад +2

    You beautiful human

  • @aimanabdelraziq3865
    @aimanabdelraziq3865 2 года назад

    Nice illustration but needs to slow down the tempo.

  • @syntaxerorr
    @syntaxerorr Год назад +1

    Too much mouth noise. It sounds like someone is messing with a candy wrapper while you are talking.

  • @mohammadatik2380
    @mohammadatik2380 2 года назад

    Nice