Re: Nulls, integrity, the closed world assumption and events

From: David <davidbl_at_iinet.net.au>
Date: 10 Jan 2007 17:18:27 -0800
Message-ID: <1168478307.666038.73090_at_k58g2000hse.googlegroups.com>


Brian Tkatch wrote:
> David wrote:
> > Brian Tkatch wrote:
> > > Cimode wrote:
> > > > David wrote:
> > > > > Consider the following relation
> > > > >
> > > > > person(P,M,F) :- person P has mother M, father F.
> > > > >
> > > > > By induction a non-empty
> > > > > database would have to be infinite.
> > > > A false premise makes all deductions coming from it false. Closed
> > > > World Assumption does not say anything about the number of element that
> > > > belong to a domain of values from which one attribute values are
> > > > derived. In the case of a *person* domain, the number of elements in
> > > > the set is certainly finite. Therefore, the number of propositions
> > > > involving person as an attribute is limited as well.
> > >
> > > Would not the question be better stated:
> > >
> > > If a table lists linked chains (with the linked-to link), how is the
> > > final link (whether first or last) stated?
> > >
> > > In such a case i link the item to itself.
> >
> > You suggest a proposition stating that a person is their own
> > mother/father?

>

> Yes.
>

> In a cause-effect table that records all causes and effects has to
> assume a circular relationship for either the prime cause or (current)
> final effect.
>

> If the table in question here was to denote parents and their children,
> there would be allowance for an entry of no children, thus ending the
> chain. However, the case here is people and their parents, without the
> option of no parent.
>

> This means the chain must be circular, the question is to which link.
> Being it would create an impossible relationship for a parent to have a
> child as his parent, the circular relationship must be to itself.
>

> So yes, i would indeed suggest a proposition stating that a person is
> their own parent.

Do you suggest this by analogy to algorithms and data structures (written in C++ for example) that use the same technique? Interestingly the more common approach is to use null pointers.

IMO the RM is founded first and foremost on mathematical logic, and therefore stating any proposition that is actually wrong must be avoided. This is also why I think nulls are bad.

Whilst on the subject of nulls, I have seen a paper written in '83 by Carlo Zaniolo that suggests nulls can represent "no information" (which encompasses all the more specific interpretations such as "unknown" and "non-existent"), and this appears to lead to a decent mathematical model, unlike Codd's 3vl which is far from compelling. Received on Thu Jan 11 2007 - 02:18:27 CET

Original text of this message