Re: Quote of the Week

From: --CELKO-- <jcelko212_at_earthlink.net>
Date: 15 May 2004 11:20:31 -0700
Message-ID: <18c7b3c2.0405151020.2c800f61_at_posting.google.com>


>> In what sense is mandating NULL a spec? <<

The host program was expecting a NULL for a missing date value. This is just like a spec that says a non-NULL integer value is expected from the database. Interfaces are important.

>> An arbitrary dummy date, or a special value? And in what sense is
that any more false than a null (it sounds like the design you imply is suspect, and could be resolved either with a relation-valued attribute of promotions, or a special value still in the domain of DATE). <<

It is more false in the sense that '1900-01-01' (the value Date used) is a real date, with a meaning in itself. If the Host programs (present and **all** future programs!) agreed on a context in which the world began on '1900-01-01' or that it simply did not exist for that one day, then we'd be fine.

"Entia non sunt multiplicanda praeter necessitatem." (No more things should be presumed to exist than are absolutely necessary) -- William Occam (c. 1280-1349)

>> Ironically, Date essentially agrees with that assessment of 1NF
(not in SQL,
but relational) in his "What First Normal Form REALLY Means" paper. <<

I found it amazingly hard to design an encoding scheme that was both atomic and still verifiable in reality.

>> [adjacency list model] Procedural how? <<

Look up the nested sets model and my little organizational chart. If you want to find ALL the superiors of a given employee in an organizational chart, you can test each node **in parallel** and get the **entire** desired subset. In short, there is a characteristic function for it.

In the adjacency list model, you can test each node in parallel only for their immediate superior. To get to the next level, you must iterate or recurse -- procedural programming methods!

>> Do such constraints require a TCLOSE type of operator? <<

No, you can use full SQL-92, which allows subquery predicates.

>> They're shorthand, I believe, not extensions. Very useful
shorthand, though. <<

He uses his square brackets to group chronons into sets, then puts the sets into columns; that makes me worry about 1NF, but I could be talked out of it on the grounds it is a model for a duration.

But later in the book, he puts salesmen into square brackets and that is plain silly. Salesmen are not a continuum!

>> So what non-chronon model is better? <<

The ISO half-open interval model. This is why there is not such time as 24:00:00 Hrs, but only 23:59:59.9999 ... and 00:00:00 Hrs.

>> I've not read Date's temporal book,.. <<

Better get a copy; it is not selling well and might go out of print earlier than planned. I guess it was too much theory and not enough usable code.

>> So SQL-92 is relational? <<

Sure, the way FORTRAN is algebra :) Received on Sat May 15 2004 - 20:20:31 CEST

Original text of this message