So, it is right there in the title of the book “Relational Database Design” etc (the title is kinda long :) But as I consider what to cover and, conversely, what not to cover, dimensional design inevitably pops up. So I am considering including it in the book. One thing I try to do is to cover topics to a level where you can start using it immediately, and I am not sure that I could get a deep enough coverage of the subject to do that. I don’t really feel like it has to be the definitive source on all topics, but it should be usable.
For example, I have a chapter on physical structures, indexes, files, partitions, etc. After reading the chapter, you will have a good enough feeling for the structure of the database to know the basics of applying indexes, partitions, filegroups, etc and a good amount of when and where to apply them. In the end, I usually direct readers to go elsewhere for the truly advanced coverage of the SQL Server Internals (like the books of the owner of the http://www.sqlserverinternals.com/ domain, in fact).
In this case, I am not really thinking that a full chapter is possible, but more of a quick intro. Fact and Dimension tables, and an example or two. The real payoff will be in the case study chapters where I could include a basic set of tables to demonstrate how offloading reporting to a dimensional structure could be done and how it can be used to produce a reporting model that takes the complexity out of writing reports. No ETL coverage of course, and I would use a complete reload script to simulate the data.
Admittedly, the point of these design book blogs is to talk myself into or out of doing something, and usually I pretty much have the answer by the time I am finished. In this case I am still not sure. On the good side of thing, I won’t have to just say “data warehousing, good idea, denormalization, bad idea, get another book and find out”. On the other hand, can I really cover the topic deep enough to make it worthwhile? I don’t think I can include an example in the case studies and not introduce it in the skills chapters.