Re: Can relvars be dissymetrically decomposed? (vadim and x insight demanded on that subject)

From: Cimode <cimode_at_hotmail.com>
Date: 20 Jul 2006 03:30:42 -0700
Message-ID: <1153391442.591731.43860_at_i42g2000cwa.googlegroups.com>


erk wrote:
>Cimode wrote:

>What does "evaluate" mean, mathematically? Without bringing a formal
>definition into it, evaluation is a process of symbolic manipulation,
>to reduce an EXPRESSION to another expression (usually to a value, a
>kind of expression).
The evaluation of a relation for a specific Ntuple relvalue is another unique relvalue.
A relation can be defined mathematically as a transformation of a specific N-tuple set into another Ntuple set just as a linear function can be defined as a transformation of a numeric value into another numeric value .

With function F(x) = 2 * x + 2, the evaluation of function F for x = 1 is 4, the evaluation of function F for x = 2 is 6 an so forth...

>You really do mean dereferencing if you mean "getting the current value
>of a variable," like getting the current relval from a relvar.
>"Evaluation" is a different beast, and the word CAN be used, for
>example, to reduce the expression R1 UNION R2 if you know what R1 and
>R2 (or their current relvals) are.
No. Evaluation is a mathematical concept that exists since algebra exists.
See above example.

> > When a relvar hold a specific
> > relvalue in time, then and only the such evaluation represents an
> > relvalue N tuple set.
>
>I have no idea what this means, but what does the evaluation
>"represent" the rest of the time?
As relvar holds N possible relvalues a relation evaluates to N other relvalues.

> > The definition of the relation itself can not be
> > equated to either a specific relvalue nor to a relvar.
>
>Then what is it?
See above definition. A relation can be viewed as a transformation.

> > Besides the
> > same relation can be expressed using several relvars: it still is the
> > same relation.
>
>So a Relation is a template, or type, for typing variables? If so, I
>think you should use a term other than "relation," which is already
>overloaded, as our discussion shows.
Typing is a part of relation definition. It can be viewed as a mechanism to allow restriction on extraction from domain of values. A relation is a mathematical construct that can be expressed in several ways
which demonstrates independence from relvalues.

> > For instance F(x) is expressed as 2 * x + 2 if you express another
> > function T(y) as =
> > 2 * y + 2 then F = T
>
>Yes, but relations aren't quite the same. For an O-O example, let's say
>you have an object class called Boob. You can declare variables
>(references) as follows:
>
>public Boob tweedleDee;
>public Boob tweedleDum;
>
>But although they're of the same type, that doesn't mean they're the
>same thing. Same with relations. Imagine this syntax:

>relation T1 = {boob left, boob right} (or whatever you like,
>including constraints, such as left != right, except perhaps in
>cyclopettes)
>...
>relvar GREAT_BOOBS as T1;
>relvar LOUSY_BOOBS as T1;

Looking at this line is revealing...You are loosing the whole interest into using relations which is type derivation.

consider a relation R1 = {boob_type} where boob_type can extract values from domain DoR1 having relvalues{great boobs, super boobs, lousy boobs, flat boobs}.
consider relation R1 is defined as follows:

    --> a data type named goodboobtype to define boob_type attribute.     --> Imagine that goodboob type is defined as a restriction from domain D1 so that accepts *only* permissible values to *great boobs* and *super boobs* discarding *lousy boobs* and *flat boobs*. The relation R1 basically transforms the Ntuples relvalue {great boobs, super boobs, lousy boobs, flat boobs} to the relvalue {great boobs, super boobs}

Consider now a relation R2 that has the same characteritics as R1 above but is has different terminology defining it. (The relation would be called R2 instead of R1). It would be reasonnable to assume R1 = R2. Both R1 and R2 are an expression of the same relation.

consider relation R3 is defined as follows:

    --> a data type called *badboobtype* to define boob_type attribute.     --> Imagine that *badboobtype* is defined as a restriction from domain D1 so that accepts *only* permissible values to *lousy boobs* and *flat boobs* discarding *great boobs* and *super boobs*. The relation R1 basically transforms the Ntuples relvalue {great boobs, super boobs, lousy boobs, flat boobs} to the relvalue {lousy boobs, flat boobs}

Now, if you consider the domain created by R1 as being *possible* values {great boobs, super boobs}, thanks to defining a new data type called verygoodboobtype you may define a new relation R3 that includes only the following relvalue {super boobs}.

Relation R3 transforms the set of tuples {great boobs, super boobs} to {super boobs}

You may then define relvars
as

relvar GREAT_BOOBS as goodboobtype
relvar LOUSY_BOOBS as badboobtype
relvar SUPER_BOOBS as verygoodboobtype



>Both GREAT_BOOBS and LOUSY_BOOBS are of type T1, but have different
>meanings - their predicates are different. They're not the same.
You can *not* consider that there is no distinction in data type between such oppositely defined concepts. You are loosing information. RM is by definition explicit.

>So to me, the definition of "same relation" isn't the type, but the
>specific relvar. Since each relvar can occur in a database once and
>once only, that seems reasonable and useful.
>
> > When the variable x in F or the variable y for T holds the value 2 both
> > F and T = 2 * 2 + 2 = 6 .
>
>F and T are the same function; changing the name of the free variable
>is meaningless. And functions which behave the same ARE the same.

>Relvars can have different relvals at different points in time; thus 2
>relvars, even of the same re
>
> > By analogy F and T are equivalent to relations R1 and R2,
>
>No, they're not. Mathematically, functions are subsets of relations.
>And as we're discussing them here, I don't see the analogy.
I can not see why you don't see the analogy given the examples. I am sorry I can not explain it better. .
I can not see how a function is a subset of a relation. Do you mean that a trigonometric function is a subset of a relation?

A relation on the other hand is a subset of function in the sense it share the common transformation of functions. For instance, a linear function transforms numeric values into other numeric values, a rotation transforms a set of points into another set of point. Same thing applies to relation which transforms a relvalue into another relvalue. Which basically makes a relation a subset of functions.

> > just as *x* and *y* are relvars, just as *6* is a
> > specific relvalue to which relation R1 is evaluated when *x* and *y*
> > have a specific relvalue.
>
>This line in particular confuses me.
>
> > I define relation as a specific type of function.
>
>It's the other way around; a function is a specific type of relation.
Sorry but no. It is not the other way around, at least not mathematically. Keep in mind that all subsets necessarily share the characteritics of the superset. All relation characteristics do not necessarily apply to other functions, therefore ANY functions is not subset of relation (rotation for instance). Therefore ANY function is not necessarily a subset of relations.

> > For relation
> > definition, look for function definition as opposed to variable and
> > value definitions.
>
>Variables are a computing construct (and a poor replacement for
>postconditions and constraints); mathematics deals with values. Forgive
>the overgeneralization.
No. Variables exists since algebra exists.

> > > > An N tuples relvalue necessarily constitutes the *evaluation* a
>relation
> > > > R1 but does not equate to R1.
> > >
> > > I don't understand this sentence.
> > See above analogy.
>
>Which I didn't understand.
>
> > Definition of relation is independent from both relvalues and relvar
> > definition.
Think transformation.

>Then please state the definition.
>
> > > It defines a new function. It doesn't make sense to refer to a
>changing
> > > function; you're defining a new one - for example, "F(x) = 2" has type
> > > ANY -> int, while "F(x) = 2*x + 2" might be int -> int or number ->
> > > number.
> > Absolutely. Which is why a relation or a function should *not* be
> > assimilated by deifnition to either relvar or relvalue.
>
>But the relations we're talking about aren't exactly the same as
>mathematical ones. It would help if you defined relation as you
>understand it. In relational model term "relation" means either relvar
>or relval - it's loose.
RM is not about being *loose*. It's about direct application of mathematical theory and so should be terminology employed. All I can say is that in RM abstract and logical definitions should be driven by math as Codd intended it so math shows the way not the way around. One who makes conclusions about RM through the perspective of computational and implementation layer (SQL, programming) increases dramastically the chance of doing false reasonning.  

[Snipped]
>- erk
Received on Thu Jul 20 2006 - 12:30:42 CEST

Original text of this message