Saturday, April 09, 2005

OODBs

I was discussing with Sheroy about persistence frameworks and the need for O/R mappers in Enterprise applications. We were talking about Hibernate and how it is being incorporated in EJB3 specs. The conversation then (naturally ??) shifted towards OODBs. There seems to be quite a few advantages of OODBs.
The most significant advantage of OODBs is that we eliminate the need of a separate data model. The data model just reflects your object model. Most modern Enterprise Applications have different object models and data models, and an O/R mapper to map the objects to rows in the database. This adds another layer of complexity to an already existing complex system, at a substantial cost. An OODB eliminates the need for this layer altogether.
If your application uses an RDB and you must reconstruct an object from data in the database, you frequently have to perform multiple queries. These queries could result in serious performance bottlenecks if not written efficiently. Constructing Objects from OODB records is straightforward. Another advantage with OODBs is that we don't require a separate query language like SQL. All the queries can be written in the OO language itself.
If OODBs have all these advantages, why are we then stuck with RDBs yet ?? Here are a few reasons that I could think of -
RDB is a proven technology which has lasted the test of time. From legacy systems written in COBOL, to applications written in Java/C# interface with RDBs. This allows the us to change the application technology to enhance scalability, performance and security and still use the same data model. This is a significant advantage, since the persistent data is considered to be the vital part of an application. OODBs on the other hand, tie us to a specific programming paradigm (and possibly to a particular OO Language) .
OODBs are an excellent tool for storing and retrieving objects. Most applications do not always load objects. Rather, there will be times when we need to search by ranges, patterns, and fuzzy criteria spanning objects that do not have obvious relationships. OODBs may not provide adequate support to such ad hoc queries.
All said and done, I think OODBs are a great way of working with data, and definitely worth a closer look.

2 comments:

Anonymous said...

Before getting too excited about object databases you should probably read this: http://www.neward.net/ted/weblog/index.jsp?date=20041004#1096951037892 and more importantly read the comments . It explains why in mainstream software development object databases are dead and are going to stay that way.

Anonymous said...

I want to prepare a thesis proposal in OODB, Please Assist me about the last research and further reseach in above field.

Thank you
Roham Farahani
E-mail: RoahmFarahani@yahoo.com