The Mother of All Database Normalization Debates on Coding Horror
Here are a few of the pithier points (summarized):
(John)
OK, more than a few quotes. There's certainly no lack of passion on the issue!
One thing I would add is to organize your application around an application level service layer rather than allowing applications to access the database directly at a low level. Amazon is a good example of this approach. Many of the denormalization comments have to do with the problems of data inconsistency, which is of course true because that's why normalization exists. Many of these problems can be reduced if there's a single service access point over which to get data. It's when data access is spread throughout an application that we see serious problems.