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

From: erk <>
Date: 5 Jun 2006 07:46:22 -0700
Message-ID: <>

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)


> 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)
Received on Mon Jun 05 2006 - 16:46:22 CEST

Original text of this message