R – Object Database, business intelligence and warehousing

data-warehouseobject-oriented-database

Sorry if this seemed a novice question but I am new to the data warehousing and business intelligence world.

From what I have read I can see that a multidimensional database is needed due to limitations of the relational model. Any thing that you need to do with a multidimensional database can be done on an ordinary relational database with very complex queries and slow performance join and aggregation operations.

The question is do we need the same concepts (multidimensional database – data warehouse, etc) when we talk about business intelligence for object database? The object databases don't have joins because relations between objects are maintained by direct references.

Best Answer

Multidimensionality is an essential feature of data warehousing.

It is not a "workaround" for limitations of the relational model. It is the best way to model data where you need to do arbitrary "slice and dice" analysis of facts with respect to multiple non-trivial dimensions.

Star-schema queries are not very complex. They're actually very simple, since they're almost always of the form SELECT SUM(MEASURE) FROM FACT JOIN DIM1 ON ... JOIN DIM2 ON ... WHERE....

Join operations are -- generally -- slow. However, the joins can be done in object-oriented code instead of a SQL warehouse.

In many cases, most dimensions are actually rather small and fit entirely in memory. The analysis queries can devolve to simple fetches of all the facts followed by in-memory lookups of dimensional attributes.

In the remaining cases, we have a snowflake schema where a dimension (usually a customer, patient or member dimension) is almost as large as the relevant fact table. In this case, a relational join in the database is helpful.

"The object databases don't have joins because relations between objects are maintained by direct references."

Isn't completely true. Object databases have navigation from object to object. If you retrieve a set of objects along with their related objects, a join operation will -- in effect -- have been performed.

"The question is do we need the same concepts (multidimensional database - data warehouse, etc) when we talk about business intelligence for object database?"

Yes. Multidimensionality is essential. Absolutely. An object database will represent this just as well (or perhaps better) than a relational database. Either model, however, must represent the essential truth of Measures and their Dimensions.

Related Topic