TABLE OF CONTENTS 00:00 - Intro 01:07 - 1st Normal Form 4:18 - 2nd Normal Form 9:44 - 3rd Normal Form 13:50 - 4th Normal Form 17:33 - Normalizing Customer Orders 20:35 - Customer Table (2NF) 21:55 - Product Table (2NF) 24:20 - Order Header vs Order Lines 29:05 - Product Table (3NF) 31:25 - Customer Table (1NF, 4NF)
@Kipviss3 жыл бұрын
nee.
@hooo2542 жыл бұрын
@@Kipviss .
@deepashankar083 жыл бұрын
That's brilliant, confused by a textbook but fully normalised now!
@organiz-izedtravis64116 жыл бұрын
This video will top the search results in youtube on "DB Normalization" going forward.
@4FrogsStacked2 жыл бұрын
Great explanation! It's obvious that you actually understand the topic well, and you're not just spewing out definitions. I've had some difficulty understanding these concepts until now
@girls_game_as_well43972 жыл бұрын
I have been struggling with this concept all week in class. I finally get it. Thank you so much.
@MaxProskoff3 жыл бұрын
Thank you for explaining this so clearly. I like the focus and the delivery.
@hectord.71075 жыл бұрын
I'm a total noob on this topic and watched many videos about database normalization, this is the simplest explanation on the topic and the one that helped me the most improving my database structure. Thanks a lot!
@harjos78 Жыл бұрын
Best explaination i have seen so far in any book or video!. Hats off. Great example and walk thourgh
@montrealbudd28312 жыл бұрын
I really like this video. It was so much easier for me to understand normal forms by watching this video instead of reading my book. Thank you so much!
@alexandercato74005 жыл бұрын
You did a great job teaching a complex topic in an understandable way! Just subscribed to your channel and expect you to get many more in the coming months because you’re producing quality content-it really stands out from the other videos on normalization. Keep up the great work!
@chaslutterloh13095 жыл бұрын
Thank you! This was an excellent format for a visual learner like me!
@samiramir91samor782 жыл бұрын
Thank you so much, you just make it easy for me to understand, that what a perfect teacher looks like.
@vladyslavvlasenko43723 жыл бұрын
Thanks a lot! Your explanation is absolutely easy to understand, examples are perfect.
@richod96353 жыл бұрын
Very well explained. This video tied up a loose ends for me. I already knew how to break apart one table into other tables, but this explanation really helped me to 100% confdent. Wouldn't it be a good idea to put 'Product Manufacturer Address' into it's own table in case the product is manufactured in multiple locations? If so, then what would be the key to the 'Product Manufacturer Address' table?
@raytierney63425 жыл бұрын
The absolute best !!!! Saving me from the land of total confusion!!!
@KC-zn4gt5 жыл бұрын
Excellent video and clear explanation. Can't get better than this!
@wanroslinawanmusa75323 жыл бұрын
Thanks. Very easy to digest explanation on normalization.
@skv4611 Жыл бұрын
Good explanation. After seeing the video, I felt like using pivot tables in Excel could speed up the process.
@lokmanboukhoulda44964 жыл бұрын
Thank you! the best explanation I have found on the net!!
@fealgu100 Жыл бұрын
Simply great!
@basharatmir40253 жыл бұрын
Brilliant ,,,,,lecturer
@chojuj45335 ай бұрын
Very well explained
@EphemeralMemory2 жыл бұрын
Great, concise video! Thank you
@shubhamsharma-ne2ke2 жыл бұрын
awesome video. Great explanation.
@michalroesler Жыл бұрын
Great video Joey.
@helovesdata84833 жыл бұрын
This is good. I'm new to this therefore, I'll need a week to design my first database...lol
@mohammadkashkooly19876 жыл бұрын
Joey, Thank you so much for helping us the little guys.
@Hevletica2 жыл бұрын
I cannot thank you enough.
@saltech20242 жыл бұрын
Your tutorials are of no doubt .... Kindly make video(s) on "Entity Diagrams"
@jkirkwold5 ай бұрын
In the section explaining 2NF, when deduping the Product Table, you got rid of two rows. The first I understand (Bat, Louisville Slugger) because it was a duplicate. However, you also got rid of (Basketball, Titleist) even though it wasn't a duplicate. Why? Great video!
@uzairkhan89534 жыл бұрын
Really useful information. Helped me with my concepts. Thank you so much Joey.
@dylang97903 жыл бұрын
Thank you so much. your video is really useful for me
@kishorearr66392 жыл бұрын
love this one very much!!!!
@jenh31835 жыл бұрын
You're a great teacher - thanks for making this available to everyone.
@johnsonmuppasani22083 жыл бұрын
Excellent
@htji44 жыл бұрын
Thanks Joey, you're a great teacher.
@AusieGamer8342 жыл бұрын
That's how you explain normalisation.
@usmcpound5 жыл бұрын
Thanks so much for the informative video. This is much more clear and concise than the slides and book I've received from my database class.
@blaze1175 жыл бұрын
In 8:30 your product table contains basketball-Spaulding basketball- titleist and ypu just deleted basketball titleist and the supplier titleist supplying basketballs suddenly disappeared from the database. im quite confused there
@adityakolte25995 жыл бұрын
Having 2 basketball products in Product Table would no longer keep the Primary Key Unique
@nickbull72783 жыл бұрын
@@adityakolte2599 But he loses information by doing so - how can you know that Titleist produces basketballs? This is a bad choice of primary key. Clearly other manufacturers can produce basketballs, and manufacturers can produce more than one product. The solution would be a new product ID column, or a composite primary key of both columns. Thinking forward, a product ID would be better, as the same manufacturer could make the same product, with additionally added columns for e.g., descriptions (e.g., different colors, sizes)
@ReisQuarteu3 жыл бұрын
@@nickbull7278 The author corrected the above table in 8:36, so that basketballs are produced only by Spaulding in the simple example. That way, the 2NF was correctly applied. But you right: if two different manufactures can produce the same product, there was no dependency in the above table; therefore, the products table should not have been created.
@Devruwan5 жыл бұрын
Great explanation of the topic. Thank you for teaching us :)
@yahiabajbouj28183 жыл бұрын
Thanks for this video
@hamedahmadi13822 жыл бұрын
thanks answered my question🙂
@justinemsquare8832 жыл бұрын
nice tutorial
@kanbisama3 жыл бұрын
Thank you so much for this video.
@wehshijutt65374 жыл бұрын
Excellent job
@LenaDobrinova3 жыл бұрын
1. Thanks for your video! 2. One of the "Basketball-SP" records under the "Products" table needs to be deleted. 3. Price for "Basketball-SP" needs to be updated in the original table ( @16:49). It should be either $23 or $25. 4. Order Totals for "Customer Order ID" #1 and #4 don't look correct ("Customer Orders" table).
@davidholguin62435 жыл бұрын
That was Excellent ! I guess I’ve been lucky with not having so complicated data. Thanks, Sgt. Dave
@johnesraelo46143 жыл бұрын
excellent work Joey
@IrishDean10003 жыл бұрын
Thanks for this
@mikesdailygaming2 жыл бұрын
Normalization might as well have been mandarin before now, thank you!
@dawitworku8213 жыл бұрын
Thank you a lot, you are different!
@Adeshiomedia2 жыл бұрын
waw impressive
@ekaterinavolkova4348 Жыл бұрын
Great! Thanx!
@dagmawihaddish32354 жыл бұрын
Pls tutor java,c#,assembly. Only one ofcourse. I only saying this b/c u helped me a lot thank you very much.
@ironicxd69944 жыл бұрын
Thank you so much , this helped me a lot , keep it up plz
@jbighitter3 жыл бұрын
Bob Smith on bottom two rows changes to Bill Smith later
@michaelhunter48914 жыл бұрын
Our teacher showed us this video.
@umairjibran75 жыл бұрын
those who haven't watched this video and searching for "DB Normalization" are even dumber than I am. This is a Life saver.
@arnabpersonal67293 жыл бұрын
Maybe youtube is
@kaedien4 жыл бұрын
At 8:25, when normalizing to 2NF, Mark Smith has a Titleist basketball and Bob Smith has a Spaulding basketball. A few seconds later after deleting rows from the Product table, Mark Smith has a Spaulding (note: no longer Titleist) basketball. Manufacturer:Product was m:1 and then changed to 1:1 behind the scenes. This is confusing for those learning about normalization. It seems the error was noticed while recording and fixed "off camera" - it would be helpful to correct the error in the video for those of us following along. I was confused about how having just the product name as a foreign key could uniquely identify both the product and manufacturer when, at that point, two manufacturers had basketballs.
@Kipviss3 жыл бұрын
niemand gaat dit lezen broer
@kaedien3 жыл бұрын
@@Kipviss behalve jou!
@GregoryKodolanyiRitter4 жыл бұрын
Great, thank you!
@GoodDeedsLeadTo Жыл бұрын
2nd Normal form Why do we need order date to make a unique composite key, when customer and product are sufficient to make a primary key? Please answer the question, thanks
@fatefulwall30105 жыл бұрын
Extremely helpful! Thank you Joey!!!
@dosdeviant3 жыл бұрын
Glad I found this.
@user-jz9rm8xn9n Жыл бұрын
ذاكر الكويز يابطل…
@brb2010ful Жыл бұрын
قاعدين نذاكر
@alemtewodros21315 жыл бұрын
I am the luckiest to be here.Thanks Sir
@adityagorre2 ай бұрын
In this video 20:16 how did you sort product key. if we double click on that will it save all the rows
@HerePiggyPiggy5 жыл бұрын
Your 2nd normal form needs composite keys for customer and product. Your “primary keys” fall apart the moment you get two customers with the same name or two basketballs from different manufacturers.
@renaissongsman5 жыл бұрын
Keep watching? That happened after about 20:00 ... but, yeah.
@kaedien4 жыл бұрын
This was fixed behind the scenes at 8:25. The Titleist basketball was deleted and Mark Smith's order was changed from Titleist to Spaulding.
@marko-lazic4 жыл бұрын
But how are Dozen, Pack, Inch and $ atomic when they are combined with numbers?
@markbrad1234 жыл бұрын
"Nothing but the key" An approximation of Codd's definition of 3NF, paralleling the traditional pledge to give true evidence in a court of law, was given by Bill Kent: "[every] non-key [attribute] must provide a fact about the key, the whole key, and nothing but the key".[7] A common variation supplements this definition with the oath: "so help me Codd".[8] Requiring existence of "the key" ensures that the table is in 1NF; requiring that non-key attributes be dependent on "the whole key" ensures 2NF; further requiring that non-key attributes be dependent on "nothing but the key" ensures 3NF. While this phrase is a useful mnemonic, the fact that it only mentions a single key means it defines some necessary but not sufficient conditions to satisfy the 2nd and 3rd normal forms. Both 2NF and 3NF are concerned equally with all candidate keys of a table and not just any one key.
@brenthalbach36452 жыл бұрын
Great stuff. How would you deal with price changes over time? Do you need a separate Price table with dates or something? Would be great to get your input. Thanks, appreciate your content.
@helheimrgaming25476 жыл бұрын
Thank you Joey, very helpful!
@ronyniv225 жыл бұрын
The best one that i have seen!!
@happyjays7145 Жыл бұрын
I noticed that Product ID - Basketball - SP is duplicate in product tabke so it is not qualified as Primary Key...?
@Martin-lf9se5 жыл бұрын
Nicely done Joey! Thank you...
@perkjr7834 Жыл бұрын
How does product manufacturer depend on product if there is a manufacturer that has 2 diff products
@NoWhiteGullibility5 жыл бұрын
Awesome
@jeetsoni6722 жыл бұрын
hows does the qualntity depend on the order date? Can we just notpull the quantities using customer id and product?
@osmankhaled45655 жыл бұрын
Excellent Video.
@Mind_Worm5 жыл бұрын
THANK YOU this helped so much!
@kanduriveeresh95685 жыл бұрын
It was very well explained with example, thank you
@sukanyachauhan96535 жыл бұрын
Joey, please help with the download link for SQL server. I am starting SQL learning from your video.
@nickt4234 жыл бұрын
@26:24 You have the OrderTotal for OrderID 1 as $70 (in the Customer Orders table) but didn't bsmith1 order two $70 products. Shouldn't the OrderTotal for OrderID 1(in the Customer Orders table) be $140?
@dafuq31224 жыл бұрын
same questions
@sulemanmasood13822 жыл бұрын
sir my db is in mysql using MYISAM.... No foreign keys implemented with some columns repeating in tables as well... i have approximatelly 40 tables and all containns approx 500 rows.... but 5 or 6 tables contains above one million rows each....db is not normalized.....but it is still working fine...on LAN and on cloud as well ... what will be fuiture of my db...
@shaidoeseverything5 жыл бұрын
Great video, Thanks!
@giorgiodealcantara83745 жыл бұрын
Thanks for the video, Joey! Pretty good explanation. I got with one doubt in the end. What is the PK for the Customer mail catalog and the customer email subscription tables?
@stevenchen8074 жыл бұрын
Hi Joey, Thanks for the very instructional video. I do have a question. What do we do with the two ProductID Basketball-SP with different prices?
@steeleye20004 жыл бұрын
I think that was an oversight. They should either be the same price and then one of the rows would be deleted or the basketballs should be named to differentiate them (in the product column) like Basketball-yellow and Basketball-Orange.
@edgarsvilums15504 жыл бұрын
You just add a different Product ID for the differently priced one.
@LenaDobrinova3 жыл бұрын
one of 2 records needs to be deleted
@nolanhartwick48626 жыл бұрын
This video is quite good. It would be great if you could keep doing more of these Database theory videos.
@shingtome21793 жыл бұрын
Thanks for the video!
@jetmartin95012 жыл бұрын
Great stuff! Very helpful. Not to be picky but in trying to understand the "solution" I noticed (in the original large table) that Bob Smith made two purchases on 8/9 and the Order Total didn't add up to the total of the two lines. The total in the chart is $70...shouldn't it be $60 or am I missing something? Also should the "Customer Email Subscriptions" and "Customer Mail Catalogs" tables be JOIN tables? It seems that there is a Many-to-Many relationship between these tables and Customers (e.g.,, Customers can subscribe to Many Email subscriptions and an Email subscription can belong to many Customers). Seems like the classic situation for a Join table. Also currently the way you have it defined there is no primary key for these Email and Mail tables (as there are duplicates). Not sure if that is an issue. Thoughts?
@chriskobee3563 жыл бұрын
From 33:00 min to 34:30: why didn't you create a many-to-'many relationship between "Customer" and for example a table "Email-subscription". Now it looks like you created the intermediate table "Customer Email Subscription" but left out the other side (table Email subscription) that holds all the different types of subscriptions. Idem dito for the Mail Catalog set up.
@aroxing2 жыл бұрын
Assume you have a table User(id, email, username). All fields are unique. Does it satisfy 3NF?
@ruixue69555 жыл бұрын
4:19 2nd normal form 5:05 *partial dependence* 6:55 resolve partial dependency 9:45 3rd normal form 11:46 transitive dependency 13:51 fourth normal form 17:12 demo example 17:34 1.
@nyanyaa80434 жыл бұрын
Hi Joey, Do you offer training beside the online videos? you are good at this.
@rayhanrana67735 жыл бұрын
Just awesome man!!!
@BijouBakson5 жыл бұрын
Thank you, that was helpful
@AggTheMag2 жыл бұрын
which application are you using for this lesson?
@prasanthrajappan44013 жыл бұрын
Do we need to split the Customer address in example 1 to make it in 1st normal form as address seems to be composite attribute?
@vesselofrecovery4 жыл бұрын
You’re amazing!
@sheripharedwards4143 жыл бұрын
so how you create in in sql .?
@gooon6663 жыл бұрын
Isn't the Order Total field a Calculated field? Can it have a place in a table? If yes, how was it calculated here to show the results it exhibits here? Newbie here, thank you :)