Database Normalization 1NF 2NF 3NF

แชร์
ฝัง
  • เผยแพร่เมื่อ 14 มิ.ย. 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).

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

  • @sebastianxu2631
    @sebastianxu2631 7 หลายเดือนก่อน +79

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

    • @JesperLowgren
      @JesperLowgren  7 หลายเดือนก่อน +9

      LOL Thank you !!

    • @crislell
      @crislell 4 หลายเดือนก่อน +2

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

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

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

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

    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!

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

      Great, and good luck !!

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

      BRO SAME

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

      @@feimimi U got this bro

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

      Same Here :DDD

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

    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 11 หลายเดือนก่อน +9

    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.

    • @JesperLowgren
      @JesperLowgren  11 หลายเดือนก่อน +3

      Thank you! My pleasure 🙏

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

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

  • @feimimi
    @feimimi หลายเดือนก่อน +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  หลายเดือนก่อน

      This kind of feedback makes my day 😁!!

  • @alekizzu4705
    @alekizzu4705 ปีที่แล้ว +8

    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!

  • @JessiesGengar
    @JessiesGengar 3 หลายเดือนก่อน +2

    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!

    • @JesperLowgren
      @JesperLowgren  3 หลายเดือนก่อน +1

      Thank you Jessie !! 😁

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

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

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

      Thank you Paige you made my day !!

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

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

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

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

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

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

      Thank you. Good luck with your course!

  • @yssplays2620
    @yssplays2620 15 วันที่ผ่านมา +1

    THE BEST NORMALIZATION EXPLAINING EVER

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

  • @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 10 หลายเดือนก่อน

    Great explanation and a refresher,

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

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

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

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

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

    Very good intro and well explained.

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

    briefly explained well! thanks sir 🙏

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

    Great video with many useful insights.

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

      Thank you Robert, glad you liked it :).

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

    This is amazingly explained
    Thanks a lot

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

    Nice Job! I understand it under 15 mins thx.

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

  • @krisscage
    @krisscage 28 วันที่ผ่านมา

    Thank you for great lecture.

  • @Comrade4213
    @Comrade4213 3 หลายเดือนก่อน +1

    Beautiful video and a great explanation. Thanks Jesper.

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

      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!

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

    simple and clear , thank you

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

    great video, keep up the great work my G!

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

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

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

      Fantastic. Thank you!

  • @deffdepth824
    @deffdepth824 9 หลายเดือนก่อน +1

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

    • @JesperLowgren
      @JesperLowgren  9 หลายเดือนก่อน

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

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

    great video, great explanation!!!!

  • @ZawmyoHtet-lg7jn
    @ZawmyoHtet-lg7jn 10 หลายเดือนก่อน

    Thank you very much, Sir.

  • @iulianab
    @iulianab 23 วันที่ผ่านมา

    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?

  • @howling-wolf
    @howling-wolf ปีที่แล้ว +2

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

  • @iamkhol2232
    @iamkhol2232 2 หลายเดือนก่อน +1

    Really well explained, much better than some Udemy courses!

  • @alaa.albast
    @alaa.albast 11 หลายเดือนก่อน +1

    Thank you ,I understand now ...

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

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

    Great video, explained well 😊

  • @cubingandgaming6158
    @cubingandgaming6158 5 หลายเดือนก่อน +1

    THANK YOU JESPER

  • @danielscopyright1375
    @danielscopyright1375 10 หลายเดือนก่อน +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.

  • @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 :)

  • @asifityourlast7846
    @asifityourlast7846 3 หลายเดือนก่อน +1

    THANK YOUUUUU !!

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

    Amazing.

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

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

    Very helpful!

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

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

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

    Great!!

  • @Licvidatorr
    @Licvidatorr 5 หลายเดือนก่อน +1

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

    • @JesperLowgren
      @JesperLowgren  5 หลายเดือนก่อน

      I love to hear that 😁!

  • @kvelez
    @kvelez 22 วันที่ผ่านมา

    Thanks.

  • @stevewaterfield4862
    @stevewaterfield4862 9 หลายเดือนก่อน +1

    Thanks. 😊

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

    God bless you dearly sir!

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

    Thank you! So much!!!

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

    Thank you that helped me out

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

    This one is the best one.

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

  • @ranaanforlemu8243
    @ranaanforlemu8243 3 หลายเดือนก่อน +1

    Very Helpful 👍👍

  • @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: th-cam.com/video/49BsrjjlObY/w-d-xo.html

  • @mehranbarahouei2346
    @mehranbarahouei2346 5 หลายเดือนก่อน +1

    great job Jesper

    • @JesperLowgren
      @JesperLowgren  5 หลายเดือนก่อน

      Thank you Mehran! 😁

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

    Wonder explanation

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

    Amazing

  • @not_nev
    @not_nev 10 วันที่ผ่านมา

    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.

  • @luggnugg4912
    @luggnugg4912 8 หลายเดือนก่อน +1

    W. Better than my comp sci teacher

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

      Thank you Luggnugg 😁!

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

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

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

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

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

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

    ez explaination 5-star review!

    • @JesperLowgren
      @JesperLowgren  6 หลายเดือนก่อน

      Thank you !! 😁

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

    Liked and subscribed

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

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

  • @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 3 หลายเดือนก่อน

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

  • @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  5 หลายเดือนก่อน

      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 5 หลายเดือนก่อน +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  5 หลายเดือนก่อน

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

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

  • @smtxtv
    @smtxtv 2 หลายเดือนก่อน +1

    Good video. Asst. due. Thx !

  • @Hillgrov
    @Hillgrov 11 วันที่ผ่านมา

    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.

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

    Keep it up

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

    Nice

  • @TehGhostWhoPlay
    @TehGhostWhoPlay 3 หลายเดือนก่อน +1

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

    • @JesperLowgren
      @JesperLowgren  3 หลายเดือนก่อน +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 3 หลายเดือนก่อน +1

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

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

    this guys camera is crispy

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

    🐐🐐🐐

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

    thank you, i got answer of what i what?

  • @WanoFax
    @WanoFax 6 หลายเดือนก่อน +2

    You beautiful human

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

      Thank you !!😁

  • @nasrhussain9126
    @nasrhussain9126 4 หลายเดือนก่อน

    Starts 4:30

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

    "divide and conquer"

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