Most of us have heard of "third normal form" and treat it as a goal to achieve. In this talk, we will treat third normal form as a speedbump. Let's get deeper into the concepts of database normalization and understand the types of data problems we can solve with more advanced normal forms. This talk will briefly cover first normal form as the foundation and then show how to move from first to Boyce-Codd Normal Form. From there, we will look at 5th and 6th normal forms, as well as intermediate steps along the way. We will conclude with a discussion of where things are generally "good enough."
ADDITIONAL MEDIA
I have put together a YouTube playlist containing a modified form of this talk's contents.
The primary resource I used for this talk was C.J. Date's Database Design and Relational Theory, 2nd Edition. This is an academic work, so parts of it can be a tough read. That said, it is an outstanding book for describing the state of the art when it comes to database normalization.
The method I use to solve for Boyce-Codd Normal Form comes originally from a Jennifer Widom lesson. That video is no longer available, but I have a blog post describing the technique.
Anchor modeling is a technique I wanted to cover in the talk, but definitely had no time for. It's an interesting approach, but probably deserves its own separate talk.