This is true. Normalization gives you a good foundation but ultimately the database design has to take into account the nature of the data being stored and how that data will be used. The usage pattern of the data must be used to achieve a balance between the benefits and overhead of normalization.
Normalization isn't "free". There is a certain amount of overhead incurred with higher levels of normalization due to the increased number of tables and constraints between the tables. This overhead is felt in several areas including the DBMS, DBA maintenance, and application code complexity.
A fully normalized database (3NF or higher) can require a lot of joining of tables when making a simple query since the constituent parts of the data ...
This solution discusses whether or not database normalization is sufficient for creating the best database design for an application. Clear examples are provided.