A question regarding the performance of normalization
The relationship between normalization and performance is complicated.  Sometimes the pursuit of normalization and the pursuit of high performance lead in the same direction, sometimes in opposite directions.  You have to look at each case carefully.

More importantly, there is more than one measure of "goodness" in a database.  In addition to performance, there is ease of programming, ease of understanding, adaptability in the face of changing requirements, and so on.

Learning how to normalize is just the beginning.  In addition to learning the basic normal forms (1NF, 2NF, 3NF, BCNF, 4NF, 5NF), you should learn what benefit you get out of conformance to each of these normal forms.  In general, conformance to 1NF buys you keyed access to all data.  conformance to 2NF through 5NF buys you freedom from harmful redundancy. Once you know the benefits, you can compare them against the costs. 

A database that contains harmful redundancy has the possibility that the database will  contradict itself, by storing contradictory predicates in two different places.  You can exercise discipline in avoiding self contradiction by being very careful when you write the application.  But it's often better to design the database in such a way that it can't contradict itself, and normalization helps here.  

Normalization sometimes helps a database to avoid "hot spots" at update time, where the DBMS is forced to serialize update transactions, and thereby creates bottlenecks.  But extracts and reports are often slower and more cumbersome than they are on a well designed database that is not normalized.

If you do decide not to normalize, don't just design at random, composing tables in any way that seems good at first sight.  Adopt some design discipline other than normalization to guide you to a good design.  Star schema is one such alternative design discipline.