Re: Relational and multivalue databases

From: Bob Badour <bbadour_at_golden.net>
Date: Thu, 19 Feb 2004 11:14:31 -0500
Message-ID: <5O6dnb16He6HfKndRVn-vA_at_golden.net>


"Eric Kaun" <ekaun_at_yahoo.com> wrote in message news:oa3Zb.23461$8X7.1156_at_newssvr16.news.prodigy.com...
> "Dawn M. Wolthuis" <dwolt_at_tincat-group.com> wrote in message
> news:c10ot4$pev$1_at_news.netins.net...
> > OK, I'll bite, but only for the purpose of entertaining myself and
others
> > who find this amusing.
>
> *sigh* And I thought I was going to be able to resurrect the debate sans
> flaming. Oh well.
>
> > It is typically considerably easier to query non-1NF structures than to
> use
> > SQL on anything. Here's a common type of query:
> >
> > LIST STUDENTS WITH EVERY MAJOR NOT EQUAL "MATH"
> >
> > Think this easy query through in your typical RDBMS (SQL)
implementation.
> > This is not an isolated case.
>
> So how would this "look" in Pick?

That was Pick. What Dawn omits is the same query might ask different questions depending on the physical file structure. See "red blue car"

In D:

STUDENTS WHERE ( MAJOR WHERE MAJOR = 'MATH' ) = TABLE_DUM or:

STUDENTS WHERE NOT ( 'MATH' IN MAJOR ) In SQL:

SELECT *
FROM STUDENTS
WHERE 'MATH' != ALL (
  SELECT SUBJECT
  FROM MAJOR
  WHERE STUDENTS.ID = MAJOR.STUDENT_ID
)

Dawn is a vociferous ignoramus. First, she ignores how easy the 'challenge' is in a truly relational language. Second, she demonstrates profound ignorance of the importance of precision and explicitness. Terse is not necessarily good. Especially if terse leads to a reduction in expressiveness as it does in Pick or if it obfuscates meaning as it does in Pick or if it increases the likelihood of difficult to discover errors as it does in Pick.

For your own benefit, I suggest you assume all Pick users--much like all crack users--have been cognitively damaged by their use. Thus far, I have seen no evidence of any Pick user who has survived unscathed.

> Are your assumptions that a student has
> multiple majors?

The WITH keyword anticipates either multiple values or multiple pointers to a file of majors.

> In Pick I'm guessing you'd say you have just 1 file, with a list of majors
> as an attribute.

Not necessarily. One might. One might have pointers to a file of majors with the join hard-coded in the dictionary for all users. Users have no ability to express joins unless hard-coded in the dictionary. Alternatively, one might have multiple mv attributes where values might or might not be associated by physical order. Received on Thu Feb 19 2004 - 17:14:31 CET

Original text of this message