Re: Codd's Information Principle
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