Re: MV Keys

From: Brian Selzer <brian_at_selzer-software.com>
Date: Thu, 02 Mar 2006 05:24:38 GMT
Message-ID: <qkvNf.36307$Jd.30961_at_newssvr25.news.prodigy.net>


"Marshall Spight" <marshall.spight_at_gmail.com> wrote in message news:1141260473.796686.131530_at_u72g2000cwu.googlegroups.com...
> Jon Heggland wrote:

>> > >
>> > > What definition of 1NF do you use? I'm asking in earnest; there are
>> > > quite a few different definitions floating around.
>> >
>> > I guess I use the definition that says 1NF means no
>> > attributes of compound types. No list or set typed
>> > attributes, that is.
>>
>> So compound == list or set? What about ordered pairs? Or fixed-size
>> arrays? Where do you draw the line, and why? Is it the variable size
>> that is important? Is VARCHAR compound (disregarding "convention"), but
>> CHAR not?
>

> To my current way of thinking, there are only the two compound types:
> list and set. There are certainly other ways of thinking, involving
> perhaps bags or whatever (or even objects :-). And note that those
> two are not minimal, insofar as lists can be implemented quite
> soundly (but not conveniently) with sets, and sets can be
> implemented quite conveniently (but not soundly) with lists.
>

> Ordered pairs, char and varchar, etc., can all be easily
> expressed with relations or lists.
>
>
>> > (Only conventionally we have to
>> > pretend that varchar is not a compound type if we
>> > want to use this definition, because, practically
>> > speaking, you can't live without strings.)
>>
>> Yes. But are strings/varchar then completely unproblematic? And if so,
>> what makes other kinds of lists (or sets) theoretically problematic?
>

> I don't think there's any particular difference between lists of
> characters and lists of any other type. Or sets of same, for
> that matter.
>

Then there's no difference between a varchar and an int. Both are lists whose elements (under most circumstances) do not belong to the universe of discourse, and in both cases it is the permutations of those elements that do.

I think there's a fundamental difference between a varchar or an int and an abstract data type whose elements do belong to the universe.

>
>> To use lists, sets or relations as attributes
>> introduces bias and asymmetry in the database design, as shown by Date
>> in his writings on RVAs: Essentially, you create a hierarchical database
>> if you use them (which, BTW, may help explain why some people think list
>> attributes are a good idea:). This might be called 1NF anomalies,
>> Marshall.
>

> Sure. You could have an enormously complicated hierarchical
> schema that only had a single top-level table. I'm not clear
> whether that introduces anything that might be called an
> update anomaly, though. Or redundancy.
>

> This is why I predict that, if we were given NFNF as an
> option, we'd find that the sweet spot would be close to,
> but not right at, fully 1NF. (Assuming availability of
> join. If you don't have join, you can't easily recompose
> decomposed relations.)
>
>

> Marshall
>
Received on Thu Mar 02 2006 - 06:24:38 CET

Original text of this message