From: CR (chrisre@cs.washington.edu)
Date: Mon Apr 26 2004 - 07:37:40 PDT
The authors review some of the beginning work on Object Oriented
Databases and identify the reasons why everyone is not using an OODB.
They identify four approaches, persistent programming languages, native
OODBS, extend Relational engines and toolkits.
I have always liked the toolkit idea but, I only partly agree with their
assessment that it failed because of too much expertise. The problem is
that most cutting edge database technologies are not modular – consider
ARIES, it has its hand in every part of the system. Or query optimizers,
who need more than selectivity estimates to work over things that are
not sets of scalars.
Another reason I believe OODBs have been a disappointment is sort of
related to their issue of standards. Objects are a widely abused term
and do not really have the sort of clean model that underlies the
relational model. That said it would be wrong to say that SQL is cleanly
or universally implemented. So I am not sure how much blame can be put
on standards.
I think the author’s underestimated how much of a motivation
heterogeneity of data was importance. Object-oriented languages tie you
into a strange view of the world and have an impedance mismatch with
everything – even other objects. These are the reasons that systems
people keep coming up with different component architectures, why
microsoft relentlessly releases new OLE, COM, DCOM like standards.
Self-description of data so that consumers of the data can use it in
ways different from how it was intended seem more important. It is for
this reason that I think the authors misidentified the world where you
could write in any language and still have the same model of
inheritance. Perhaps I am wrong since the MSIL is aiming again to do
just that.
I do think that the authors correctly identified the coming importance
of middleware to mitigate some of the above problems. My main problems
is that I do not see objects as extraordinarily useful as the rest of
the world seems to. One of the key ways that databases get performance
is by exploiting properties of the objects they deal over, the fact that
range queries can be effectively indexed for example. However objects by
their nature hide most of these details.
This archive was generated by hypermail 2.1.6 : Mon Apr 26 2004 - 07:37:42 PDT