Decomplexify
Decomplexify
  • 8
  • 2 630 855
Entity Relationship Diagrams
An easy-to-follow tutorial on Entity Relationship Diagrams (ERDs). In this video, we explore how ERDs help to clarify crucial aspects of what’s going on in a database design. Using a range of examples, we go step-by-step through the process of taking a set of information requirements and turning it into an ERD.
0:00 Introduction
0:57 Extracting information requirements
2:58 Relationships
4:07 Cardinality
6:42 Basics of Chen notation
9:50 Attributes
11:04 Weak entities
13:17 Crow's foot notation
15:10 M-M / 1-M / 1-1 relationships
18:07 From ERD to relational database
20:00 Conclusion
Переглядів: 5 657

Відео

Learn SQL Joins
Переглядів 61 тис.Рік тому
An easy-to-follow SQL joins tutorial, with lots of examples. Covers the main types of SQL joins, namely: - INNER JOIN - LEFT OUTER JOIN - RIGHT OUTER JOIN - FULL OUTER JOIN - CROSS JOIN 0:00 Introduction 0:40 INNER JOINs 9:08 LEFT OUTER JOINs 13:04 RIGHT OUTER JOINs 15:36 FULL OUTER JOINs 17:10 Tailoring the matching criteria 18:40 CROSS JOINs 19:24 Joining a table to itself 21:06 Conclusion
Learn Database Denormalization
Переглядів 49 тис.2 роки тому
What is RDBMS denormalization all about? This video will help you to recognize situations in which it is appropriate to denormalize a relational database table - or avoid normalizing it in the first place. Featuring lots of examples and a focus on the design process.
Database Keys Made Easy - Primary, Foreign, Candidate, Surrogate, & Many More
Переглядів 175 тис.2 роки тому
An easy-to-follow tutorial covering the whole gamut of RDBMS keys: primary keys, candidate keys, superkeys, alternate keys, foreign keys, surrogate keys, natural keys, simple keys, composite keys, compound keys, and intelligent keys. Featuring lots of examples and a focus on the design process. 0:00 Introduction 0:53 Primary Keys 3:29 Candidate Keys 6:09 Superkeys 7:57 Alternate Keys 8:49 Forei...
Learn Boyce-Codd Normal Form (BCNF)
Переглядів 115 тис.2 роки тому
An easy-to-follow & comprehensive explanation of Boyce-Codd Normal Form (BCNF), with examples. After watching this video, you'll understand BCNF and the key concepts that enter into the BCNF definition, for example "prime attribute", "non-prime attribute", "candidate key". And you'll understand exactly how BCNF improves upon Third Normal Form (3NF). See also Decomplexify's full step-by-step dat...
The Surprise Exam Paradox, Part 2
Переглядів 5 тис.2 роки тому
The Surprise Exam Paradox (which is equivalent to the Unexpected Hanging Paradox) is a mind-boggling logical conundrum. In Part 1, we ran through our own variation of this paradox. Here in Part 2, we give an in-depth analysis of the paradox - and attempt to resolve it.
The Surprise Exam Paradox, Part 1
Переглядів 9 тис.2 роки тому
The Surprise Exam Paradox (which is equivalent to the Unexpected Hanging Paradox) is a mind-boggling logical conundrum. In this video ("Part 1"), we run through our own variation of this paradox. Have a go at solving the mystery of the Surprise Exam Paradox yourself... and stay tuned for Part 2, where we analyze the paradox in detail and present our own resolution to it!
Learn Database Normalization - 1NF, 2NF, 3NF, 4NF, 5NF
Переглядів 2,2 млн3 роки тому
An easy-to-follow database normalization tutorial, with lots of examples and a focus on the design process. Explains the "why" and "how" of normalization, and takes you step-by-step through: - First Normal Form (1NF) - Second Normal Form (2NF) - Third Normal Form (3NF), with a side note on Boyce-Codd Normal Form (BCNF) - Fourth Normal Form (4NF) - Fifth Normal Form (5NF) 0:00 What is database n...

КОМЕНТАРІ

  • @AAA-f1m
    @AAA-f1m 3 години тому

    How do we draw "Views" or query results? Suppose I'm developing a pet app that has a page where I list all my pets. What does it look like to represent that query in a diagram? I find that apps are just a bunch of queries with UI. I also spend too long over thinking the perfect DB schema for all scenarios, but ultimately it's just a list view, details view, etc. How do we represent those in a diagram that helps developing the DB schema I actually need? I hope I'm making sense. s/o from 🇿🇼 🇿🇼 🇿🇼 keep up the good work

  • @Antal46
    @Antal46 8 годин тому

    Are you kidding me? This took my lecturer 6 months and I could not comprehend WTF he was talking about.. Bro explained normalizations without even mentioning it LOL Thank You!

  • @hekinyessa8391
    @hekinyessa8391 2 дні тому

    if only my lecturer explained things like this instead of reading her slides things would've been easier to understand

  • @raveenrandika9191
    @raveenrandika9191 3 дні тому

    Awesome

  • @AlexKashie
    @AlexKashie 4 дні тому

    Wow, thank you so much... You are a hero!

  • @kankanadey8797
    @kankanadey8797 5 днів тому

    Great explanation. One doubt... so now when it is in BCNF, there are 2 candidate keys right?..{ Movie_name } and {Release_year, Ranking}..as Release_month and Ranking together is not enough anymore to be a candidate key...so only Release_month is non-prime and other attributes are prime in the table....Right?

    • @decomplexify
      @decomplexify 5 днів тому

      Thanks for the comment and question! Yes, that's exactly right.

  • @christianaudebert7668
    @christianaudebert7668 5 днів тому

    beatles, very bad sample...and what about the 5th beatles.?

  • @revanmardagh
    @revanmardagh 6 днів тому

    This video is great! the only one I understand. thank you for making this

  • @christopherg2347
    @christopherg2347 6 днів тому

    19:10 I remember 1-3 summed up as: "The key, the whole key and nothing but the key - so help me Codd."

  • @MCasterAnd
    @MCasterAnd 6 днів тому

    I work as a sysadmin on a 35 year old insurance platform. Some of the tables are more than 300 columns long. It contains 700+ hand-crafted tables and about 19000 columns in total. This video neatly describes quite a few mistakes which have been made while developing this system over the years...

  • @vthallam
    @vthallam 6 днів тому

    Loved it! Simple and clear

  • @fahdfuhaid573
    @fahdfuhaid573 7 днів тому

    Thanks.. best explainer

  • @fahdfuhaid573
    @fahdfuhaid573 7 днів тому

    Clear and easy to follow. I have a question about which level is this table and why: [Product_ID, Product_name, Product_model, Product_Manufacturer_Name] Product_Manufacturer_Name can be the same for many rows. so what level is this table?

    • @decomplexify
      @decomplexify 7 днів тому

      Thanks for the comment and question! The fact that Product_Manufacturer_Name can be the same for many rows tells you very little. It simply means that Product_Manufacturer_Name cannot be the key. But this is unsurprising, because your table isn't a table of Product Manufacturers (i.e. one row per Product Manufacturer), it's a table of Products (i.e. one row per Product). The key is Product_ID. To determine whether your table is in 3NF, remember that the criterion for 3NF is: every non-key attribute must be dependent on the key, the whole key, and nothing but the key. It's clear that in your table, every non-key attribute is dependent on the whole key Product_ID. The only question remaining question is: does it ever happen that one of your non-key attributes is dependent on another non-key attribute (or combination of non-key attributes)? For example, is it the case that {Product_Name, Product_Model} --> {Product_Manufacturer_Name}? If you can answer this question, then you'll know whether your table is in 3NF or not.

    • @fahdfuhaid573
      @fahdfuhaid573 6 днів тому

      @@decomplexify Thank you. i appreciate your reply.

  • @paullvindquist
    @paullvindquist 7 днів тому

    Learned this stuff 20 years ago.. I had forgotten most of it, but you took me back. Thanks! Very nice video.

  • @AliYoussef-oo4oe
    @AliYoussef-oo4oe 9 днів тому

    the man, the myth, the legend. welcome back bro

  • @xMinoYTx
    @xMinoYTx 10 днів тому

    Exactly what I was looking for!

  • @수학천재의수학강의
    @수학천재의수학강의 10 днів тому

    역시 Normalization은 신 창 섭

  • @Sigabiel
    @Sigabiel 11 днів тому

    Great Video but I am wondering why Release_Month is dependend on the release year in your example. Why can't a movie that was released in a previous year be the movie of the current year. That way there would be any dependency between releasee_year and release_month would it? Thanks for the help

    • @decomplexify
      @decomplexify 10 днів тому

      Hi, thanks for the comment and question. "Ice Age: Dawn of the Dinosaurs" has a "Release_Year_And_Month" of 2009-07, meaning the film was released in July 2009. Therefore its Release_Year (meaning the year it was released) has to be 2009. Release_Year depends on Release_Year_And_Month, by definition.

  • @AnneEs-nf6ft
    @AnneEs-nf6ft 11 днів тому

    Clear and well explained video - thank you 🙏

  • @maurernorbert7031
    @maurernorbert7031 13 днів тому

    nice and good explanation. But reality often goes against NF3-5, where performance is more important than the normalized db.

  • @seekerrv5823
    @seekerrv5823 14 днів тому

    Kindly bring video on Stored procedures.

  • @Chainerlt
    @Chainerlt 14 днів тому

    Great explanation. Although, coming from big tech and big data I want to warn folks to not blindly design relational dbs like this. Sometimes speed is more important than normalization esp on read heavy tables, thus having seemingly duplicate data is okay. Second advice: do not use foreign keys, there will be a day when you will need to make a breaking schema change, and you'll thank God you just read this comment.

    • @rianhoward3911
      @rianhoward3911 9 днів тому

      "Do not use foreign keys" is possibly some of the worst DB design advice I've ever heard. It pushes the responsibility onto the application for maintaining the integrity of data relationships onto the application, but maintaining the integrity of data relationships is one of the most important purposes of a DB.

  • @alexandermishev6897
    @alexandermishev6897 16 днів тому

    I couldn't imagine a complex matter like this being explained in a such an easy, straightforward and satisfying way. I feel enlightened - literally.

  • @user-vy3ed4gu5l
    @user-vy3ed4gu5l 17 днів тому

    Such a nice video about a subtle difference! Keep up the good work

  • @user-vy3ed4gu5l
    @user-vy3ed4gu5l 17 днів тому

    This is a great video! You explained it in more depth, used clearer examples and were easier to follow than my professor! : ) Thank you, I am liking subscribing, commenting and sharing! Everybody should have access to these kinds of videos

  • @adetayoakinsanya8149
    @adetayoakinsanya8149 18 днів тому

    welcome back

  • @melophile9859
    @melophile9859 19 днів тому

    damn i feel like im gettin good at sequel . how genius of me!!

  • @itaybarok9405
    @itaybarok9405 20 днів тому

    AMAZING

  • @itaybarok9405
    @itaybarok9405 20 днів тому

    AMAZING

  • @sudip7949
    @sudip7949 20 днів тому

    Tomorrow i was thinking of revising students about ER diagram, what a perfecting timing of this video recommendation ❤

  • @sudiptaranjanpatra1876
    @sudiptaranjanpatra1876 21 день тому

    Hey welcome back your explanations are an absolute gem and I love your all videos.... Please keep posting

  • @ehm-wg8pd
    @ehm-wg8pd 21 день тому

    something wrong with the 4NF even i read the pinned correction you should have separate out the Model - Model Id into new model table Color table and style table should depend on the Model PK

    • @decomplexify
      @decomplexify 21 день тому

      In the example, we're just examining one table - Model_Colors_And_Styles_Available - and asking whether this table is in 4NF. It isn't. The information that the Model_Colors_And_Styles_Available is communicating can instead be communicated using two tables: Model_Colors_Available and Model_Styles_Available. Both these tables are in 4NF. Your comment mentions two things: the first is about the desirability of having a Model table, and the second is about the idea of using Model IDs to represent models. Nothing in the example prevents you from having a Model table in addition to the tables mentioned. But when it comes to expressing information about the available colors and styles for each model in a normalized manner, the existence of a Model table is irrelevant. The question of whether models are identified using a string column called "Model", or using an integer column called "Model_ID", is also irrelevant from the point of view of normalization. There are plenty of good reasons to have a Model table. And there are plenty of good reasons to use simple integer surrogate keys (e.g. for identifying models). It's just that these reasons have nothing to do with the requirements of 4NF.

  • @bhuvaneshraj5405
    @bhuvaneshraj5405 22 дні тому

    hey king you dropped this👑

  • @AnderzL7
    @AnderzL7 22 дні тому

    Who tf is this video for?? If you know anything about databases this is common knowledge and if you don’t know anything about databases this video won’t mean anything to you. Waste of 30 minutes

  • @hb3393
    @hb3393 23 дні тому

    God I love your videos thank you so much 🙏

  • @lephantriduc
    @lephantriduc 23 дні тому

    Whenever I do exercises on normalization, I always visualize the examples in this video! One of the most useful videos I have watched!!!

  • @sungodfatih
    @sungodfatih 23 дні тому

    Thank you for your video. It was made very nice and clear.

  • @TheNiro87
    @TheNiro87 23 дні тому

    Before the we started our current project, I forced our desinger to watch your videos. He now drafts the DB himself and does not make up strange relations anymore hence I only have to improve on the draft. You safed me a ton of work. Thank you!

    • @decomplexify
      @decomplexify 22 дні тому

      You're welcome! Glad I've been able to help your designer to do things better.

  • @lichterzauber
    @lichterzauber 23 дні тому

    All your explainer videos are masterful and second to none. Thank you!

  • @SumTingWong886
    @SumTingWong886 23 дні тому

    Missed your vids, hope to see more! 💛

  • @nicholasjordan677
    @nicholasjordan677 23 дні тому

    Thanks to your normalization video I was able to finish up my first database class I thank you for the nature of your production.

    • @AAA-f1m
      @AAA-f1m 3 години тому

      Those normalisation vids are 🔥 🔥 🔥

  • @hanabiilesley
    @hanabiilesley 24 дні тому

    Bro remembered his password, w vid as always

  • @HARSHULSINGAL-dz3nx
    @HARSHULSINGAL-dz3nx 24 дні тому

    I started learning about database systems today wishing you upload more and voila, thanks for coming back!

  • @peiopascualhernando2236
    @peiopascualhernando2236 24 дні тому

    Genius channel THANK YOU

  • @Skyb0rg
    @Skyb0rg 24 дні тому

    How would you enforce a one to many relationship in the other direction in SQL? Ex. enforce that every Address is associated with at least one Person.

    • @decomplexify
      @decomplexify 24 дні тому

      That's a little complicated. On most database platforms, you'll need to write "triggers", for example a trigger to ensure that if an attempt is made to put through a transaction that deletes the only remaining person associated with a given address, this attempt is detected and the transaction is automatically rolled back. If you are designing your database using a sophisticated data modelling tool like ERwin, the tool will be able to see (from the cardinalities you specified on the relationship in your diagram) that these triggers are needed, and will script them for you automatically.

  • @Bulbadane
    @Bulbadane 24 дні тому

    WOOOHOO HE'S BACK

  • @RawShogun
    @RawShogun 24 дні тому

    I’m just want to let you know you helped me get started as a master data manager, I’ve since been promoted to Sr analyst thank you so much.

    • @decomplexify
      @decomplexify 24 дні тому

      Congratulations! That's amazing, and you are welcome - it's really gratifying to learn that my videos have played some part in this.

  • @RawShogun
    @RawShogun 24 дні тому

    Your back!

  • @cringeyetfree
    @cringeyetfree 24 дні тому

    omg

  • @InkFPS
    @InkFPS 24 дні тому

    What of the scenario where students study beforehand and are prepared for an exam any day of the week? Whether it is a surprise or not is no longer relevant because they were told there would be a 'surprise' exam, meaning It isn't much of a surprise regardless of when it occurs.