Subject: schema

From: "Ed Robertson" <[email-masked]>
Date: Tue, 23 Mar 1993 10:20:58 -0500 (EST)

There have been several suggestions for a "phasing" of the benchmark
queries.  In particular, Christian has identified the following
as additions we should want to consider:

|       (a) it should be possible to use the same relation more than
|	   once in each query
|       (b) queries involving aggregation facilities should be included
|	(c) it should be possible to ask queries involving valid time
|	    and user-defined time

However, I'd like to suggest that we put as much into the SCHEMA as we
could think of NOW.  Maybe I've gotten frustrated from years of teaching,
since I always have trouble with students who want to rush ahead before
the schema is fully considered.  But my intuitive feeling is that having
the same schema for all the phases of query design is a good idea.  That
insures that all queries are specified in the same context.

The additional attributes I've seen suggested:
	gender (time invariant - modern medicine notwithstanding)
	birthdate (user defined ??? )
	skill (multivalued)

Concerning the issue of the gender attribute, Christian suggests
| Inclusion of time-invariant (same as "non-temporal") attributes has
| been proposed. It is my feeling that the motivation for this is to
| obtain a schema better suited for queries involving aggregates (?).
However, our feeling is also that it's a good idea to be able to make
subtle distinctions, such as between "list all managers ever earning
more than $50000" and "list all women ever earning more than $50000".
On a system with no built-in temporal support the first query would
certainly be more difficult than the second, so one might expect that
a poorly designed temporal system would also exhibit differences in
phrasing these queries.

I'd also like to point out the difficulties with trying to classify
queries by operations -- such classifications are highly dependent
on other aspects of the implementation.  For example, Christian's
item (a) above looks like it doesn't apply to the query "list employees
who ever worked in shipping and now earns at least $40000".  But if tuple
time-stamping, rather than attribute time stamping, is used, then it
would be necessary to do a join to match up current salaries and
past departments.  (Of course part of the trouble is that little word
"ever," which will certainly confound us in the future.)