# Re: Codd's Information Principle

From: paul c <toledobythesea_at_oohay.ac>
Date: Fri, 30 Oct 2009 17:33:14 GMT
Message-ID: <urFGm.49866\$Db2.28279_at_edtnps83>

paul c wrote:

```> Mr. Scott wrote:
> ...
```

>> Let's explore a simple example. Suppose that a database embodies the
>> following sentence,
>>
>> forall x forall y forall z Pxy \/ Qxz
>>
>> The database has two tables, let's call them P and Q, with predicates
>> Pxy and Qxz respectively.
>>
>> Now suppose that at a given moment,
>>
>> P has rows {{x:a,y:b},{x:a,y:c},{x:b,y:c}}
>> Q has rows {{x:a,z:d},{x:c,z:d}}
>>
>> then P JOIN Q would have rows {{x:a,y:b,z:d},{x:a,y:c,z:d}}
>>
>> Now let's apply logic.
>>
>> The ground formulas represented in P are Pab, Pac, Pbc.
>> The ground formulas represented in Q are Qad, Qcd.
>>
>> What is represented in P JOIN Q? Pab /\ Qad, Pac /\ Qad.
>> That's because P JOIN Q has the complex predicate Pxy /\ Qxz..
>> x being free in both P and Q is important because only those ground
>> formulas in P and Q that have a common x value satisfy the predicate
>> of P JOIN Q.
>>
>> It should be clear now that it is the nature of join that dictates
>> that certain rows represent compound propositions, but there is more.
>> The dependencies defined on the database also have an impact. There
>> really isn't space here to go into detail, but suppose that the
>> database embodies the sentence,
>>
>> forall x forall y forall z Pxy -> Qxz
>>
>> Now the database still consists not only of the same two tables, but
>> also an inclusion dependency from P[x] to Q[x].
>>
>> forall x forall y forall z Pxy iff Qxz
>>
>> Here the database would consist of just one table but each row would
>> represent a biconditional.
>>
>>
```>
> I have no argument about the application of logic.  Perhaps my point has
> more to do with the language devices, such as 'insert', that are
> essentially an assignment.  While they are defined in logical terms they
> are outside logic in the sense that when they are applied, something
> special happens, a 'die is cast', as it were.
>
> (Once we enter the realm of assignment, talk of possible base and view
> differences is inevitable.  I don't think it's inapt to say that
> treating views differently from base values amounts to saying that
> assignment is polymorphic, ie., behaves differently depending.  I don't
> see a necessary reason for that.  But when dealing with a value that is
> the result of assignment, I think it remains clear that the view
> definition is effectively no more than a constraint on the view's value,
> and not a constrain on the base values in the expression of the view's
> definition.  This may seem fuzzy and mystical perhaps due to my language
> not being really up to the task but if that can be forgiven, I would say
> that it is better to subtract notions than add them, ie., better to not
> introduce a difference.)

```

Original text of this message