# Re: Codd's Information Principle

Date: Fri, 30 Oct 2009 17:18:00 GMT

Message-ID: <cdFGm.49863$Db2.24087_at_edtnps83>

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.) Received on Fri Oct 30 2009 - 18:18:00 CET