Re: The wisdom of the object mentors (Was: Searching OO Associations with RDBMS Persistence Models)

From: Robert Martin <unclebob_at_objectmentor.com>
Date: Wed, 31 May 2006 08:43:52 -0500
Message-ID: <2006053108435264440-unclebob_at_objectmentorcom>


On 2006-05-30 16:08:14 -0500, "David Cressey" <dcressey_at_verizon.net> said:

> I think you have to solve the problem of defining a meaningful and useful
> OODBMS without reference to the relational model.

While I think OODBs can be useful tools, I also think that the domain of data and the domain of behavior are never going to be unified. My reasoning is as follows:

In an enterprise there is a large body of interelated data. This data needs to be kept in one place, and in one form, in order to eliminate duplication and maintain integrity.

In an enterprise there are many different applications. Each application needs to manipulate a portion (or "view") of the data. Very few applications need to maniuplate ALL the data.

The optimum structure for each application is local to it's particular function.

the optimum structure for the data has to do with ALL the applications.  The structure of the data must make affordances for the most important applications, generally at the cost of inefficiency for those applications that are infrequent or less important.

So, the design trade-offs for the applications are completely different from the design trade-offs for the data model. Therefore unifying them is probably impossible.

To unify them in an OO dabase has even more difficulty. Objects are an admixture of data and behavior. If we created an enterprise wide OO dabase, the objects in that database would have to have all the behavior needed by ALL the applications that maniuplate them. Every time one of those behaviors is changed, it puts ALL the other applications at risk. A change to one application means changing objects that other applications depend upon. Therefore there is an increased coupling between the applications. This cannot be allowed to go on for very long.

To defend themselves developers export behavior out of the OODB and into the applications. Eventually the OODB is denuded of behavior and becomes little more than a network database -- a pile of interelated data structures. At which point it might as well be an RDB.

-- 
Robert C. Martin (Uncle Bob)  | email: unclebob_at_objectmentor.com
Object Mentor Inc.            | blog:  www.butunclebob.com
The Agile Transition Experts  | web:   www.objectmentor.com
800-338-6716                  |
Received on Wed May 31 2006 - 15:43:52 CEST

Original text of this message