Re: So what's null then if it's not nothing?
Date: 1 Dec 2005 20:07:26 -0800
Message-ID: <1133496446.794271.267450_at_z14g2000cwz.googlegroups.com>
Jon Heggland wrote:
> In article <1133399157.887590.131540_at_g49g2000cwa.googlegroups.com>,
> boston103_at_hotmail.com says...
> > Jon Heggland wrote:
> > > In article <1133365672.244152.260720_at_z14g2000cwz.googlegroups.com>,
> > > boston103_at_hotmail.com says...
> > > >
> > > > Please read the original article I've referenced for justification and
> > > > the debate beween Codd and Date on the issue of nulls:
> > > > http://www.dbdebunk.com/page/page/1706814.htm.
> > >
> > > I found no justification in the original article; that's why I asked! I
> > > have read the Codd/Date debate; it seems that Codd is confused about how
> > > 3VL works.
> >
> > What specifically is he confused about with respect to 3VL ?
>
> Tautologies, for one thing, as pointed out by Clement-Davies.
Au contraire, it's Clement -Davies who does not get Codd's point. Codd correctly remarks that checking whether a logical formula is a tautology would be nice, but unrealistic even in the 2L because in the FOL on which the RM is based the problem is simply undecidable.
[...]
> > The 3VL equivalence is a logical operator (or connective) whose meaning
> > is defined by a truth table in the same way as it is for the 2VL
> > equivalence (sometimes called a biconditional). The equality operation
> > is a predicate/relation defined over a set of values.
> > I do not know why they call equivalence EQUALS.
>
> Because the result of the the evaluation of equivalence
of what ?
and equality
of what ?
> should be / is the same, perhaps? Or maybe it's just happy coincidence
> that it is in 2VL ... What practical (or indeed logical) consequences
> has such a separation of equality and equivalence for database theory?
Logical equivalence is defined over a set of wffs whose truth tables are the same. E.g.,
p & q <=> not (not p or q)
Clearly, we have two different formulas that are logically equivalent because their truth tables are the same. In other words, '<=>' partitiones the set of wffs into equivalence classes.
> Do you think it is a good idea to define a system where 0 is equivalent
> to 0, but not equal to 0?
What's that supposed to mean ? What set is your equivalence is defined over ? What set is your equality is defined on?
>
> > > > He uses the same symbol (NULL) both to talk about the unknown as an
> > > > unknown value and to talk about the unknown as a logical constant as
> > > > you noticed earlier yourself. It's confusing, but one can easily
> > > > deduce from the context what exactly he means. In order to avoid
> > > > confusion, one can use NULL to represent only an unknown value and
> > > > UNKNOWN to represent the additional [to TRUE/FALSE] logical constant.
> > >
> > > The problem is that NULL = NULL and thus UNKNOWN = UNKNOWN is not true,
> >
> > There is no 'thus', the problem is that you are missing the context.
>
> Codd uses the same symbol, omega/null for both his 'value (of any type)
> at present unknown' and for the unknown truth value. Or do you claim
> that when null is encountered as a 3VL boolean (lukasiewiczian?), Codd
> says null = null should yield true?
As I said before, the domains (contexts) are different so what's the problem ? When we use {0,1,2} in the 3vl, we do not claim that 0,1,2 are integers, do we ?
>
> > Now, we
> > can consider a set consisting of three elements {TRUE, FALSE, UNKNOWN}.
> > It's a trivial observation that we can define equality over such set
> > where UNKNOWN = UNKNOWN evaluates to TRUE
>
> We can define anything we want, I guess.
Sure we can.
>
> > (UNKNOWN does not have any special meaning, you could as well use
> > QWERTY instead).
>
> Just like you can use ASDFGH for TRUE and ZXCVBN for FALSE? What's your
> point?
The point is that we can [re]-use the same symbols for different things as I hope I've demonstrated above.
>
> > Further, you
> > can use NULL instead of UNKNOWN, nothing really changes, you still
> > have a three element set {TRUE, FALSE, NULL} where you can define
> > equality so that NULL=NULL evaluates to TRUE. In other words, we
> > establish different rules for say {0,1,2,3, ..., NULL} and {FALSE,
> > TRUE, NULL}.
>
> In which case it is a really, really stupid idea to use the same symbol.
> To use the same argument, we can call the empty string NULL, and say
> that in a string context, NULL = NULL is true.
I cannot parse that.
>Or use NULL instead of
> TRUE, and "nothing really changes". Possible? Yes. Practical? No.
See above.
>
> But anyway, does Codd or SQL do this?
Do what ?
> If not, what is the point of your
> argument? That we can, if we want, design really horrendous formal
> systems? I won't dispute that.
>
> > > I never claimed such a thing. I do claim that 0 = 0, 1 = 1 and 2 = 2,
> > > though.
> >
> > See above.
>
> Come on. Your argument above says essentially "we can define it to be if
> we want to". I'm asking why we (or Codd) wouldn't want to.
I do not understand that. "Would not want to" do what ?
> --
> Jon
Received on Fri Dec 02 2005 - 05:07:26 CET