Hi Blom,
I'll try to avoid re-thrashing the aggregate table discussion again too. But it might creep back in.
My comment about the BI value of Booz's original table was based on the fact that all you could apparently get out of it was the number of meetings held each month. Nothing about attendees, nothing about Sites, not evan any information about the individual meetings. How many questions are you going to answer when the only answer you can give is, "We had 25,326 meeting in May."?
But the real point is, even if someone asks that question and I can answer it accurately, wouldn't you expect them to ask a follow-up question? "How did these break out by site?" "What were the average number of attendees?" "How many were overbooked?" None of those questions can be answered from that table. It answers one question.
To me, the value of BI is not it's ability to answer the question the user asked, but rather to answer the NEXT question they will ask.
That question may roll up to a higher level of summary or it may drill down to a lower level of detail or it may shift over to another, related area of the business ("Gee, I'm not selling many 40 megawatt widgets this month, but sales are down all across the world. It's obviously not a sales problem, per se. Let's take a look in manufacturing and shipping of widgets."
The difficulty with aggregate tables like Booz originally proposed (oops, aggregates slipped in again) is that they are designed to answer specific questions but are of limited help after that question is asked. They don't help much with the next question.
If I keep the facts at the atomic level, I can always roll up but if I pre-aggregate, I lose detail that I can never regain. That's why Kimball always recommends keeping the atomic facts, even if you create aggregate tables.
Now obviously, there is a potential performance hit in always rolling up the detail so folks look for ways to address that problem. Creating aggregate tables is one of those ways. If all you have is SQL, it is about the only way. Of course, most users don't actually write SQL, they use some BI application (or at least they would prefer to). BI tools can broaden your options. If you can get acceptable performance and be able to ask the NEXT question, then it's good BI, with or without aggregate tables.
My goal is to build the simplest data structure possible to answer the broadest range of questions in the shortest possible time. As I said before, you can always add complexity to a solution. You can't add simplicity.
I hope I clarified rather than confused.
Matt
