Re: Decline of Science: Computer Science and Databases

From: Alfredo Novoa <alfredo_at_ncs.es>
Date: 15 Nov 2002 03:39:26 -0800
Message-ID: <e4330f45.0211150339.7a515c0b_at_posting.google.com>


On Sun, 10 Nov 2002 23:14:00 +0100, "Carl Rosenberger" <carl_at_db4o.com> wrote:

>Following your approach, one would model all hierarchies into
>relations. Could you please outline, how a query to print out
>all contracts with all positions including all data special to
>all derived classes would look like?
>
>Here is mine:
>
>ObjectSet set = db.get(new Contract());
>while(set.hasNext()){
> System.out.println(set.next().toString());
>}

It is a cheap trick. You must have to harcode that report, and you have created a network style data design with the specific purpose of generating that report.

>With your approach, your queries would have to resolve every single
>relation by hand. You would either have to set up 30 individual
>queries or you would need 30 outer joins in one monster query.

Yes, a monster query for a monster design and a monster result. But still the best general purpose solution by far.

And you always can generate that report using several queries and printed tables. Probabily it would have a better aspect.

> In practice it would
>cause tremendous unnecessary implementation and maintenance
>work to store and query complex class hierarchies.

Only unthinking hackers wants to store class hierarchies in a database.

>It's only a matter of time until data management
>mainstream will widely adopt the same principles.

Scalar type inheritance was adopted in the Third Manifesto yet, but table inheritance is a very different thing.

>"The Third Manifesto" is very vague in it's recommendation
>for inheritance.
>"OO very strong suggestions":
>"Some sort of type inheritance should be supported."
>What does the term "type" represent in this context?

A named defined finite set of values and associated operators. The associated operators consist of those defined to operate on values or variables of that defined finite set of values and those that, when invoked, return values of that defined finite set of values.

>- a domain?

Usually it is a synonym, but according to dictionary definitions it is only the set of values without the associated operators.

>"Type" has been used for all of the above earlier in the paper.

Of course not.

>Extremely interesting also:
>"OO Proscriptions":
>"Relvars are not domains"
>Sure they can't be. Relations match to object members in OO.

Relvars are variables.

Rel(ational) var(iable)s.

Variables are not types. It is not very difficult to understand.

>...gee, I think I need to write an article about this funny
>manifesto one day.

It will be welcomed, but it would be a good thing if you understand the manifesto first.

Alfredo Received on Fri Nov 15 2002 - 12:39:26 CET

Original text of this message