Re: Codd provided appropriate mathematics ... (was Re: Relational and MV (response to "foundations of relational theory"))

From: Bob Badour <bbadour_at_golden.net>
Date: Fri, 27 Feb 2004 16:22:14 -0500
Message-ID: <84KdnZeYCbXcKKLdRVn-uw_at_golden.net>


"Eric Kaun" <ekaun_at_yahoo.com> wrote in message news:bdO%b.18046$fY4.9946_at_newssvr31.news.prodigy.com...
> "Bob Badour" <bbadour_at_golden.net> wrote in message
> news:9OmdndmNiZQA36PdRVn_iw_at_golden.net...
> > "Eric Kaun" <ekaun_at_yahoo.com> wrote in message
> > news:k6r%b.50112$LX2.42031_at_newssvr33.news.prodigy.com...
> > > As an aside in this discussion, I've seen "multivalued" defined 2
> > different
> > > ways in explanations of relational (some of which are really bad).
> > >
> > > 1. Where attribute A can hold a list of values (type LIST)
> > > 2. Where there are attributes A1, A2, A3, A4 (for example), all of the
> > same
> > > type and meaning. For example, ADDR1, ADDR2, etc.
> > >
> > > Does 1NF refer to both of these? If not, what's the proper terminology
> for
> > > each of these cases?
> >
> > The second is not really a repeating group. It is an ill-advised design
> > choice, but it does not violate 1NF.
> >
> > A repeating group refers to structure exposed logically regardless
whether
> > the structure is a set, list, array etc. The key distinction is whether
> the
> > logical data model treats the value as something other than a single
value
> > with defined operations. Thus the NF^2 models complicate matters by
> > extending the operations on relations to operate on a more complex
> structure
> > whereas a relational dbms leaves the relational operations as they are
and
> > adds domain operations instead.

>

> But given that types are orthogonal to relations, why is a List type
> non-relational?

It is perfectly valid to have domains with one or more possible representations involving list types. As long as the dbms treats the value as a single value with respect to the relational operations, we are still dealing with the relational model.

> Or is it simply in the exposure in the logical model?

A logical data model involves structure. In the relational model, the only structure is the relation. If the logical data model involves additional structures, the logical data model is no longer relational. A relation represents sets of attribute values. As long as the logical data model treats them as single values, it does not matter whether the operations on the values are list operations etc.

The question becomes: What are the operations on list values? If you think about the question for a while, you might find the answer unexpected.

> For
> example, if I create a LIST type and operations over it, then define a
> relation with a LIST attribute, and use its operations as I've defined
them,
> is that in some way non-relational or non-1NF?

What you propose is perfectly valid in the relational model. Thus, for instance, a possible representation of a movie type might include an ordered list of video frames or an array of video frames or a stream of video frames etc. The question is: Why would anyone want any of the above when one can have a relation with a video frame attribute?

> Would that then apply to any "collection type" (e.g. set, array, etc.),
> other than relations themselves?

Yes, the same rules apply. Defining a type does not alter the available structures of the logical data model.

> Just trying to identify the boundaries... the discussion of 1NF repeatedly
> cross the line between relations and types, depending on who's talking.

1NF involves both relations and types. It impossible to have a sensible discussion of the matter if the conversants do not understand this. Received on Fri Feb 27 2004 - 22:22:14 CET

Original text of this message