Re: Codd provided appropriate mathematics ... (was Re: Relational and MV (response to "foundations of relational theory"))
Date: Wed, 03 Mar 2004 13:41:28 GMT
Message-ID: <cgl1c.55383$3T6.34195_at_newssvr33.news.prodigy.com>
"Bob Badour" <bbadour_at_golden.net> wrote in message
news:84KdnZeYCbXcKKLdRVn-uw_at_golden.net...
> 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.
Yes, that accords with my understanding.
> 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.
Also sensible, and also where MV veers off (the nested structure is built into the data model, giving 2 ways to model the same thing, one of which is enticing but limiting, and which also mangles closure and other good properties of a model).
> 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.
In Java I tend to use iterators, so I deal more with a "sequence" type than a list per se. The usual defining characteristics of a list are ordering and, in most cases, random indexed access to elements.
> What you propose is perfectly valid in the relational model. Thus, for
Agreed - the only reason might be, for example, a COMPRESS operation which
takes a FRAME_LIST and returns a FRAME_LIST which takes less space when
serialized (lossy compression). That seems more like an operation over a
domain than something you'd want to do with a relation... but I could be
wrong about that.
> 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?