| ▲ | petalmind 3 hours ago | ||||||||||||||||
Imperative mood "normalize" assumes that you had something not-normalized before you received that instruction. It's not useful when your table design strategy is already normalization-preserving, such as the most basic textbook strategy (a table per anchor, a column per attribute or 1:N link, a 2-column table per M:N link). And this is basically the main point of my critique of 4NF and 5NF. They both traditionally present an unexplained table that is supposed to be normalized. But it's not clear where does this original structure come from. Why are its own authors not aware about the (arguably, quite simple) concept of normalization? It's like saying that to in order to implement an algorithm you have to remove bugs from its original implementation — where does this implementation come from? The other side of this coin is that lots of real-world design have a lot of denormalized representations that are often reasonably-well engineered. Because of that if you, as a novice, look at a typical production schema, and you have this "thou shalt normalize" instruction, you'll be confused. This is my big teaching pet peeve. | |||||||||||||||||
| ▲ | Quarrelsome 3 hours ago | parent [-] | ||||||||||||||||
> But it's not clear where does this original structure come from. Why are its own authors not aware about the (arguably, quite simple) concept of normalization? I find the bafflement expressed in the article as well as the one linked extremely attractive. It made both a joy to read. Were I to hazard a guess: Might it be a consequence of lack of disk space in those early decades, resulting into developers being cautious about defining new tables and failing to rationalise that the duplication in their tragic designs would result in more space wasted? > The other side of this coin is that lots of real-world design have a lot of denormalized representations that are often reasonably-well engineered. Agreed, but as the OP comment stated they usually started out normalised and then pushed out denormalised representations for nice contiguous reads. As a victim of maintaining a stack on top of an EAV schema once upon a time, I have great appreciation for contiguous reads. | |||||||||||||||||
| |||||||||||||||||