# Re: Codd's Information Principle

From: vldm10 <vldm10_at_yahoo.com>
Date: Sat, 31 Oct 2009 15:16:20 -0700 (PDT)

On Oct 31, 6:00 am, "Mr. Scott" <do_not_re..._at_noone.com> wrote:
> "paul c" <toledobythe..._at_oohay.ac> wrote in message
>
> news: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.)
>
> > Maybe it's useful to ask this:  Was Codd trying to introduce assignment to
> > logic, (eg. was he trying to augment predicate calculus) or was he trying
> > to apply logic to the assignment of recorded values?
>
> Neither.  Codd wasn't trying to introduce assignment to logic because
> assignment is an integral aspect of logic.  Under an interpretation, meaning
> is assigned to the terms of the first-order language and truth values are
> assigned to the formulas.  The terms of the language include variables and
> function applications.  Elements of the domain are assigned to variables,
> and function applications evaluate to elements of the domain (constant
> symbols being nothing more than 0-ary functions).  Formulas are then
> assigned truth values in the following way: once each term has been mapped
> to an element of the domain, each ground atom is analyzed to judge whether
> or not it is true.  For example,  if c evaluates to a particular car and Px
> is the predicate "<x> is red," then the ground atom Pc is assigned a
> positive truth value if and only if the car that c evaluates to is in fact
> red at the time of interpretation.  The relational model provides a
> framework for recording those judgements so that they can be used to answer
> queries.  Codd wasn't trying to apply logic to the assignment of recorded
> values; instead, he provided a framework whereby conclusions can be drawn
> from recorded judgements by applying logic.  More importantly, since only
> what has been judged to be true can appear in a database, conclusions can be
> drawn from what is in the database independent of what the symbols recorded
> actually mean.  What you refer to as assignments, inserts, updates and
> deletes, merely correct what is recorded to reflect the current
> interpretation.  The database before an update reflects a different
> interpretation than the database afterward.  For example, if the car
> referenced in the ground atom Pc has been painted blue, then Pc should be
> judged to be false, since that particular car is no longer red at the time
> of interpretation; consequently, the row in the database that represents Pc
> should be removed since only what is judged to be true should be represented
> in the database.- Hide quoted text -
>
> - Show quoted text -

I appreciate this text.
However I would like to add some thoughts. Loosely speaking a database is a model for a schema. Not necessary a relational schema. Sometimes we also need all databases which were a model for the schema. Sometimes we must keep wrong (false) data in our database because there are procedures based on these false data (for example a procedure at a court). More important, there are big DB fields of general character where we maintain all data - good, wrong and false.