On Sun, 27 Mar 2005 09:29:46 +0900, samuel_x_winters_x / hotmail.com
<samuel_x_winters_x / hotmail.com> wrote:
> "Austin Ziegler" <halostatue / gmail.com > wrote in message
>> Five minutes ago, I knew nothing about OQL. Now that I know the
>> barest amount about OQL, ...
> Some relevant bits of OQL you seem to have overlooked are:
> - Every class can have an extent and queries can start here

If I understand this ("extent" appears to mean something different
to the makers and unfortunate users of OO databases than it does to
the rest of the universe), this is dependent upon the design of the
database schema, whereas with relational databases, this is inherent
in the nature of the database concept. If one is going to go to the
effort of doing that much separation, then one is probably better
off with an RDBMS.

OQL can paper over this, to some degree, but it can't fix the
underlying problem that relational databases were invented to solve
because hierarchical databases *cannot* solve this.

> - Indices can be declared and automatically maintained

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.

> - Queries are declarative

This is a meaningless statement. Please expand so that it has
meaning.

> - Query optimization exploits indices and object structure

Implementation detail, probably brought on because OODBs weren't
even remotely capable of competing against a proper RDBMS with a
good ORM.

> So I'm having a hard time with the basis for some of your points.
> Could you clarify which of the above items fall short?

I maintain that OODBMS are essentially hierarchical database
systems and that the performance for them outside of the precise
hierarchy in which the schema were defined will be questionable, at
best, without importing some relational database concepts. OQL is a
cheap imitation of SQL (which is a cheap imitation of real
relational database concepts, at that). I would question the sanity
of anyone who stores critical business data in an OODBMS, as they
pretty much require that the original implementers be brilliant at
all times. I know that I'm not.

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.

-austin
-- 
Austin Ziegler * halostatue / gmail.com
               * Alternate: austin / halostatue.ca