Re: A good book

From: J M Davitt <jdavitt_at_aeneas.net>
Date: Sat, 08 Jul 2006 03:46:18 GMT
Message-ID: <eUFrg.20059$u11.18588_at_tornado.ohiordc.rr.com>


Bob Badour wrote:
> Marshall wrote:
>

>> Chris Smith wrote:
>>
>>> Bob Badour <bbadour_at_pei.sympatico.ca> wrote:
>>>
>>>> Chris Smith wrote:
>>>>
>>>>> I'm suggesting that you've yet to establish the connection between:
>>>>>
>>>>> (a) predicate calculus and elegant code
>>>>> (b) databases and predicate calculus
>>>>
>>>>
>>>> Relational calculus = 1st order predicate calculus
>>>>
>>>> Am I missing something?
>>>
>>>
>>> No, you're almost certainly not missing something.  Nevertheless, what
>>> I'm asking for ought to be relatively simple, so I'll try to explain it
>>> another way.
>>>
>>> As is pointed out here several times every five minutes (okay, not that
>>> often...), database design and programming is rather frequently and
>>> unfortnuately performed from very little theoretical basis at all.  At
>>> the same time, it's frequently stated that relational databases operate
>>> on a solid mathematical foundation.  That's a useful statement if and
>>> only if that mathematical foundation provides tools that are useful in
>>> practice for reasoning about behavior, transformations, correctness,
>>> etc. of the code written in relational languages.  If this connection is
>>> not made, then all this talk about predicate calculus is pointless.  I
>>> am looking for the sources that explain how this connection is made.
>>> Are there theorems of relational theory that suggest certain program
>>> transformations, or certain criteria for correctness?
>>
>>
>>
>> Relational theory is mostly about data, at least historically. So
>> I would change your question to being a question about theorems
>> in relational theory about data transformations, rather than
>> program transformations.

>
>
> In fact, one could argue that there is no difference between the two.
> Using the relational calculus or the relational algebra to derive
> equivalent access paths for optimization does both.
>
>
>> The obvious thing to me to mention is the normal forms.
>>
>> The normal forms describe precisely schema in which
>> redundancy is present, and also show what anomalies
>> can occur as a result. They also show how it is possible
>> to perform a lossless decomposition such that some
>> redundancy is removed, eliminating the possibility for
>> the update anomalies associated with that particular
>> normal form.
>>
>> In practice I have found that most of the problems
>> with databases can be traced to failure to adhere to
>> the normal forms.
>>
>> Without the formal foundation, in particular the theoretical
>> understanding of keys, the normal forms would be impossible.
>> (Instead we'd have design patterns. :-)

>
>
> I agree. After Codd's 1970 paper, then comes his paper establishing the
> equivalence between the algebra and the calculus (and thereby the
> equivalence between set algebra and predicate calculus). I forget the
> year of that one. 1971? 1972? It was early 1970's in any case.

"Relational Completeness of Data Base Sublanguages" is the paper; not later than 1972.

Actually, I thought your response - "relational calculus = first order predicate calculus" - would have evoked questions that this paper addresses.

> After that, Ron Fagin's work on normal forms was perhaps the most
> notable application of the theory. He used it to prove that fifth normal
> form was necessary and sufficient to avoid update anomalies using
> decomposition by project/join.
>
>

>>> You made a
>>> comment in another thread that suggested that features added to
>>> relational databases can be traced back to the mathematical model;
>>> where's a source that explains how?
>>
>>
>> In brief:
>>
>> Every relation has an associated predicate.
>> Every element of every table is a proposition.
>> Every relational algebra expression is an expression of
>> logical inference, deriving new propositions from existing
>> ones.

Predicate: good start. "[e]lement of every table:" wrong turn here; tuples, not elements, and relation variables, not tables. And not merely propositions, but *all* those that has been quantified as true. And I think deduction is a better description of relational expressions, isn't it?

(Marshall, was that you? I'm surprised...)

>
>
> If he is looking for a citable reference source, I would suggest the
> 1970 paper.
Received on Sat Jul 08 2006 - 05:46:18 CEST

Original text of this message