views:

177

answers:

3

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.

+1  A: 

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.

S.Lott
A: 

Perhaps you might do well to look at so-called document databases. CouchDB is popular, open source (free to obtain and disect) and simple to understand. CouchDB stores all data as JSON (easy-to-parse JavaScript Object Notation) documents and communicates with the outside world using only REST (just HTTP if you're new to this). One of the more interesting CouchDB features is that you can select data using the MapReduce paradigm for processing and aggregating data.

Looking at CouchDB might give you an idea of what some of the possibilities are when it comes to non-relational databases. Know that CouchDB is primarily concerned with storing data documents rather than entire objects. Some databases are true object databases insofar as they store the state of a given object in a program. Compare db4o.

yonkeltron
A: 

may be you should consider Object-Relational Mapping instead of switching directly to object databases.

Someone had successfully map relationnal databases via Django ORM for a BI purpose here

Hope it'll help !

iChaib