| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: Stored fields ordered left to right
Goodness Gracious -- way too many typos in that previous post of mine since
I did it hastily and didn't proof it before sending. My apologies, but I
trust that you can make your way through it. In case you prefer to read a
cleaner version, I've cleaned it up below. --dawn
"Dawn M. Wolthuis" <dwolt_at_tincat-group.com> wrote in message
news:bu210h$qq9$1_at_news.netins.net...
> "Adrian Kubala" <adrian_at_sixfingeredman.net> wrote in message
> news: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 following is "cleaned up"
> I didn't take into account an entire specification. A typical
> implementation of one person living at different places, not taking into
> account past addresses, might be modeled as:
>
>
>> > a separate concept from functions does not apply just as well to
> > 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
>
> Even
> today, with cell phones having been out for over a decade, I've had
someone
> tell me on the phone that their system permitted one phone number for home
> and one for business, but didn't have a spot for an additional phone
number.
> This is highly unlikely in a system where cardinality of attribute values
> can be changed with the blink of an eye from 1 to a variable number "many"
(not fixed
> number).
>
> So, where I have seen no instances that cannot be modeled equally well
with
> functions as with relations, I have seen many times when a flexible
function
> is a much better way to model the propositions.
>
>
>
> Now
> take these same propositions and model them with a relational model. This
> would require at least two relations. The act of splitting up these
> propositions each into two separate propositions adds to the complexity
for both
> the developer and, unfortunately, typically for the end-user trying to do
> queries. This complexity is introduced without sufficient gains, in my
opinion.
>
![]() |
![]() |