Re: Do Data Models Need to built on a Mathematical Concept?

From: Paul Vernon <paul.vernon_at_ukk.ibmm.comm>
Date: Sat, 26 Apr 2003 18:33:52 +0100
Message-ID: <b8eg1v$1pbo$1_at_gazette.almaden.ibm.com>


"Costin Cozianu" <c_cozianu_at_hotmail.com> wrote in message news:b8bk2f$8cccm$1_at_ID-152540.news.dfncis.de...
> Ian wrote:
> > Do Data Models Need to built on a Mathematical Concept?
> >
> > Example, The relational model has set theory.
>
> Jayadev Misra once said: (
> http://www.cs.utexas.edu/users/misra/Speeches.dir/Schlumberger.Jan02.pdf
> ) :
>
> "...And, I contend that lack of useful theorems about a typical C++
> program is what makes it so difficult to make claims about it: its
> intent, whether a particular change will have a disastrous effect on its
> execution and whether it can be integrated with other programs. In other
> words, we typically build mathematical systems whose properties we
> cannot discern."
[snip]

Top post Costin, top post.

That lecture is very interesting indeed. Here we have Jayadev Misra, the inheretor of one of Dijkstra's chairs saying:

    "... let me suggest a problem worthy of your attention. The fundamental structuring principle for systems is hierarchical organization. It permeates the world around us; social and political systems are hierarchical. We have found from experience that tree-structured file systems, hierarchical organization of large domains such as the internet, and system designs in which each component itself is regarded as a system, is convenient. Even within object-oriented programming, the notions of components and encapsulation impose hierarchical structures."

but wait, he then says next

    "Is it time to consider a more democratic structuring principle, similar to what they have in relational databases?"

Unbeliveable! Why have computer scientists taken 30 years to to consider this? Where have they been? His next words just confim this.

    "I am driven to these considerations by the need to view a system from different angles. I can look at this building floor by floor, or by its electrical, plumbing and computational infrastructures, or by the people who work here by their professions. I would like to slice the same system in a variety of ways depending on which aspect of it I want to study. I would like to see my file system not only as being hierarchical but also providing groupings according to other criteria: all files that constitute the chapters of a book ought to be arranged in a sequence so that I can read from Chapter 3 to 7, say. I would like to see the list of all printers in the campus, even when the campus network is organized by departments. How do we support multiple views of a system while retaining the advantages of hierarchical structuring? How do we exploit multiple views during program design and evolution?"

This was one of the fundamental incites of the relational model. It was highlighted when Codd created formal network and hierarchal data models with the purpose of comparing them to the relational model and in the process showing the superiority of the relational model. That superiority being exactly as characterised by Jayadev; the RM is democratic - all data is treated equally - and therein lies it's advantage.

To me, this lecture shows that the wider academic community never really *got* the Relational Model. They got the relational algebra/calculus (albeit mostly restricting themselves to binary relations), they could see the benefit of data independence, but they missed the equally important *application independence* that relationally defined data can provide.

Note how Jayadev said "...similar to what *they* have in relational databases". Why did he not say "what *we* have"? Why does he not consder relational databases as part of his heratige? Maybe the fact he said 'relational databases' and not in 'the relational data model' is also telling.

His question "How do we exploit multiple views during program design and evolution?" is one that us relational people have always been able to answer (at least since views have been considered updatable).

His other question "How do we support multiple views of a system while retaining the advantages of hierarchical structuring?", is, if you will allow, being partially answer by the more sensible efforts to integrate XML with SQL databases. Specifically I'm thinking of XQuery and XTables, that look much more respectable than you might think would come out of such an effort. (See

To conclude, I think there is still a big gap in understanding between the 'programming community' - the academic side typified by Jayadev - and the 'database community' - the academic side being represented in it's seeming absence in the universities by outsiders such as Chirs Date.

To bridge this gap, I am thinking that there needs to be bridging of functional programming with relational programming. Such a bridging is not just a matter of a relational interface to FPs that allows persistent data storage, no, it is the full integration of the two worlds.The Relational model needs improving with the type theory and program/theory proving of FPs and FPs need to have relations and the relational algebra as first class primitives, and they need to accept the principle that all permantly stored, generally accessible data needs to be represented as relations.

Reflecting Jayadev's closing remarks, we need the relational model and relational programming to become part of the mainstream of computer science. I don't believe we are there yet.

Thanks. Online & off-line discussions encouraged.

Paul Vernon
Business Intelligence, IBM Global Services Received on Sat Apr 26 2003 - 19:33:52 CEST

Original text of this message