Re: Codd's Information Principle

From: paul c <toledobythesea_at_oohay.ac>
Date: Sun, 01 Nov 2009 01:30:11 GMT
Message-ID: <Dw5Hm.51049$PH1.45679_at_edtnps82>


[Quoted] compdb_at_hotmail.com wrote:
> On Oct 30, 9:41 pm, paul c <toledobythe..._at_oohay.ac> wrote:

>> com..._at_hotmail.com wrote:
>>> On Oct 28, 12:51 pm, paul c <toledobythe..._at_oohay.ac> wrote:
>> ...
>>>> "Each row of the join represents a
>>>> conjunction of propositions, one for each operand"
>>> This doesn't make sense. Perhaps "one from each operand"?
>>> If so, yes. The predicate associated with r JOIN s is
>>> (predicate associated with r) AND (predicate associated with s).
>>> So each result tuple present makes this true and
>>> each result tuple absent makes this false.
>>> ...
>> I was quoting Mr. Scott.

>
> Yes, I know, that's why I left in your double quotes.
>
>>  Regardless, I don't agree with either
>> interpretation.  I realize that many, perhaps most, people who have been
>> trained in logic or read about it would place my attitude somewhere
>> between unfaithful and ignorant, but I would never try to tell a user
>> that some predicates are conjunctions and some aren't.

>
> The user *doesn't* have any choice.
>
> Assume variables (base relations) v with attributes ai and predicate
> (statement about the world) P and w with attributes bi and predicate
> Q.
> P and Q are chosen by the designer.
> The user set the value of v and w having observed the world.
>
> If variable v={t | P(a1 t.a1, ...)} and variable w={t | Q(b1
> t.b1, ...)}
> (using named operands) then it is unavoidably true that
> (v JOIN w) = {t | P(a1 t.a1, ...)} AND Q(b1 t.b1, ...)}.
> Suppose v={<joe, 10>, <mary, 20>} with P "a1 is a2 years old" and
> w={<joe>, <sue>, <john>} with Q "a1 has a cat".
> (ie joe is 10 and marry is 20 and no one else is any age).
> Then (v JOIN w)={t| a1 is a2 years old and has a cat"} ie {<joe, 10>}
> (ie the names and ages of those people who have cats.
> So "joe is 10 and has a cat" is true and "mary is 20 and has a cat" is
> false
> and every other statement of the form "a1 is a2 has a cat" is false
> too.
> (This is just an example following my original message.)
>
> This is why the operators of the relational algebra manipulate tuples
> as they do.
> The algebra plus this fact is essentially the relational model:
> that the dbms calculates the tuples satisfying a transformation of
> predicates
> (in the users head) by evaluating the corresponding relation operator
> on the
> corresponding relations (in the database).
>
> philip

[Quoted] I don't think I have much argument with most people here about relational operators as far as how they can manipulate relational representations of useful facts/assertions or make inferences from minimalized/normalized relations are concerned.

However, I think many people are making correct arguments which are not apt because they are not necessary.

Perhaps my attitude can be summarized by saying that I see no need to preserve any interpretation of a relation's extension that involves compound propositions (I don't mean by this that a view expression can't be preserved in the form of a mechanical constraint). I think arguments against this would be put best if they showed what problems result from such an interpretation.

For want of a better name, I think of these as 'regular' relations, maybe because at one time I preached 'regular' sentences to people who were designing tables.

(A few asides: I don't want to quibble with some of the lingo because I think it's somewhat beside my point, eg., I'm not making any comment at all about the myriad interpretations of truth that abound here and I don't object to alternative algebras on principle, eg., relational lattice, assuming they have practical advantages, I just happen to find the D&D definitions concise and tidy. I also lean to the view that procedural/imperative languages create big problems for most people when it comes to understanding RT.) Received on Sun Nov 01 2009 - 02:30:11 CET

Original text of this message