RE: Structure criteria for DASL queries

> The purpose of this message is to make (or reopen) the case for
> defining a structure criteria (also called "structured query") in
> DASL.

A while ago, I sent an e-mail describing what we should be
doing as a standards body. The gist of it is, that what we do 
should be more like "codifying what everyone is already doing"
and less like "inventing and standardizing non existent 
practice".

Up to and including SQL 92, it is not possible to even declare 
a column that is not a basic data type (i.e., string, integer,
floating point, datetime, or datetime interval), let alone
have a query condition involving such a column. In other words,
it is not possible to declare or query an array or a table 
or anything like a C structure as the value of a column. Said 
another way, tables are flat, i.e., normalized. This fact all 
by itself makes an attempt by DASL to standardize querying 
non base datatypes a dubious proposition.

However, it's even more clear than that.

The world is not static. Technology inevitably 
advances. Whether from customer demand, or because RDBMS 
developers sit around and think up new things to do to keep 
themselves busy, or some combination of both, >> denormalized 
RDBMS's are coming. << The reason(s) why don't matter. What 
matters it that it is happening. This is as inevitable as 
the sun coming up tomorrow, although it may take longer.

Furthermore, due to competitive pressure, once any major 
vendor has a feature, it becomes a checklist item, and all 
major vendors end up having the feature eventually. Then, 
there is a pressure for standardization of the feature, so 
it eventually tends to become standardized.

I happen to be a little bit aware of Oracle 8.0, which has
been shipping for a while now. In Oracle 8.0,
they have added object valued columns, arrays, table valued
columns (nested tables), and abstract datatypes (these even
have methods you can invoke), among other things.
They extended SQL to declare these things. They also have
added some features to SQL to aid in querying, e.g.: name 
resolution to support abstract datatype attributes, implicit 
joins via object references, and abstract datatype comparisons 
via a new MAP method, implemented in the type definition.

So, Oracle 8.0 provides some concrete evidence that what
I said above is in progress. But, I believe the Oracle 8.0
extensions are proprietary. It would not be appropriate for
DASL to just pay attention to one proprietary extension
to the usual query mechanisms and ignore the others.

In a perfect world, standards would be complimentary, and
would interoperate. In a bad world, standards would compete
and be incompatible with each other. I strive to make the
real world a little bit more like the perfect world. Therefore, 
I would like to see whatever design the RDBMS vendors and 
others end up with for querying structured data be compatible 
with DASL and vice versa.

Should DASL try to drive the standardization of
querying structured data and the RBDMS industry conform
to what DASL does, or should the RDBMS industry
drive it and let DASL accommodate the basic part of it?

(1) The RDBMS industry has to do much more than DASL 1.0 has
to do as far as providing query functionality.
(2) The RBDMS market is billions of dollars.
The WebDAV market is nascent, i.e., currently zero dollars.
(3) Right now, DASL accommodates a basic subset of what
SQL 92 does, and a basic subset of what DMA does: It is
reasonable to map DASL into SQL and into DMA, and
map the results back out to DASL again. It is also
reasonable to just implement DASL query functionality
from scratch on some sort of basic property store.
(4) For most companies, it is usually the right decision 
to leverage other companies' RDBMS technology and/or 
content based retrieval engines as opposed to building
the same technology into their products. Therefore,
many WebDAV systems will be built using them as components.
Therefore, it is important for WebDAV to accommodate these
technologies.

Putting (1)-(4) together, I conclude that DASL 1.0
should let the RDBMS industry drive querying structures, and
accommodate what they end up doing on a later release.
For DASL to try to drive the standardization of querying
structures would be like the tail trying to wag the dog.
>>> This is the real reason I don't think DASL 1.0 should try 
to define querying XML structures. <<< All the other
reasons are less important.

Note that once you step off the beaten path (and querying
structures is off the beaten path), you have to watch out
for land mines. It seems that WebDAV has already shown the
truth of this statement: Consider -- DAV. Distributed
Authoring and Versioning. Authoring and versioning have
been around for decades. The only thing a little different
is the Distributed aspects of the internet. So, WebDAV, 
appropriately, it seems, attempted to define shared and 
exclusive locks. Locking has been around for decades. 
Sounds like it should have been easy. Guess what? It seems 
WebDAV specified a locking bug, i.e., WebDAV stepped on a 
land mine, having only stepped off the beaten path with one 
little toe. This wasn't apparent until an implementation 
was attempted. Well, querying structures is a much bigger 
step off the beaten path, and so the danger of stepping on 
a land mine is greater.

All the other discussion we have already started having 
and will continue to have about terminology is beside the 
point. Hopefully, the terminology discussion won't act as 
a smoke screen and obscure the big picture I have presented 
here.

Fortunately, I don't see the need to define querying XML
structures in DASL 1.0. I think the need to try to 
work on some content based retrieval operators is much 
greater, and would be a much better use of the limited 
amount of time we have left. There will be plenty of 
extensions added in later releases of DASL.

Alan Babich

Received on Friday, 28 August 1998 21:45:55 UTC