Suppose, you are going to develop an application that will be mainly used for data analysis. The database for this application contains huge amount of data which is mainly loaded in batches. This application does not require insertion/updation/deletion of individual records. Our main objective is to improve the performance of application to quickly perform desired analysis.
Now, as a student of the Database Management System, you are going to design the database for above application. In the database design, your main concern will be the “efficiency” in term of searching. Now would you normalize the database or keep your database in de-normalized form.
Normalization structures data so every attribute is stored in exactly one place. This has two major benefits:
Those are nice. Application requirements are more important. If you have data that does not need to be updated, then these issues are very mitigated. You should use the data model that meets the application demands.
It is actually rather common to have operational (transactional) systems with a more normalized data model and then to have decision support systems with unnormalized models. A canonical example is dimensional modeling, where the original data is summarized for application purposes.