Re: Codd's Information Principle

From: Mr. Scott <do_not_reply_at_noone.com>
Date: Sat, 31 Oct 2009 01:00:53 -0400
Message-ID: <y6-dnc0hu8UaWXbXnZ2dnUVZ_h2dnZ2d_at_giganews.com>


"paul c" <toledobythesea_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. Received on Sat Oct 31 2009 - 06:00:53 CET

Original text of this message