Re: By The Dawn's Normal Light

From: Laconic2 <laconic2_at_comcast.net>
Date: Fri, 22 Oct 2004 13:44:30 -0400
Message-ID: <v7KdnTYJA9OV2uTcRVn-hg_at_comcast.com>


Paul,

There are three ways a value might be "non atomic"

The first is that the values might contain some substructure within their representation.

In addition to LAST_NAME LIKE 'L%' we could have SUBSTRING(LAST_NAME, 1, 3) = 'ACO' In this case, I take the same view you do, that distinguishing between the relational engine and the type engine is useful, at least at the conceptual level.

The second is that the values might themselves be tuples. That is, a column like NAME might be made up of three named components, namely NAME.FIRST, NAME.MIDDLE, and NAME.LAST. Date is quite clear in stating that this is NOT encapsulation. As far as I'm concerned NAME.FIRST is no more and no less concealed than NAME_FIRST.

The third is that the values might be sets.

SELECT s.id, s.name
FROM enrollments s
WHERE s.courses_enrolled = {'PSYCH101', 'ENG101', 'MATH101', 'CS101'}

Now the question of whether courses_enrolled is a "set" meaning unordered, or a "list" meaning ordered is crucial for the correct interpretation of the equality test.

If a student is enrolled in these courses: {'CS101', 'PSYCH101', 'ENG101', 'MATH101'} the student has the same SET of courses as the criterion. But does not have the same LIST of courses as the criterion. Thus the distinction between a SET and a LIST is critical to the type engine. IMO, of course.

If I got it right, it is this third case that distinguishes the RDM from the Nelson-Pick model. Received on Fri Oct 22 2004 - 19:44:30 CEST

Original text of this message