New book review for Agile Data Warehouse Design: Collaborative Dimensional Modeling, from Whiteboard to Star Schema, by Lawrence Corr and Jim Stagnitto, DecisionOne Press, 2011, reposted here:
Good step-by-step guide for capturing data warehousing requirements and building dimensional models from these requirements through modelstorming (data modeling plus brainstorming) with business intelligence stakeholders. After explaining the difference between online transaction processing and data warehousing, and explaining high-level aspects of the 7Ws framework and the BEAM agile dimensional modeling method in the introductory chapter, the authors discuss modeling business events, business dimensions (the second longest chapter containing about 12% of the text), business processes, and star schemas, followed by design patterns for "who" and "what" (the longest chapter containing about 13% of the text), "when and where", "how many", and "why" and "how", corresponding to the 7Ws.
Unlike some other technical texts, the authors really do walk the reader through the material one step at a time, with no skipping around between topics that many readers complain about elsewhere. Other than the step-by-step aspect of this book, another reason I found this book so well put together are the abundant, well-placed diagrams throughout that greatly add to the material. Although what initially got me interested in this text is the agile process surrounding data warehousing, the chapters on dimensional design patterns for performance, flexibility, and usability compliment well the book that I currently consider the best on the traditional data warehouse star schema, "Star Schema: The Complete Reference" by Christopher Adamson (see my review).
In the chapter covering "who" and "what" design patterns, for example, the authors cover customer dimensions (particularly challenging because of their typical depth, width, and volatility) alongside the mini-dimension pattern, the sensible snowflaking pattern, swappable dimension patterns, customer relationships, and hierarchy maps, as well as employee dimensions alongside the hybrid slowly changing dimension (SCD) view pattern, the previous value attribute pattern, and the multi-valued hierarchy map pattern, followed by product and service dimensions alongside the multi-level dimension pattern and the parts explosion hierarchy map pattern. And the chapter covering "how" design patterns provides one of the best concise explanations of fact table types and fact types.
The one potential issue with this book is that although its goal is agile data warehouse design, getting familiar with the BEAM (business event analysis and modeling) notation used throughout the author discussions might be a bit time prohibitive for teams comprised of more than a few individuals to become accustomed when using for the first time. While the second appendix at the back of the book provides effective short codes for event story and fact table types, dimension table types, general column codes, data types, key types, dimensional attribute types, and event detail and fact column types, some upfront initial team investment will almost certainly be involved for which an agile spike will be needed, and close attention to workability with stakeholders should be assessed. Well recommended overall.