Re: Object-oriented Databases

Ashley Aitken <[email protected]>
Newsgroups gmane.comp.web.webobjects.general
Message-ID <[email protected]>
Howdy Andreas (et al.),

My general perspective on OODBMs vs RDBMSs is this:

RDBMSs:
Mature technology
Well developed relational model
Highly optimised queries and very large stores
Independent of application development paradigm
Independent of the application programming language
Many experienced developers and DBAs
Most legacy data is in RDBMSs
Selling well

Best suited to applications that require access to very large sets of  
data, e.g. millions of customers, with a few relationships, e.g. a  
customer has a few bank accounts, and a branch.  RDBMSs can very  
quickly find a customer and fetch it and a few of its relationships.

OODBMSs
Maturing technology
No strong or standard OO model
No standard query language or model
Not as fast or highly optimised queries
Based on the OO development paradigm
More suited to the OO development paradigm
Can be programming language specific
Few experienced developers
Poor sales

Best suited to applications that require access to a large set of  
object with complex relationships, e.g. models of buildings or cars  
with all their parts.  OODBMSs aren't the fastest at finding an  
object but can easily walk (and fetch) complex object graphs and  
handle polymorphism etc.

Most business applications currently suit RDBMSs, or even better an  
Object-Relational Mapping to a RDBMS.  However, I think there are  
applications that are more suited to OODBMSs and developers that use  
an OODBMS will obtain a competitive advantage from using them.

When I hear Object-Relational Modelling vendors suggesting we keep  
our inheritance hierarchy shallow, don't use too many relationships,  
keep the model simple, its a warning sign (to me at least) that  
perhaps the technology (RDBMS) is not the best solution going forward.

As our domain object models grow more and more complex and we think  
more in terms of an object model rather than a data model, I think it  
will be natural to use OODBMs.  OODBMs are built around objects,  
classes, inheritance, polymorphism and other OO concepts.

Personally, I wish Apple would take a lead in the use of OODBMSs.   
However, and unfortunately, I've seen what happens when they took the  
lead in the use of OO frameworks, component-based Web development,  
and object-relational mapping.  Being ahead of the game makes is a  
difficult sell (to those who don't understand yet).

Compare this with Microsoft, they're still pretty much fetching raw  
rows from a database and displaying them in a view.  Business logic  
is spread throughout the presentation layer, the application layer,  
and in the database.  It's a mess, but this is what developers mostly  
understand, and it allows quick (and dirty) solutions.

JDBC and ADO.Net aren't true (or at least complete) object-oriented  
solutions.  They are just object wrappers around SQL queries and  
results.  When you fetch a customer you should get a customer object  
(encapsulated data and logic) not a result object with only customer  
data in it.

Apple tries to lead but has trouble bringing developers a long.   
Microsoft doesn't go anywhere new unless there is a compelling  
reason.  For example, .Net was long over due, and ObjectSpaces won't  
come out until everyone is familiar with object-relational mapping etc.

Still, again, I wish Apple would take the lead with OO databases.

Enough rambling, I'm off to learn JDO(2).

Cheers,
Ashley.

--
Ashley Aitken
Perth, Western Australia
mrhatken at mac dot com
Skype Name: MrHatken (GMT + 8 Hours!)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.