Re: Stored fields ordered left to right
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?