Re: Stored fields ordered left to right

From: Adrian Kubala <adrian_at_sixfingeredman.net>
Date: Tue, 13 Jan 2004 14:25:20 -0600
Message-ID: <slrnc08l1g.7ib.adrian_at_sixfingeredman.net>


Dawn M. Wolthuis <dwolt_at_tincat-group.com> schrieb:
> "Adrian Kubala" <adrian_at_sixfingeredman.net> wrote:

>> It can't be the same mapping, as proven by example; the 3-part predicate
>> "person LIVES AT place DURING time period" has an obvious mapping to the
>> columns of a relation. To which parts of this predicate do the DOMAIN
>> and RANGE of a function correspond?
>
> A predicate would look like this:
>
> person IDENTIFIED BY id LIVES AT place DURING time period
>
> I'll name the function using the plural rather than singular (for reasons I
> won't go into and of course there are differences of opinion on this) and
> the function is
>
> PEOPLE(id) = { (place, time period) }

That's wrong because one person can live at many different places at different times. So you need to map each person to a list of tuples -- in which case you have hidden the information necessary to make queries like "who all has every lived at this place" -- or you need to use a null range, in which case the range of the function is modelling nothing and is useless baggage.

The point is that in most interesting relations there is no obvious way to split the predicate into TWO parts where one is more important than the other; you have N parts which are all equally-important.

I still haven't heard (or overlooked) your explanation of why you think that whatever rationalization lead mathematicians to invent relations as a separate concept from functions does not apply just as well to databases? They're too abstract? Received on Tue Jan 13 2004 - 21:25:20 CET

Original text of this message