# Re: A simple notation, again

From: Cimode <cimode_at_hotmail.com>
Date: Thu, 19 Jul 2007 12:53:54 -0700

On 19 juil, 03:48, paul c <toledobythe..._at_oohay.ac> wrote:
> Cimode wrote:
> > On 17 juil, 15:57, paul c <toledobythe..._at_oohay.ac> wrote:
>
> >>Cimode wrote:
>
> >>>On Jul 16, 7:05 pm, "Brian Selzer" <br..._at_selzer-software.com> wrote:
>
> >>>>"David Cressey" <cresse..._at_verizon.net> wrote in message
>
> >>...
>
> >>>>How about something like this
> >>>>{(Last, First, Num) :
> >>>>("David", "Cressey", 1),
> >>>>("Marshall", "Spight", 2),
> >>>>("Jan", "Hidders", 4)}
>
> >>>You imply order (adjacency) when relation attributes should not be
> >>>subjected to any....
>
> >>When Codd wrote of eliminating order dependency, he wasn't talking about
> >>language notations or grammars, in fact he used ordering to describe his
> >>idea!
>
> > Thank you for pointing that out. I was ranting on something I never
> > totally felt comfortable with. To remain coherent with the unordered
> > nature of sets, I always felt frustrated that representing *grammar*
> > of a relation would be otherwise than by *not* assuming order. I
> > thrust it becomes imperative when representing relation as tables and/
> > or because we include the header as part of relation definition. In
> > other words why
>
> > R1 = {("David", "Cressey", 1), ("Jan", "Hidders", 4)}
> > <>
> > R2 = {("David", "Cressey", 1), ("Hidders", "Jan", 4)}
>
> > --> because if an ordered header H1 = {("FirstName", "Last",
> > "Number")} is associated to the definition of R1 AND because H1 is
> > necessarily ordered...
> > ...
>
> I think the ordering dependence Codd had in mind doesn't have to do with
> the nature of sets, rather the internal organization and the external
> presentation of relations, or even tables and the operations a system
> supports. Date said something like users shouldn't be forced to use a
> single pre-defined ordering and that's what I think Codd was after. I
> think he simply wanted
>
> R1:
> A
> 1
> 2
>
> and
>
> R2:
> B
> 2
> 1

In this case R1 = R2 if and only if A = B. That condition *is* what bothers me(I agree row order is a minor point). The problem is more obvious using 2 attributes for R1 and R2

R1
A1 A2

```1       PAULC
2       MARSHALL

```

=

R2

```B2                    B1
MARSHALL       2
PAULC              1

```

IF and only IF [(A1 = B1) AND (A2 = B2)] (OR [(A1 <> B2) AND (A2 <> B1)] expressed differently)....

When considering p the position of the matching attribute in some other relation expression Such dissimetry can hardly be generalized to N as

Degree 1 ......R1 = R2 .....IF and only IF A = B Degree 2.......R1 = R2 .....IF and only IF [(A1 = B1) AND (A2 = B2)] .....
.....
DegreeN.......R1 = R2 .....IF and only IF [for all degrees p from 1 to N (Ap = Bp)]

I find that quite constraining...especially in intersect operations. I do believe that such order assumption, even explicit imposes a base of N logical operations (compare Ap to Bp) to simply express 1 inter relation equation (in this case R1 and R2)..A single unit permutation of attributes allows to reduce the number of logical operations to (N-1) to conclude that R1 = R2

> to be equal as far as his calculus and algebra were concerned.
>
> And (I think) he wanted to make sure that any representation of a
> relation, such as "tables" wouldn't depend on column ordering, which is
> why he wanted to take names of "columns" out of programs and put them in
> the db.
This is where the frustration begins. To my knowledge, I did not find any trace of his writing refering specifically to the problem of fully adress *lack of order*. Asked as a question: how can a grammar reflect (or maybe use) the lack of order in columns for making operation simpler?

> For myself, being a sloppy typist (and writer, ha, ha) I usually want a
> system to treat Magoo, magoo and MAGOO as equal and I'm usually quite
> happy if *I* can pre-define all domains to treat those as the same,
> tables to not show them as different. So I might see "Cimode" in my
> table and if I then try to insert "CIMODE", the system might fold the
> value into upper case and just to please me, show "CIMODE". But that's
> only because I told the system in advance to do things that way, not
> because its algebra depends on that arrangement.
Cimode is atomic. No debate here.

> So, I can be certain that my single-user system pleases me and doesn't
> base its decisions on somebody else's idea of what is proper ordering.
I am not convinced that there is such thing as *proper ordering* except the one that reduces the number of logical operations necessary to complete an operation between 2 relations.

> Actually, I think it is a fairly minor point of Codd's, he just wanted
> to make sure that ordering could not change the information in an
> answer, which I would have thought would be a natural consideration for
> any thoughtful developer. As much as I criticize SQL (which I think is
> easy even if I don't know it much!), I don't see anything wrong with
> "ORDER BY".
Respectfully, I do not think we are refering to the same point. (probably my fault because of frustrating unmastery of English ;(...)
> p
Received on Thu Jul 19 2007 - 21:53:54 CEST

Original text of this message