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]