Re: Proposal: 6NF
Date: 11 Oct 2006 10:08:00 -0700
Message-ID: <1160586473.402477.223010_at_i42g2000cwa.googlegroups.com>
Brian Selzer wrote:
> "Hugo Kornelis" <hugo_at_perFact.REMOVETHIS.info.INVALID> wrote in message
> news:bjidi29k8crgbrh536l9t3et41chha1i1n_at_4ax.com...
> > On Fri, 06 Oct 2006 08:32:36 GMT, Brian Selzer wrote:
> >
> >>
> >>"JOG" <jog_at_cs.nott.ac.uk> wrote in message
> >>news:1159970386.339044.87090_at_i42g2000cwa.googlegroups.com...
> >>> Brian Selzer wrote:
> >>>> "JOG" <jog_at_cs.nott.ac.uk> wrote in message
> >>>> news:1159954091.119164.155490_at_m73g2000cwd.googlegroups.com...
> >>>> > All of your points represent a wild goose chase in my eyes Brian. A
> >>>> > proposition with a NULL in it is no proposition at all. From a
> >>>> > logical
> >>>> > perspective, case closed. A relation tuple with a NULL in it is no
> >>>> > relation tuple at all. From a mathematical perspective, case closed.
> >>>> > Trying to invoke the 'kludge perspective' is hardly going to convince
> >>>> > a
> >>>> > theoretical newsgroup.
> >>>> >
> >>>>
> >>>> Is the empty set a value? Yes, it is. So why can't a null be?
> >>>
> >>> Because an empty set is a value and a NULL is not.
> >>>
> >>
> >>Why not?
> >
> > Hi Brian,
> >
> > Because relational databases supporting NULL *define* it as a marker
> > denoting the absence of a value. Dawn actually makes a good point about
> > context: in C for instance, NULL has a completely different meaning.
> >
> > But since this is a discussion about relational databases, I'll assume
> > the standard definition of NULL for relational databases unless you
> > specifically state otherwise.
> >
> > (snip)
> >>The empty set /indicates/ the absence of a value, yet it /is/ a value; a
> >>null /indicates/ the absence of a value, yet it /isn't/ a value? Why the
> >>double standard?
> >
> > Wrong. The empty set *IS* a value. It's domain is the domain of sets. A
> > set is a value that can hold zero, one or more values of a specified
> > domain. The empty set happens to hold a zero number of values.
>
> Hi, Hugo.
>
> I believe I said that the empty set *IS* a value. It's abstract, but it is
> a value. The set of all sets does not exist; therefore, the domain of sets
> does not exist. Consequently, the empty set does not have a domain. It has
> an abstract type, however.
This argument and conclusion is maddening. The set of sets does not exist hence the empty set has no domain? Even ignoring classes, consider:
D = { {}, {x}, {y} }
Voila. A domain ready for use, containing an empty set as one of its members. In contrast there can be no domains containing an SQL-NULL as it is not a value.
>> > between "the suitcase is empty" and "where's the &*(^^%#$ suitcase!"
> >
> > NULL is a marker that says "no value here". If NULL would appear in a
> > column that is defined to use datatype "set" (not sure if any product
> > supports it and not sure if I'd want it, but bear with me), then it
> > would still be different from an empty set. Kinda like the difference
> >
>
> Ø is a symbol that says, "no value here." The empty set is defined in terms
> of values, and its existence depends on the existence of other values.
What on earth does this mean? The empty set is defined by one of the axioms of Zermelo-Fraenkel set theory, irrespective of anything else.
> It's a purely structural abstract value. So is a null.
No, an sql-null is /still/ not a value.
> The only real difference
> I can see between a null and the empty set is that null is always decorated
> with an attribute name whereas the empty set can stand on its own.
And that's in spite of all of the arguments pointing out exactly why they are different? Wow.
> A relation is a named set of sets of named values, so every atomic value in a
> relation is decorated with an attribute name.
>
> > Best, Hugo
Received on Wed Oct 11 2006 - 19:08:00 CEST