What is database normalization, and what are the specific use cases for normalizing versus denormalizing a schema?