Re: So let me get this right: (Was: NFNF vs 1NF ...)

From: DBMS_Plumber <>
Date: 14 Feb 2005 15:29:29 -0800
Message-ID: <>

Jan Hidders was widely reported to have said:

> "Related to the previous is the question whether domain values and
> associated operations should be allowed to be of arbitrary
> From the beginning it was tacitly assumed that domain operations
> be simple and efficient and would not have to be optimzed. But if you

> allow them to get arbitrary complex then you might need something of
> complexity of a relational engine, complete with query optimization
> cetera, again at that level. Would that be worth it? Never mind what
> happens if allow nesting and unnesting and start mixing the
> of the two levels. Does that really weigh against the benefits? Would
> really gain something over an approach where at the external level
> things can be arbitarily complex but at the conceptual level they are

> all mapped to relations with simple basic domains? "

Allow me to rant an' spit an drool and dribble on your shoes, for a minute, while my latest workload test runs.

The question before us is (ahem) related, in general, to the power of the relational model, and to its application as a general purpose programming system. On the one hand there are those--and I number Date & Darwen among this crowd, on account of their unaccountable preference for domains that have "equality"--who appear to believe that "domain operations would be simple and efficient". Based on admitedly scant evidence, I would further suggest that such folk are entirely happy to relegate the relational model to the basement of the information system stack while simultaneously insisting--quite rightly--that in architecture, foundations are everything, blah blah blah.

On the other hand there are those who wonder if the entire, rotting edifice of modern software development, with all of its many and varied and poorly understood APIs might possibly be replaced with a simpler, more productive framework.

Standing in bewildered opposition to both schools of thought is the JaVa is KewL! tribe, usually found fueding furiously with the C-SHarp RulZ! tribe, both of whom are serviced by a small caravan of badly coifed cretins riding camels with bumper stickers that proclaim "XML is King!".

So much for our dramatic personae.

Now it ought to be obvious by now that I fit into the small anarchist wing of the relational faith; those who don't wanna do databases cos' databases, being at the very bottom of that stack I mentioned earlier, are usually the last dumping ground for all the crap generated by the layers above. (Footnote: This scatologic theme helps explain why I've gone with the whole 'Plumber' theme. There are moments when I have wanted to reach from my vantage point in the basement, back up that that pipe to the orifice from which came the source of my current misery, and turn some "Schema? What schema?" punk inside out, but I digress.)

Suffice it to say I don't want to fix SQL, or replace it with Tutorial D, and I am completely underwhelmed by efforts to build a better DBMS, partly because I think such endeavours are doomed to dash on the rocks of commercial indifference, but most because the whole "DBMS as the persistence layer" idea is really, really dumb. But I also don't want to go beyond what can be safely said: Domains, Relations, Operators, and Constraints, all *programming* as values in relations. No 'domain operators'. No 'RVA's. No 'relvars' (or rather, not distinction between the relvar and the relation, if you like.) Set logics all the way, baby!

> SCREEN := (RETRIEVE U.X, U.Y, U.RGB FROM Images I, UncompressJPG U
WHERE I.Name = 'Fred' and U.Image = I.Image );

Crazy, you say? Hard to believe! Well, in keeping with the grand history of M. Fermat (and the developers of the TransRelational System), all I can say is that I have completely thought the issue through and I have a wonderful system, but this narrow margin, this paltry page in space and time, is inadequate for its exposition. (Plus, I'm bullshitting: I have no clue how to make this vision work.)

And now I see that my latest workload has completed, and I see that what I tried didn't make a damn bit of difference .... Received on Tue Feb 15 2005 - 00:29:29 CET

Original text of this message