Re: Issues with the logical consistency of The Third Manifesto

From: erk <eric.kaun_at_pnc.com>
Date: 16 Nov 2004 10:22:53 -0800
Message-ID: <1100629373.247894.3900_at_z14g2000cwz.googlegroups.com>


Alfredo wrote:
> What does "the possibility of joining tables and having the proper
> 'class' materialize to handle it" means?

and then Marshall wrote:

> It means that one would like to be able to have a lightweight way
> of having a class (alternatively: a set of methods) associated with
> the rows of a resultset, even if this resultset came from a join, so
> that one could directly go from a query to a set of objects.

This is, in the words of Frank Zappa, the crux of the biscuit. A relation (derived perhaps via one or more JOINs) has a more specific type than relation; for this discussion, let's call the type of one of its tuples the "tuple-type". The tuple-type can be derived from the relational expression. To define an operator over that tuple-type would be to define it in terms of its attributes, right? So what value (other than perhaps namespace) does associating that operation with the tuple-type have?

I think of this as a potential shortcut, but of far less value than the encapsulation that can be used with an OO language to define types. It would be defining an operation "Result foo(Tuppleware)" where Tuppleware is a shortcut for {t1 a2, t2 a2, ...}. In fact, given that most operations would be over just a subset of the attributes (e.g. a tuple with StartingDate and EndingDate both of type Date might have a Duration "method" which subtracts them), of what value is it to declare the operator as having a declared domain which is a superset of the actual domain?
I'm not criticizing, just asking and playing devil's advocate...

  • erk
Received on Tue Nov 16 2004 - 19:22:53 CET

Original text of this message