On 3/29/07, Jochen Theodorou <blackdrag / uni.de> wrote:
> Sebastian Hanigk schrieb:
>> Jochen Theodorou <blackdrag / uni.de> writes:
>>> I also think that the relational algebra is more advanced than
>>> everything an OODB could provide. I think most OODB queries will for
>>> example have a problem with operations like getting the
>>> maximum/minimum of something, or subtracting one attribute from the
>>> other and such things. So especially in cases of reporting OODBs are
>>> not that good, not unless you do many of the operations outside the
>>> database system.
>> While relational databases do have a sound mathematical foundation in
>> relational algebra and set theory (which faciliates optimising
>> queries in an efficient way), I haven't seen anything like that for
>> OODBs.
> and why is it needed? you can describe objects as sets too, they are
> just more complex.

No, they're not (more complex). The *only* thing about objects that
relational theory can't model is operations (e.g., encapsulation). So,
no, objects aren't just "more complex sets."

> But I am no scientist in that area. In fact I think the object model
> is a higher level of abstraction that allows you to use different
> underlaying techniques, for example a partial relational model.

Please, please, *please* read more about relational theory before you
make statements like this, because it's technical nonsense. There *is*
no "object model."

Part of the problem, of course, is that a lot of terms are used and
reused imprecisely.

1. The Relational Model of Data is the combination of set theory and
   relational algebra. There is no corresponding theory or mathematical
   basis for object orientation. That is, there's no "Object Orientation
   Model of Data".

   Object orientation is, in fact, an implementation technique -- a
   refinement of procedural programming that more tightly ties data with
   operations related to that data. That's an important point, too:
   object orientation is about *programming*. It is not about data and
   the storage of data.

2. When *implementing* something, you will model the data. This can be
   your data model that can be extended into an object model for
   programming purposes. These "models" are better considered "schema";
   they describe the layout of the data.

Just because one *can* create something that works without a
mathematical theory behind it does not mean that one *should* do so. One
certainly shouldn't claim that the thing without a mathematical theory
behind it is superior to the thing with -- because that's something you
should be able to demonstrate with, well, another theory. Performance
metrics are not evidence of superiority of concept; just of
implementation.

> And of course you can apply the theories of that area for that part of
> the implementation.
>
> Why not consider OODB mathematics as part of graph theory and others?

There are no OODB mathematics, and that's part of the point that I've
been trying to make. If you can point to OODB mathematics papers and
theories, I'll retract or clarify that statement, but I have a
reasonably high level of confidence that object orientation isn't
expressed in terms of mathematics or theory the way that the relational
model is.

Sure, an object store can be set up to allow for smart loading and such,
but that *doesn't* mean that it's a good idea. It might be the "right
now" idea, but it is something you'll have to pay the piper for using at
some point in the future.

Like it or not.

-austin
-- 
Austin Ziegler * halostatue / gmail.com * http://www.halostatue.ca/
               * austin / halostatue.ca * http://www.halostatue.ca/feed/
               * austin / zieglers.ca