Austin Ziegler wrote:

> Fair enough. The objects can be indexed. That doesn't change that
> object traversal is restricted by the folks who first implement an
> object database schema. Trust me: they're not bright enough to do it
> right. Neither are the people who first implement a relational
> schema for a program, but it's far easier to manage the relational
> schema and adapt it for alternative uses than an object database.

Austin, this seems to be the core of your point: that it's easier to
adapt a relational database to changing requirements than an object
database.  You haven't presented any evidence for it, and I'd say that
in my personal experience precisely the opposite is true.  Data
migrations have, in the applications I've built and maintained, been
less frequently needed and much less painful on OODBs than on
relational databases.  If you have some rationale behind this
assertion, please present it, so that I can try to understand why your
belief or experience is so at odds with mine.

> I'll point to something else that Avi said: "if one is careful," one
> can use a particular object database (GOODS?) both cross-language
> and cross-platform. Sorry, but without being careful, I can use
> pretty much any relational database cross-language, and many of them
> cross-platform. This strongly suggests perhaps the biggest problem
> with OODBMS: vendor lock-in is much stronger under an object
> database than it will ever be with SQL databases.

You're misquoting me - GOODS happens to be very easy to use cross
platform, without any particular care needed; certainly easier than any
of the major relational databases I know.  However, you absolutely do
need care to use it cross-language, and that is a major and very real
point in favor of using a relational database.  If you need to support
multiple applications written in different languages with the same
data, a relational database is almost certainly the right choice.
Ditto if you want to take advantage of existing reporting tools like
DataVision.  Ditto if you have SQL-savvy users and want to provide them
with ad-hoc query access to the database.  Ditto if, for some reason,
you fear that you will have to change database vendors midstream.
There are, in fact, lots of great reasons for using relational
databases, and based on the needs of an individual project I often
recommend them to my clients.  It's also true, however, that of the
three major projects I'm working on at the moment, all three of them
are using object databases.  Why?  Because for these projects, we're
getting better performance, easier migration, and faster development
time with an OODB than we would with an RDB.

Avi