Re: Codd's Information Principle

From: Bob Badour <bbadour_at_pei.sympatico.ca>
Date: Tue, 03 Nov 2009 22:41:33 -0400
Message-ID: <4af0e9df$0$5331$9a566e8b_at_news.aliant.net>


paul c wrote:
> Bob Badour wrote:
> ...
>

>> In logic, a relation is the extension of a predicate, and a predicate 
>> is the characteristic function of a relation. When talking about 
>> relational databases, sometimes one has to be clear about the internal 
>> predicate and the external predicate. At any given time, one will 
>> generally find fewer tuples in any relation variable than the internal 
>> predicate would allow because some parts of the predicate are not 
>> amenable to calculating or to expressing algebraically.
>> ...

>
> Do you mean certain negations and disjunctions aren't amenable, such as
> the predicate "it is not the case that the temperature T in city C is T
> degrees"?
>
> (Thanks for the precision, still pondering the rest.)

No. First, you have T representing 2 different measures so I cannot understand your example.

I mean the predicate for "Employee, EmpID, manages department, DeptNo" is too complex to calculate or to represent algebraically. It has all sorts of complex factors that generally never get recorded anywhere such as someone had to apply for a job with the company and that person had to perform well enough to get promoted to management (not necessarily at this company) etc.

What one can calculate or represent algebraically is much simpler: DeptNo refers to some Department in the database. EmpID refers to some Employee in the database. The referenced Employee--as described in the database--has to meet certain criteria like having a base salary and exempt status. If the data does not meet those criteria, the dbms will reject it.

In general, the database describes part of the predicate, called the internal predicate. The actual predicate (external predicate) has additional factors not described in the database except for the extension of the predicate itself: the relation.

In other words, the database does not describe the full predicate from which one could calculate a relation. How one goes from predicate to extension is not fully recorded. What is recorded is the extension of the predicate, as far as the dbms is concerned, and those parts of the predicate amenable to calculation or to algebraic representation.

The extension is a relation. The internal predicate is the set of constraints including data types, names, candidate keys, foreign keys etc. The full predicate is the conjunction of the internal predicate and some unknown or unrepresented factors.

When you derive a relation via some relational expression, the derived relation is the extension of some predicate. If the dbms represented entire predicates, it could calculate that predicate, but the dbms does not represent entire predicates. The dbms represents internal predicates, and it can derive an internal predicate for the expression.

The expression is an expression. The calculated value of the expression is an extension of some predicate. The predicate or characteristic function of that extension is partially unknown. Received on Wed Nov 04 2009 - 03:41:33 CET

Original text of this message