In terms of databases, is "Normalize for correctness, denormalize for performance" a right mantra?

Aydya picture Aydya · Nov 16, 2008 · Viewed 12.5k times · Source

Normalization leads to many essential and desirable characteristics, including aesthetic pleasure. Besides it is also theoretically "correct". In this context, denormalization is applied as a compromise, a correction to achieve performance. Is there any reason other than performance that a database could be denormalized?

Answer

Steven A. Lowe picture Steven A. Lowe · Nov 16, 2008

The two most common reasons to denormalize are:

  1. Performance
  2. Ignorance

The former should be verified with profiling, while the latter should be corrected with a rolled-up newspaper ;-)

I would say a better mantra would be "normalize for correctness, denormalize for speed - and only when necessary"