Re: Object-relational impedence

From: S Perryman <q_at_q.com>
Date: Mon, 03 Mar 2008 17:58:47 +0000
Message-ID: <fqhe8p$6pe$1_at_aioe.org>


JOG wrote:

> On Mar 3, 2:07 pm, Thomas Gagne <tga..._at_wide-open-west.com> wrote:

>>All attempts by applications to access a DB's tables and columns
>>directly violates design principles that guard against close-coupling.
>>This is a basic design tenet for OO.  Violating it when jumping from OO
>>to RDB is, I think, the source of problem that are collectively and
>>popularly referred to as the object-relational impedance mismatch.

> I wondered if we might be able to come up with some agreement on what
> object-relational impedence mismatch actually means.I always thought
> the mismatch was centred on the issue that a single object != single
> tuple, but it appears there may be more to it than that.

Apart from issues such as "joins" etc, there actually isn't a mismatch between OO and Relational at the fundamental level IMHO.

> I was hoping perhaps people might be able to offer perspectives on the
> issues that they have encountered.

Given some entity E = (p1,p2, ... pn) , where p1 etc are the properties of E, OO allows the following :

  1. the properties of E could be realised as data values or a computational process
  2. in any system, there may be multiple existing implementations for E (each instance of E created using any one of those implementations)

An RDB that requires all properties are data values will not satisfy 1. An RDB that allows 1, but forces one universal implementation for E will not satisfy 2.

For OO, the big problem is the prog langs themselves. Syntax, semantics, implementation.

Assuming there is an RDB that can do 1 and 2 above, how can a specific OO prog lang 'align' its representation of objects to the 'tuple' form that will allow an underlying Relational engine to work its wonders (execution, optimisation etc) ??

Regards,
Steven Perryman Received on Mon Mar 03 2008 - 18:58:47 CET

Original text of this message