Re: The wisdom of the object mentors (Was: Searching OO Associations with RDBMS Persistence Models)

From: Cimode <cimode_at_hotmail.com>
Date: 2 Jun 2006 14:16:17 -0700
Message-ID: <1149282977.072821.146120_at_j55g2000cwa.googlegroups.com>


<<What do you mean, "relation model speaking"? >> I mean that operators have been identified and defined by Relational advocates in the last thirty years (CODD, DATE, DARWEN...). I may suggest some reading (Introduction to Database Systems CJ Date) for more information. Operators allow the expression the logical *assumptions* and logical *operation* that are possible over a set of permissible values extracted from one or several domains. They can be anything (=, <>, OVERLAP...) Operators are a part of what defines a data type.

Example of operators
1) = means it makes sense to implement an equality operation on any value drawn from the domain.
2) <> means it makes sense to implement an equality operation on any value drawn from the domain.
3) OVERLAP is used to for instance to say that 2 durations can not overlap in a set of tupples (with start and endate attibute) ...

As you can see we are not talking at all about functions. If a fonction is defined as

y(x) = f(x) + p(x)

...are '=' and '+' functions? No they certainly are not. They are simply operators period that help make an equality assumption (which sets the equation) based on on an addition operation. Only y(x), f(x) and p(x) are functions.

<<Operators of type T -> T -> boolean, right?>> boolean can not be applied in definition of an operator (for communication purposes, I would say "valid and applyable" would be closer to help define what an operator does)

<< So you're talking about functions over a single domain, ones of type T
> -> T, or T -> T -> T, etc. How are these not functions?>> Respectfully *you* are talking about functions not me. I clearly stated that relational operators are not functions. Your symbology is not familiar to me.

<< So you're talking about the algebraic definition of a type, like  pop(push(S, x)) = x for a stack?>>No. See above

erk wrote:
> Cimode wrote:
> > I am sorry but operators are *not* functions (relation model speaking).
>
> What do you mean, "relation model speaking"? Relational operators, or
> operators on various types (the values of which can be stored in the
> attributes of tuples of relations)? Or are you using the term
> "relational" more loosely in the sense that =, <, >=, etc. are
> relational operators? Operators of type T -> T -> boolean, right?
>
> > They are a set of symbols (generally mathematical such as =) that can
> > be applied to permissible values included in a specific domain.
>
> So you're talking about functions over a single domain, ones of type T
> -> T, or T -> T -> T, etc. How are these not functions?
>
> > Each specific combination of operators applied help define a data type.
> > That's all there's to it.
>
> So you're talking about the algebraic definition of a type, like
> pop(push(S, x)) = x for a stack?
>
> - Eric
Received on Fri Jun 02 2006 - 23:16:17 CEST

Original text of this message