When you read about normalization you usually get the set of conditions that a database in the nᵗʰ normal form should satisfy and the set of rules, a sort of a cook-book, for obtaining that normal form. But why these rules are safe to apply to your denormalized relations is a skip material. Here, I would like to present some elementary concepts on how we decompose relations and what can go wrong.
Do you remember the post about update anomalies? I promised you we’d explain how to design tables which have no update anomalies. So here we go! Today we begin a series of posts on data normalization. We will talk about functional dependencies, a concept that needs to be explained before we dive deeply into database schema normalization. The subject is rather abstract and theoretical but I will try to restrain myself from going too deep into mathematics.