Path: dp-news.maxwell.syr.edu!spool.maxwell.syr.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!uio.no!ntnu.no!not-for-mail
From: Jon Heggland <heggland@idi.ntnu.no>
Newsgroups: comp.databases.theory
Subject: Re: MV Keys
Date: Fri, 3 Mar 2006 07:36:14 +0100
Organization: IDI/NTNU
Lines: 36
Message-ID: <MPG.1e72024896b5103998977a@news.ntnu.no>
References: <1140915349.609443.285650@e56g2000cwe.googlegroups.com> <1140916287.800990.284570@t39g2000cwt.googlegroups.com> <Xz9Mf.37664$F_3.21295@newssvr29.news.prodigy.net> <1140928045.223226.301140@i40g2000cwc.googlegroups.com> <440185c0$0$11076$e4fe514c@news.xs4all.nl> <1140963712.820976.72300@u72g2000cwu.googlegroups.com> <4401cd8b$0$11062$e4fe514c@news.xs4all.nl> <1140981916.897576.34490@u72g2000cwu.googlegroups.com> <1141000908.277461.101140@t39g2000cwt.googlegroups.com> <MPG.1e6e1c576dad2a0298976b@news.ntnu.no> <1141180942.125742.288830@j33g2000cwa.googlegroups.com> <MPG.1e6f9e5a3f96c28d98976c@news.ntnu.no> <1141239957.788010.239620@j33g2000cwa.googlegroups.com> <MPG.1e7114e0b561b5b5989773@news.ntnu.no> <4fDNf.1833$%a2.1316@trndny05> <1141311212.487197.167020@t39g2000cwt.googlegroups.com> <MPG.1e713f6a4e8227b1989779@news.ntnu.no> <1141320627.995968.219210@i40g2000cwc.googlegroups.com>
NNTP-Posting-Host: coleburn.idi.ntnu.no
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-15"
Content-Transfer-Encoding: 7bit
X-Trace: orkan.itea.ntnu.no 1141371378 9495 129.241.111.99 (3 Mar 2006 07:36:18 GMT)
X-Complaints-To: usenet@itea.ntnu.no
NNTP-Posting-Date: Fri, 3 Mar 2006 07:36:18 +0000 (UTC)
User-Agent: MicroPlanet-Gravity/2.60.2060
Xref: dp-news.maxwell.syr.edu comp.databases.theory:37164

In article <1141320627.995968.219210@i40g2000cwc.googlegroups.com>, 
jog@cs.nott.ac.uk says...
> Jon Heggland wrote:
> > If you instead say that a "cell" can and must contain exactly one value,
> > *but* that value may very well be a list, or a set, or a relation---then
> > there are no problems (in theory).
> 
> Neither of these. I was referring to a case where specifiying an
> attribute-name may map to more than one "cell" as you refer to it. i.e.
> not a one-one functional mapping but a generalised one-many mapping.

I don't really understand. You mean several columns/attributes with the 
same name?

> > Join is crucial, and depends on equality between "cells". But with
> > multiple values, how do you define equality?
> 
> Well this has to be specified to the system as with all equality
> matches. Is 15.0 equal to 15? Is "HELLO" equal to "Hello"?  How is a
> date greater or less than another? These subjective equality decisions
> are already being made in numerous domains without significant issue..
>
> In a sense this is no different in nature to something such as a C++
> sort template where one has to specify a comparison function. Here,
> when a type is created one can define how comparisons are made, and I
> don't see a problem there.

As long as the type of a bunch of values is well-defined, there is 
indeed no problem---indeed, that makes the two alternatives I outlined 
equivalent. However, if any attribute is a set (or list), you probably 
want (for convenience) to treat it as a single value of its constituent 
type when it contains only one value, I.e. "Jon" = { "Jon" }. A language 
that does this may exhibit undesirable behaviour in other places; I 
believe SQL has trouble with table literals because of this.
-- 
Jon
