"Austin Ziegler" <halostatue / gmail.com> wrote in message

> > - 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),

Perhaps you have a different notion of "rest of the universe", but it
is "extent" is certainly not a new concept, and entirely consistent in
ODBs.

In an ODB the OrderDetail class has an extent, which is the set of all
OrderDetail instances. The OrderDetail class also defines its
relationships. Here is a bit of the object schema definition (also ODMG
standards based):

class OrderDetail (extent Order_Details key ... )
{ attribute string quantity;
  relationship Product product inverse Product::order_details
}

Your queries can start at the extent Order_Details, which is no
different from your cited example of SQL:
    SELECT COUNT(*) FROM order_details

> this is dependent upon the design of the database schema,
> whereas with relational databases, this is inherent
> in the nature of the database concept.

Not true. If you have order_details as a table in an RDB your queries
can start there. If you have OrderDetail as a class in an ODB, your
queries can start there. Absolutely nothing advantageous inherent in
either model.

> 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.

Very interesting claim. But an ODB is not a hierarchical database
(assuming your definition of hierarchical database is reasonably
standard).

> > - Indices can be declared and automatically maintained
>
> Fair enough. The objects can be indexed.

All interesting collections of objects can be indexed, including (but
not limited in any way to) class extents. Also, fyi, ODB collection
types include sets, bags, list, array, and dictionary (map).

> 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.

Errr, I think you "it is a meaningless statement *to you*.

A query is declarative means that any logical expressions or paths used
to express a query are NOT necessarily the same as the paths traversed
to execute the query after the query is optimized.

This also means that there is *MORE* than one way to express the same
query, including more than one logical path traversal. Just as with
SQL. And contrary to your earlier claims.

> > - 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.

These are quite astonishing claims, and I don't see any real substance
to back them up. A "proper RDBMS" certainly does use query optimization
exploiting indices to gain performance and allow for different
formulations of the same query to be all executed efficiently.

> 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.

Pretty strong statements.

If I can summarize your claims:
1. ODBs need more brilliant up-front definition than RDBs
2. ODBs don't perform like RDBs
3. ODBs are hierarchical
4. ODBs make data migration more difficult
5. ODBs make schema change more difficult
6. ODBs take an applications stovepipe view, RDBs are business view
7. ODBs are less cross-language than (SQL-based) RDBs

Certainly 7 is a valid point if your ODBs do not support some standard
like the ODMG (ODL + OQL). I have not seen any real evidence from you
about 1-6. Maybe you can help back these up?

Thanks.