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

Date: 5 Jun 2006 07:46:22 -0700

Message-ID: <1149518782.838232.127130_at_u72g2000cwu.googlegroups.com>

I'm not going to spend much more time on this, but will try once more.

Cimode wrote:

*> I may suggest some reading (Introduction to Database Systems CJ Date) for
**> more information.
*

Yes, I've read it - an excellent book. I just didn't know what you were referring to.

*> 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.
*

Types are orthogonal to relations; the "operators" you discuss predate relational theory. 1 = 2 has nothing to do with relations. Operators like project, restrict, etc. are RELATIONAL operators.

*> 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.
*

Yes, we are. Equality is a function of 2 "inputs" to a single boolean "output," if that makes sense to you. That's the same as saying T -> T -> boolean, or as = : TxT -> boolean, or as boolean equals(T, T), etc. Of course it's a function.

*> If a
**> fonction is defined as
**>
**> y(x) = f(x) + p(x)
*

How is this a function? This is an equation, using 4 functions: y(x), f(x), +(x,y), and p(x).

> ...are '=' and '+' functions? No they certainly are not.

Yes, they certainly are.

*> They are simply operators
*

So define an operator, and contrast that with your definition of function.

*> 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.
*

You're confusing the syntax with the semantics. How about if I said
z(x,y) = x+y; is that a function? How, then, is z different from '+'?
**THEY'RE BOTH FUNCTIONS.
**
If you're concerned about the number of "parameters", how about this:
n(x) = NOT x. (Or, if you prefer, n(x) = !x.) How is n different from
NOT (or !) ? THEY'RE BOTH UNARY FUNCTIONS.

*> 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)
*

Meaningless.

*> I clearly stated that relational operators are not functions.
*

And you're clearly wrong. Even the true relational operators are functions (albeit higher-order ones; restrict, for example, requires a predicate as well as its "input" relation).

*> Your symbology is not familiar to me.
*

I've given several alternatives.

- erk(ed)