[Verse 1] Sarah's got a spreadsheet, customer data everywhere Names repeating in each row, addresses here and there Phone numbers scattered wide, no structure to be found First Normal Form steps in, to turn this mess around Atomic values only, no lists inside a cell Each column single valued, organize and do it well Remove those duplicate rows, make each record unique Primary keys will guide us, that's the foundation that we seek [Chorus] Normalize your tables, step by step we climb From chaos into order, data structure so divine One-N-F to Three-N-F, dependencies we'll break Entity relationships, the perfect model we will make [Verse 2] Now we're in Second Normal, but partial dependence lurks Order ID determines date, but product info works Only with the product key, not the full composite Split the table right in half, let each dependency fit No more partial problems, every non-key attribute Depends upon the whole primary, that's the rule absolute Orders table, products table, each one standing clean Second Normal Form achieved, the cleanest you have seen [Chorus] Normalize your tables, step by step we climb From chaos into order, data structure so divine One-N-F to Three-N-F, dependencies we'll break Entity relationships, the perfect model we will make [Bridge] Draw those E-R diagrams, rectangles for entities Diamonds show relationships, lines connect the families One-to-many, many-to-one, foreign keys will bind Primary key in parent table, child table you will find [Verse 3] Third Normal Form appears, when transitive deps remain Student ID gives us major, major gives us building name Create a majors table, link it with a foreign key No non-key determining non-key, that's the rule to be free But sometimes we denormalize, when performance needs arise Join operations cost too much, response time we must comprise Calculated fields we store, redundancy we allow Trading space for query speed, performance takes a bow [Outro] From messy data chaos, to structured beauty bright Normalization guides us, from darkness into light Remember all the trade-offs, when performance matters most Sometimes we break the rules, to serve the data we host
Document/NoSQL - JSON/BSON structures, embedding vs. referencing, schema-on-read →