EXPERT RESPONSE
I used to teach database design in graduate school, and your question is excellent! The main purpose of high normalization was the reduction of disk space, back when it mattered in the 1970s.
Today, I always introduce redundancy into the model whenever it can eliminate an SQL join, but not always. I make my decision based on two criteria:
1 – The size of the redundant item
2 – The volatility of the item (e.g. how often do I need to duplicate updates)
|