Re: Decline of Science: Computer Science and Databases
Date: Sun, 10 Nov 2002 23:14:00 +0100
Message-ID: <aqml8a$585$00$1_at_news.t-online.com>
Alfredo Novoa wrote:
> var Contract real relation {Contract Char, //30 other attributes
> typical to all contracts} key {Contract}
>
> var ContractPositions real relation {Contract Char, Position Char}
> key {Contract, Position}
> foreign key {Contract} references Contract;
>
> var BuildingEngineeringContract real relation {Contract Char, // 30
> building engineering specific attributes}
> key {Contract}
> foreign key {Contract} references Contract;
>
> Your post reflects a deep ignorance about database theory.
Your posting reflects the incapability to understand a real-world problem and to develop a practical solution with existing tools.
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());
}
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.
Software development mainstream had decided to adopt object-oriented principles and to use inheritance, simply because inheritance is more productive. It's only a matter of time until data management mainstream will widely adopt the same principles.
By the way:
"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 domain? - a tuple? - a relation? - a scalar? - a relvar?
"Type" has been used for all of the above earlier in the paper.
Extremely interesting also:
"OO Proscriptions":
"Relvars are not domains"
Sure they can't be. Relations match to object members in OO.
...or does the above sentence in the third manifesto prohibit
this use?
Anyhow I think your suggestion violates the principles
proposed by Darwen/Date, Alfredo. "Domains" (or "the term
object class as it is sometimes used") are scalar types and
they miracoulously disappear somewhere in your data machine
and have nothing to do with relations.
...gee, I think I need to write an article about this funny manifesto one day.
Kind regards,
Carl
-- Carl Rosenberger db4o - database for objects - http://www.db4o.comReceived on Sun Nov 10 2002 - 23:14:00 CET
