| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: Interesting article: In the Beginning: An RDBMS history
dawn wrote:
> JOG wrote:
> > dawn wrote:
> > > David Cressey wrote:
> > > > "dawn" <dawnwolthuis_at_gmail.com> wrote in message
> > > > news:1144354101.878068.281070_at_z34g2000cwc.googlegroups.com...
> > > > >
> > > > > David Cressey wrote:
> > > > > > "x" <x_at_not-exists.org> wrote in message
> > > > news:e12djb$ha2$1_at_emma.aioe.org...
> > > > > > > > I don't think so. I think he was making the distinction between
> > > > > > > attributes
> > > > > > > > specified by name and attributes specified by position.
> > > > > > >
> > > > > > > What is the difference between a "name" and a "position" from a
> > > > > > > mathematically point of view ?
> > > > > >
> > > > > > I can't speak for Codd on this, and I don't choose to speak for myself.
> > > > >
> > > > > The only difference is the domain for the function, whether it is a set
> > > > > of counting numbers or a set of attribute names. If counting numbers,
> > > > > then there is an obvious order (function), represented as the order of
> > > > > a tuple.
> > > >
> > > > This is not true.
> > > >
> > > > If the numbers were explictily used as if they were names, in every place
> > > > where a specific attribute is specified, your statement would be true.
> > >
> > > I don't see how a function being explicitly written or not makes any
> > > difference. In some systems you can refer to an attribute either by
> > > name or number. They serve as two different names for the attributes.
> > >
> >
> >
> > I think I agree with David here Dawn, that there is a subtle difference
>
If one just looks at the maths of a simple example. Consider a relation(ship) of fruit:
fruit = {
{ (name, apple), (colour, green), (size, medium) }
{ (name, banana), (colour, yellow), (size, large) }
{ (name, date), (colour, brown), (size, small) }
}
There's no getting away from the fact that because each 'tuple' is just a set of attribute/value pairs the order we write them down in is necessarily unimportant. To refer to them positionally, now that this is an RM-relation and not a purely mathematical-relation, every single tuple must have a common ordering applied to it. So for the first 'tuple', if we say:
fruit_order = {
( (name, apple), (colour, green) ) ,
( (colour, green), (name, apple) )
}
and apply an equivalent ordering to this for all rows, only then can we (mathematically) refer to each attribute/value by its position.
There clearly exists no mechanism for implementing or extracting such orderings to an RM-relation (and if there was, how would it be affected by Joins? I imagine generating a partial ordering would be the simplest solution). Perhaps there should?
>> > specified by the order of its domains), when one refers to the 'first'
> > - given a mathematical relation is a list of elements (whose order is
>
The only way I can see to include ordinal position within the model is as my last paragraph. Cardinal labels are of course no different from any other other field name, but as a pickie you'd prefer ordinality no?
>> > impression was that Codd believed the cognitive load of maintaining
> > in
> > order to ascertain which domain each element corresponds to. My
>
>> > Being aware of this subtle distinction he proposed a name change to
> > and so added attribute naming.
>
Aye, saying things tongue cheek seems to be a minefield if people have the urge to use it to club you with later on, because it can never maintain its original context.
>
I think i'm just emphasising the difference between ordinality and cardinality.
All best, J. Received on Fri Apr 07 2006 - 06:13:06 CDT
![]() |
![]() |