Re: Proposal: 6NF

From: Brian Selzer <brian_at_selzer-software.com>
Date: Wed, 11 Oct 2006 15:33:01 GMT
Message-ID: <N88Xg.21743$Ij.21495_at_newssvr14.news.prodigy.com>


"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.

>
> 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
> between "the suitcase is empty" and "where's the &*(^^%#$ suitcase!"
>

Ø 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. It's a purely structural abstract value. So is a null. 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. 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 - 17:33:01 CEST

Original text of this message