Re: repeating groups

From: JOG <jog_at_cs.nott.ac.uk>
Date: 20 Feb 2006 09:35:54 -0800
Message-ID: <1140456954.393203.94420_at_z14g2000cwz.googlegroups.com>


Jon Heggland wrote:
> In article <1140453242.747755.12070_at_g47g2000cwa.googlegroups.com>,
> marshall.spight_at_gmail.com says...
> > There are many and varied proposals being thrown around (which is a
> > *good* thing) and they have various degrees of associated complication.
> > Some of this complication would be at the logical level, and some
> > would be at the implementation level.
> >
> > If we do nothing else but add list attributes (one of the least
> > complicated
> > proposals) then we have to at least be able implement deep list
> > equality checking, for example. (You have to be able to test equality
> > for all attribute types to do an equijoin.)
>
> I wouldn't say that affects the relational algebra as such, though. When
> I design and implement types in Dataphor, I hardly think of myself as
> changing or extending the RA.
>
> > We also need to figure out what list operations we're going to support,
> > and the field of "list algebra" seems much less clear to me than
> > the field of set algebra.
>
> This neither. It is exactly the same problem you face every time you add
> a new type to a relational database.
>
> > If we add lists as top level entities, then we have to figure out
> > how the top-level set operations interact with the top level
> > list operations. What happens when we append a list to a set?
> > What happens when we join a list to a set? A list to a list?
> > This also affects closure, which makes it really important.
>
> This *does* affect the RA, but this is something very different from
> having lists as *attributes*, which I though was what was being
> discussed.
>
> But thank you. I was afraid I had missed something, but it was just a
> question of precision and terminology, as it often is. :)
> --
> Jon

I agree with much of this post. It seems to me there is confusion in previous discussion as to whether a repeating group is simply being viewed as a datatype, or as some mechanism integral to the system's algebra - these are wholly different things.

A group as a dataype may simply be interpreted by the user, and has little to no impact on relational algebra. It does have connotations however to the domain of an attribute, which would move from "emails" to "any set of emails" - how is this defined to the system? Adding a meta-layer to the DDL? Similarly when does one decide when an attribute is atomic or a group? Or should all attributes be conceptually viewed as repeating groups even when they contain only one element - essentially singletons? A seemingly innocent change such as "I'll just add a repeating group" can engender a whole host of unforseen consequences.

I'm not saying such a facility can't be implemented, but adhocracy should be avoided if at all possible. Received on Mon Feb 20 2006 - 18:35:54 CET

Original text of this message