Re: 3vl 2vl and NULL - the dead end posting

From: Jonathan Leffler <>
Date: Tue, 06 Dec 2005 06:18:53 GMT
Message-ID: <h3alf.1657$> wrote:
> Jonathan Leffler wrote:

>> wrote:
>>>David  Cressey wrote:
>>>Here's the thing: If you have a table with an unlimited number of rows
>>>and a limited number of columns then it is understood that the number
>>>of tuples in the table is rows*columns. True?
>>Not for any definition I've heard of...  Did you mean 'values' instead
>>of 'tuples'?  "The number of values in the table is rows * columns".

> Yes - kind of, only I really mean the container for a value, rather
> than the value itself. If I'd meant "value" I guess I would have used
> the word "value". Value is a word I'm familiar with - unlike tuple.
> Sorry if I misused the word "tuple". I asked what one of those was a
> while back and ended up thinking of a tuple as like a "cell" in a
> spreadsheet - the intersection of column and row - the container for a
> value or set or scalar or relation. Oh dear - I might have just thrown
> in a few potential bones of contention there. I don't mean to confuse
> anyone. I confess I am unused to these terms and am struggling with a
> foreign language, in a way. Please extend the same courtesy to me as
> you would to someone who is not a native English speaker.

In normal (relational) DBMS jargon, a tuple corresponds (roughly) to a row of cells - in general, to a number of values of a number of different types. There are degenerate cases with zero cells. A value is stored in a cell. The term attribute is often used in this context; speaking a little loosely, it corresponds to either a column name or the place where a value is stored in a tuple as part of a relation.

I would not have guessed that you were not a native speaker of English.   Had I done so, I would certainly have been quite so harsh. I probably shouldn't have posted my response anyway, but it's a bit late to worry about that now.

>>>And every tuple must have a value.
>>Yes - for tuples as tuples, or tuples misreferenced when values was
>>intended.  Further, the component values in each tuple must have a value.
>>>And if we don't have a actual value for one or more tuples we
>>>have to use NULL to represent the fact that there is no value.
>>IMO, this is so confused between tuples and values that there is no
>>value in debating further...  :-(

> OK. OK. Don't spit your dummy so quickly. I wasn't sure I was using the
> right terms. That's why the "OK?" was in there. Thanks for pointing out
> the misuse of a sacrosanct term. You can put your pacifier back in now.

Apologies - I thought I'd deleted that bit. Obviously not...

Unfortunately, you need to use precise terms precisely to avoid confusing people. Tuple does have a generally agreed meaning and it is not 'a place that can store a single value at the intersection of a row and a column in a table'. Hence my confusion.

>>I'm not going to consider the rest of the posting - I would need to
>>understand this much of it before going any further, and as you can tell
>>from my comments, I don't understand what you've written.

> You really were doing a marvelous job. I understand it must have very
> been difficult for you - my using "tuple" when I should have used some
> other word. God - how stupid of me. Tut, tut, tut.

I'm not sure how much (justified) sarcasm to read into this, versus jocular self-recrimination. I literally didn't study what you said beyond the point where I stopped because I wasn't sure what your terms of reference were, and it is silly for everyone to spend time arguing using the same words to mean different things.

Was it Dr Samuel Johnson (of 18th century London) who commented on two women arguing from windows on either side of a street that "those two will never agree since they are arguing from different premises"?

>>Would you be willing to try again?

> Well - yes, if you respond to the full post. Just read "cell" or
> whatever you want for "tuple". It's the intersection of a column and a
> row. The container for a value. OK? And please don't bother responding
> to this post. It'll only become a pointless argument. If you do decide
> to address the same post again, please don't snip so heavily. It's
> often really annoying when people remove content that is, or becomes,
> relevant to the discussion as it evolves.

Well, I am responding (with changed subject to indicate that it might just conceivably be the end of the this part of the thread).

I chopped ruthlessly because the remainder of the message was not relevant to my questioning - and will continue to do chop heavily when it seems appropriate to me. I gave enough context for my remarks to be comprehensible (I dislike postings with zero context), but I equally dislike postings that contain too much irrelevant material.

Jonathan Leffler                   #include <disclaimer.h>
Guardian of DBD::Informix v2005.02 --
Received on Tue Dec 06 2005 - 07:18:53 CET

Original text of this message