Re: Question on Structuring Product Attributes

From: Derek Asirvadem <derek.asirvadem_at_gmail.com>
Date: Mon, 11 Feb 2013 16:48:54 -0800 (PST)
Message-ID: <cd40aa00-e301-46ea-8bd2-50641fa62451_at_googlegroups.com>


On Tuesday, 12 February 2013 02:19:34 UTC+11, James K. Lowden wrote:
>
> On Mon, 11 Feb 2013 02:51:46 -0800 (PST) Derek Asirvadem wrote:
>
> > On Monday, 11 February 2013 11:38:54 UTC+11, James K. Lowden wrote:
>
> > > Could you please tell me which 3VL supports your contention that
> > > NULL = NULL?
>
>
> > Where, in [quote omitted], does the implicit or explicit statement
> > lie, that 3VL or "a" 3VL, contends that NULL = NULL ?
>
> > To be clear:
>
> > ? Sybase ANSI_NULL_BEHAVIOUR = OFF (where NULL = NULL)
> > is 2VL.
>
> Um, no. A logic with 3 values can't be a 2VL.

With the capability that you have demonstrated, and the detail I have already provided, I am sure that you can construct a truth table for Sybase non-ANSI Null Handling.

Or you could look up the manual, there might be one there. http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0.commands/html/commands/commands85.htm

I think they call it reduction, but I am not sure.

There are many blog posts about it, but you know what bloggers are like: they spin their wheels about minor irrelevant matters, or post at length about things they only half-understand (20 pages instead of my single statement): http://sybasease.blogspot.com.au/2005/05/nulls-in-sybase-ase.html

As I stated previously, the OFF setting allows developers to NOT know 3VL, to NOT care about 3VL, to NOT have to make 3VL considerations in every code segment. Coding SQL is a fraction of the developers job, we do not want them be contaminated by the neurosis of the academics who think there is a problem where there is none; we want them to focus on the parts that they can control and to forget about the parts they cannot control. We want good code from them, not theoretical arguments.

> This is c.d.t.; we're supposed to be able to refer here to the theory
> of databases. I showed you a truth table and asked which 3VL you were
> referring to.

Which is either insulting, or plain stupid, because there is only one 3VL. The consequences (my reply) are the consequences of your communication.

> If you're going to contend that 2 values are 3, I'm
> going to stand well clear.

I didn't contend that, but you keep telling me that I did.

If you are so fixated in the belief that the 3VL requirement must be implemented in a platform, and you cannot imagine an alternative, not even when a specific one is detailed to you, I can't help you.

If you are trying to understand my statement, or need expansion, that is one thing; following that path will provide understanding of what you do not understand yet. Trying to prove the statement false by picking at fragments taken out of context is a different thing; following that path will provide only a small comfort in your denial of reality, until the next time something exposes that which you deny..

> > > > SQL is [the] data sublanguage defined in the RM; it is the
> > > > servant of the RM, not the other way around.
> > >
> > > If only.
>
> > Hah! I love it!
>
> > You young people think that history began when you were born,
>
> I was born ... when?

In the year of the Snake. Or maybe the Rat. Whatever it was, it was one in which the level of education delivered caused an ensuing level of ignorance of history, that in turn caused you to make the comment "If only". That year.

> > > AFAIK the word "relational" doesn't appear in the SQL
> > > standard unless to explicitly deny fealty to it.
> >
> > So what ? It is a standard.
>
> Yes, it's a standard defined explicitly in terms of itself, not in
> terms of RM. Your claim that, "SQL is [the] data sublanguage defined
> in the RM" is thus denied.

Ok, by you. You must have used 3VL logic to conclude that one. Or perhaps 4VL.

May be if you take my quoted statement in the context of the statements from which you ripped it out and considered it in isolation, and instead, considered it in context, you may not need a truth table to evaluate the truth of said fragmented statement. But you might need a truth table nevertheless.

May be you would understand me better if I stated an even shorter histotical synopsis (I can't ask you to avoid fragmented thinking, but if you quote me, please do not break this sentence up):

••• The RM defined a Data Sublanguage, nothing else did; the first SQL was the rendition of the Data Sublanguage defined in the RM; the SQL Standard is the progressed definition of a portion of the Data Sublanguage defined in the RM; any SQL implementation is the progressed rendition of the Data Sublanguage defined in the RM.

No doubt you will argue, and I will have to patch that up in response, but let's use that to get started, and please do not break it up into little fragments and argue the fragments; please argue the whole.

Or, if you like working the logic backwards:

••• Denying that SQL (an implementation or the standard) is a rendition of the Data Sublanguage defined in the RM is a denial of historical fact. A person making such denials will be in denial of their own family, lineage, and heritage; they are both symptoms of the one mental impairment that is installed by modern education.

I prayed for guidance in dealing with your problem, and I was lead to: http://www.kingjamesbibleonline.org/book.php?book=Matthew&chapter=23&verse=24

> > Standards generally do not include history; the books or articles do
> > that (or the memories of old soldiers like me), and the books are
> > sadly wanting.
>
> Standards generally do not rest on much of any theory, let alone
> something as robust as RM. It would have been nice if a standard query
> language had evolved that implemented relational operations per se.
> Instead we're living with a 1970s-era 4GL, a pushme-pullyou brute.

I agree with you on those two points.

3GL not 4GL. It remains a data sublanguage; nowhere near a 4GL or a language on its own, or one that can be used to produce an application. It has to be compiled, and included with either another 3GL or a 4GL, in order to create anything that executes.

> IBM imagined it would be used by end-users, who at long last would write
> their own !_at_#$% reports.

That is a half-truth, and half-truths are lies.

For the purpose of reporting, and if you use the theoretical definition of "user", yes, agreed. And make no mistake, with the $0 to $500 simple reporting tools of today, millions of users do exactly that (as determined in the RM: instead of "terminal" and "menu", read "PC" and "simple report program"). For five figures, you can enjoy very powerful tools, which allow millions of users to overcome the limitatiions posed by morassses of data provided by todays developers, again with simple clicks and drags. Those are the 4GLs, if you will. Codd's vision has been realised, from at least 20 years ago.

For the purpose of applying changes to the database, no. It had nothing to do with IBMs imagination. Codd defined that there shall be one (and only one) data sublanguage, for both purposes. The Twelve Rules expands the RM in this regard, and details this.

The problem is, the pathetic SQL Comminterns have not progressed to providing a "proper mathematical expression" or relational calculus or relational algebra as a front end. Given the richness of the mid- and lower level of the SQL implementations, and the investment, both of vendors and of their customer bases, which we would not want to re-invent, the obvious thing to do is to write a relational calculus front end that simply calls SQL underneath, but no one has done that.

> They didn't, and now programmers, lacking any
> proper mathematical expression, are required to squoosh their queries
> through the opaque mess that is SQL.

It is not that bad. First, totally granted that SQL is cumbersome, and problematic. But • the better vendors have removed the opaqueness (those who are fixated on it will still demand to have it and enjoy, instead of producing code). It is not broken as some academics love to rant about (The standard is, but some implementations are not [the blind implementations may well be as broken as the standard] ). • I think it is very limited, but for reasons that those academics have not identified. • I don't know about you or your site. But we have tools these days, most of us do not code SQL directly; we point and click, or drag, or type a few letters and the tool fills in the rest. So the largesse demanded is somewhat tamed.

In days of old, programmers had a small understanding of "proper mathematical expression". Programmers of the last 15 years have none at all, some of them have not even heard of it or the RM. If we had one (that allowed "proper mathematical expression", they would not be able to use it. The academics who espouse a data sublanguage or full language that allows "proper mathematical expression"are grossly dishonest: they trumpet the need for a prescription that can never be used by the patients. I am hoping you are not one of them.

The summary point is
• SQL can definitely be improved (but that effort is severely limited by the very same academics on the committee) • there are many capabilities that it should have (within the scope of what it does have), that are simply missing, that were identified 20 years ago, and are still missing • SQL is not broken as per the charges of some academics (summary point, note the qualifications to that statement, above) • In the absence of any of the large array of SQL development tools, that have been available for 20 years, one will find it cumbersome, yes. Like programming in a 2GL in the days of 3GLs, and complaining about the problems of 2GLs. The problem is not the 2GL; the problem is the person who cannot progress to a 3GL.

I am not defending SQL.

I am saying, there is nothing, zilch, zero on the horizon, in terms of a replacement, and the academics who imagine that (on the far side of the horizon) have nothing that will reach our horizon in this century. So stop waiting for a replacement; stop thinking about how broken it is; just get your head around it (your particular implementation) and get really good at it. It is a mundane but important part, but certainly not the whole, of any development today. Just deal with it instead of wailing about its rather obvious limitations.

As for the theoreticians (non-implementers) they are free to argue about the imagined problems that are not real to implementers. Eg. the "SQL Problem", the "Null Problem", etc, has been discussed ad infinitum for 25 years (that I personally know of), and nothing has been resolved, nothing has changed in the physical universe. The "SQL Problem", the "Null Problem", etc, are non-problems to an implementer ... unless they get confused by the writings of the subversives.

> > I strongly suggest you throw out any book that purports to be about
> > the RM, that is not written by Dr E F Codd, and read only the RM and
> > related papers.
>
> It's good advice. A little late, and more than a little presumptuous,
> but good advice, no doubt.

Thank you. I had no control of the timing, so I cannot be held responsible for the lateness.

> I would only add that Codd is easier to
> understand and appreciate with some prior knowledge of first order
> predicate logic.

Indeed.

> > There is one particularly odious idiot who proposes an anachronism:
> > remove the data sublanguage and replace it with an, um, full
> > language.
>
> I guess you are referring to Tutorial D?

Yes, Andrew Warden or Hugh Darwen or Tweedle Dee or whatever he calls himself these days. He has not written a single line of code, but he has tricked a score of talented and eager young people into writing the impossible. It it were not so sad and disgusting, it would be hilarious, yes.

Apparently he was on the SQL committee for a few years. One can understand and appreciate the impotence of that committee, the contradictory demands in the standard, given that they have committed saboteurs and subversives such as he on it.

> Why the circumlocution?

Because:
• it is difficult to write the name without throwing up my breakfast • despite his assault on my senses during the three years that I spent in dutiful discussion on his website, due to God's Grace, I still have a tiny bit of politeness remaining • I failed to submit my writings to your for your prior approval • I was born in the year of the Rooster
• I went to Montessori, Sunday School, Boy Scouts, and the best English public (means private) school in the country, for which I am eternally grateful to God and my parents • if I were to attack the pestilence directly (non-circumlocution as implied), then I should write a paper and publish it (which is begging, actually) • following which I should open a new thread on c.d.t • and this is not that thread, this is another thread, in which the false prophet who denies the messiah is a minor reference

Cheers
Derek Received on Tue Feb 12 2013 - 01:48:54 CET

Original text of this message