Re: Object-relational impedence

From: Dmitry A. Kazakov <>
Date: Fri, 14 Mar 2008 10:43:11 +0100
Message-ID: <1r0rezkd814tn$.g42fitfl7v6z$>

On Thu, 13 Mar 2008 22:17:40 -0700 (PDT), frebe wrote:

> On 13 Mar, 18:40, Robert Martin <> wrote:

>> The real point of that remark was that the user of a tool is at a
>> higher level of abstraction than the tool itself.  SQL is a tool.  ORMs
>> are tools that use SQL to get their job done, just like compilers use
>> assembly to get their job done.  In that sense ORMs live at a higher
>> level of abstraction than SQL.

> Lets have an example: There are many "compiler" products translating
> from a high-level language like ADA to a low-level language like C,
> instead of translating to machine code directly. What if someone wrote
> a "compiler" translating C source code to ADA source code, would that
> make C more high level than ADA? Hardly? The existance of a product
> translating from language A to language B doesn't say anything about
> the levels of A and B.

Right. What does it, is the difficulty of designing such a compiler. Clearly within the set of Turing-complete languages you could translate from whatever language to any other. But, while translation from Ada to C is considerably difficult (mainly because C is ill-defined), a good translation from C to Ada is almost impossible. "Good" means deducing higher-level constructs from the code. It is much like literary translation, and requires general intelligence.

Ah, ADA = The Americans with Disabilities Act of 1990, the programming language is called "Ada", named after Augusta Ada King, Countess of Lovelace

>> The members of c.d.t. might respond negatively to that idea because
>> they see SQL as a better vehicle to do the job that the ORM is trying
>> to do. That's fine, but does not change the fact that the ORM is using
>> SQL as an implementation language.

> If a RDBMS product is implemented using an OOPL, does that make
> relational algebra more high level than OO?

That depends on the application domain, the comparison is conditional to that. Further, some things might be incomparable.

I agree that the fact of use alone does not imply the outcome of a comparison. There are all sorts of use, some are quite meaningless. I remember in student times, we implemented gotos (which were prohibited) using structural constructs, just to protest and to have fun. Abstraction inversion is a quite common thing.

Dmitry A. Kazakov
Received on Fri Mar 14 2008 - 10:43:11 CET

Original text of this message