Dimensional Modelling Is So Passe Darling
…or is it!?!?!?
Now that I’ve inflamed the Kimball fans with a cheap attention grab, we can get on with the topic in hand.
For those that don’t know, there was/is something of a sectarian war in the data modelling world.
One on side of the fence there are the Ralph Kimball fans.
These folk believe that analytic data models must be implemented as a set of facts and dimensions. Facts are numeric and additive, whereas dimensions are textual and descriptive.
Dimensional models are typically implemented using wide fact tables which join to several dimension tables in a ‘star schema.’ This can further be extended out to a ‘snowflake’ schema.
One the other side of the fence are the Bill Inmon fans.
These folk believe in the notion that analytic data models should be implemented in Third Normal Form (3NF). There is no mention of facts/dimensions in the 3NF world, just tables & columns, and a schema that looks a lot like a logical/conceptual model.
OK, so there’s two camps, so what? Well, here’s the rub…
From the 1990s onwards a lot of analytic folk came to believe that data warehousing/analytics was defined by the use of a fact/dimension model, i.e. if you wanted to build a data warehouse you could only do so if you implemented a Kimball model.
Conversely, if you built a data warehouse using a 3NF model it would be regarded as wrong or somehow wouldn’t work.
The Kimball approach made sense for a couple of reasons.
Firstly, it allowed non-scalable SMP based architectures (SQL Server, Oracle, DB2 et al) to cope with analytics by avoiding pesky joins between large tables.
Secondly, it made the data model easy to navigate for business users that had direct access to the data.
For those of us that didn’t suffer the constraints of SMP platforms, we merrily created 3NF models on Teradata, Netezza, Greenplum, Redshift etc.
We also gave the users a data model diagram showing how to navigate the schema. Simples.
The takeaway here is that data warehousing is not defined by, nor should it require, any particular data modelling approach.