MORE ON OBJECT-ORIENTATION
with Fabian Pascal

 

 

 

From: LWR

To: Editor

Date: 09/10/2003

 

I've been thinking about writing this for some time, and the Hard To Turn Tables contribution finally prompted me.

 

Let me start out by saying that I am in full agreement with the views expressed by dbdebunk on the relational model (and often many other things). I also agree with the views expressed about OOP, but I must point out that OOP isn't the same as OO (or OT (object technology)).

 

There is a branch of OO, that entered the world as Shlaer-Mellor and is now called Executable UML, that aligns very nicely with the relational model. In fact, it mentions Chris Date's books in the executable UML books by Mellor and Balcer and Leon Starr that led me to the dbdebunk website and to purchase AN INTRODUCTION TO DATABASE SYSTEMS by Chris Date. I found Date's book easy to follow since the relational concepts were things that I had learned through the study of Executable UML.

 

Sadly most of the OO world doesn't understand the advantages offered by Executable UML (and the relational model), so you get the views that drive such comments as "The problem is that OO is a programming approach" and "OO also brings back pointers and hierarchic navigation". Neither of which is wholly true, but may be true in the context of ODBMS.

 

Hopefully future commentary can be tempered by the view that the world OO (like the world of database systems) contains many viewpoints many of which aren't driven by what is correct.

 

 

From: Fabian Pascal

To: LWR

 

We don't have particular views on OOP. As data specialists, ODBMS is what we focus on.

The object orientation concept does originate in programming, essentially it started as a set of guidelines for "good programming". It had nothing to do with data management, has fuzzy concepts, and has no theoretical foundation.

I am not familiar with it, but I doubt UML is anything to get excited about. See Chris's article on it on the web site.

That is actually not true in the relational world: see Chris's There Is Only One Relational Model. As to OO, no two OO proponents will agree on what the "object model" is; and, in fact, they confuse ‘data model’ with logical models or conceptual models and don’t know the difference (see my forthcoming Paper #4 in the DATABASE FOUNDATIONS series, Unmuddling Modeling: It Depends On What the Meaning of ‘Means’ Means).

 

 

From: LWR

 

Unfortunately, your views on ODBMS seem to be applied to OO in general.

 

This is the crux of my argument. OO modeling can have everything to do with data management and doesn't have to be fuzzy. The qualifiers exist, because many OO proponents choose to model based on OOP guidelines.

 

You say this as if all database systems proponents are in agreement, which would make the existence of the dbdebunk website unnecessary. My statement was meant to be taken as: Just as there is correctness in database systems; there is correctness in OO. As much as the dbdebunk website exists to hopefully enlighten database practitioners, my email was meant to enlighten. The ODBMS proponents in the database world have their counterparts in the OO world. Neither of them are correct in their assertions.

 

I am firmly convinced that the relational model is the foundation of correct programming. As the title of the Nikolas Wirth book says, "Algorithms + Data Structures = Programs", and the "Data Structures" part must meet the relational model for the program to be correct.

 

Executable UML is the closest method I have found to guaranteeing programming correctness, and it is considered an OO method. This is my reason for writing.

 

 

Fabian Pascal Responds: I have no idea on what you base your claim that we apply our arguments to OO in general. When we say anything about OO, it is always in the database context. We do perceive some problems with OO in general, though, even if we don’t focus on them, and fuzziness is only one of those inherent aspects.

 

We must agree to disagree. As Date and Darwen demonstrate in THE THIRD MANIFESTO, there is nothing in object orientation that the relational model does not already do better for data management and about the only aspect of value—type inheritance—is orthogonal to the data model.

 

There is a major difference between the relational and object worlds. The former is nothing but the application of predicate logic and set theory to data management. It is this dual theoretical foundation that guarantees “correctness” (defined as consistency). We are unaware of any equivalent theoretical foundation that guarantees correctness in this sense in the object world, so whatever you mean by correctness, it is something else altogether.

There is no disagreement within the relational camp (and even outside it) about the meaning and definition of the core concepts, like there is within the object camp. To the extent that there is agreement, it’s the fuzziness that makes it possible.

 

We agree that the results of programs must be correct and that this requires correct data structures, but this a separate argument altogether.

 

As to UML, I refer you again to Chris’s two-part article on the subject.

 

 

Posted 11/14/03

 

 

 

[ABOUT] [QUOTES] [LINKS]