Re: The wisdom of the object mentors (Was: Searching OO Associations with RDBMS Persistence Models)

From: Marshall <>
Date: 2 Jun 2006 00:48:12 -0700
Message-ID: <>

Robert Martin wrote:
> On 2006-05-31 12:26:23 -0500, "Marshall" <> said:
> >> [...]
> >> Are you saying that it is "pure unadulterated garbage" that application
> >> developers should isolate their application code from the the whims of
> >> the API designers at Oracle? Should those application designers use
> >> every little cute ORACLE trick and call? Or shoudl they stick to
> >> standard SQL as proferred by ODBMS or JDBMS, etc. Should those
> >> application developers scatter embedded SQL all through their
> >> application code? Or should they partition that application code into
> >> areas that know about the DB and areas that don't? Should they strive
> >> to make it possible to swap Oracle for MySql or not? Should they
> >> strive even to eliminate the relational flavor of the data from the
> >> guts of their algorithms, or not.
> >
> > Seven consecutive leading questions and my parser runs out
> > of memory. Uh, let's see: yes, as appropriate, ideally (assuming
> > you mean JDBC; I don't know what JDBMS is), no-of-course-
> > not-I-never-suggested-otherwise, yes, no, probably not.
> >
> > (Perhaps we could come up with a better format for dialog.)
> Heck no, that was fun!

I can vaguely see how it would be, but it tends to obscure the communication, which runs counter to my goals.

> But I find your answers to be contradictory.
> You say that application developers should not isolate their code from
> the DBMS API, and yet you also say that they should not spread SQL
> throughout their code. To me those two things are synonyms.

It is the difference between everywhere and somewhere.

We are both discussing layered architectures, and we both posit a layer "closest" to the database. (We usually call this a "lower" layer, with the metaphor being that the dbms is at the bottom, even though an rdbms is using a higher level of abstraction.)

This layer is part of the application. It is an important part; perhaps the most important part. It should not, indeed cannot, be isolated from SQL. This does not imply that SQL will be present at *every* layer of the code. If you find you are generating HTML and invoking JDBC in the same class, you might have a problem with the modularization of your code, ha ha.

> To me, and application should be layered such that the lowest layers
> know about the data management scheme. If that scheme is relational,
> then that layer knows about SQL, and is the only layer that knows about
> SQL. Higher layers make use of the abstract services of the lower
> layers.

Very reasonable, provided the dbms access layers is written to expose a high-level, high-abstraction interface. If the interface to that layer is merely getCustomerRecord(), putCustomerRecord(), etc. then this approach blows chunks. (And unless you do restrict this layer to that kind of functionality, you won't be able to swap in a flat file as the data "management" part, without implementing an entire dbms in the flat-file version of that layer.)

> If you look back through my posts you will find that I never challenged
> the reputation, intelligence, honesty, or authority of any of the
> posters here. At most I rendered snide responses to ad-hominem attacks
> against my reputation, intelligence, honesty, and authority.

Meh. Early on you called a number of people cowards repeatedly, and you said their posts were written without their brains. That qualifies as challenging the intelligence of posters. Also you've repeatedly labelled as ad-hominem (hence implicitly dismissing the argument without addressing it) a number of posts which were not ad-hominem, but merely insulting in tone. So no, I do not agree with the above, nor with any attempt to claim high ground. In fact, you lose a point for having complained about name-calling while calling names.

> I don't know much about that. If I look at this thread what I see is
> several people flinging insults and derision instead of arguments.

You are mistaken. The thread has contained quite a number of substantive arguments, some of which were accompanied with insults and derision. (I do not claim this is ideal.)

> For what it's worth I don't think either side has better manners
> than the other.

Alas, I will have to disagree with you there. My experience is that the dbms propopents have the noticably worse manners. Speaking very generally, of course. However I also observe that they are quite good with logic. I do not claim any causal relationship between the two observations.

Marshall Received on Fri Jun 02 2006 - 09:48:12 CEST

Original text of this message