Interesting post. I'll assume it's from a programmer's perspective.
After many years of struggling with, and correcting the problems from very bad database designs, I've started compiling all the design and architecture mistakes into a blog.
In my first post, I compare DB design to the foundation of a house, and the Leaning Tower of Pisa.
I make the point that a good database model eliminates thousands of lines of code.
Not cause or require thousands of lines of code to make it work.
Also, that unlike programs, DB designs are rarely refined or rewritten.
There are a whole bunch of other mistakes listed in the category:
Unfortuately all the mistakes I've seen don't fall into the teachings of 3NF, BCNF, 5NF, etc.
I haven't written about denormalization yet. But denormalization implies that you have already normalized.
As for the question on views and performance, see the database tuning presentation, which has been circulating around the world.
There is also another presentation on cartesian products in SQL queries, which I've discovered are far too common.
Hope it's useful.