Re: Mixing OO and DB

From: Thomas Gagne <tgagne_at_wide-open-west.com>
Date: Mon, 03 Mar 2008 09:07:29 -0500
Message-ID: <pLGdnTuiAYVjmFHanZ2dnUVZ_q2hnZ2d_at_wideopenwest.com>


Marshall wrote:
> <snip>
> I invite anyone who thinks it is possible to decouple application
> code and database schema to show me how to make good
> use of a general ledger/accounts receivable database schema
> in building a content management system.
>

That would be easy. The database's design should be independent from the application programming language. If it's independent then it can support multiple languages and paradigms.

A database's design can and should improve independently from applications. When that isn't the case then improvements to the database must be delayed as changes are coordinated with all dependents. Of course the problem with coordinating with dependents is being able to find all dependents.

The same mechanisms that provide independence between systems and modules, an interface, can be employed between databases and their applications. In fact, considering the costs of coordination an argument could be made that a language-independent interface must exist to avoid delayed and overly-complicated releases.

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.

-- 
Visit <http://blogs.instreamco.com/anything.php> to read 
my rants on technology and the finance industry.  Visit
<http://tggagne.blogspot.com/> for politics, society and culture.
Received on Mon Mar 03 2008 - 15:07:29 CET

Original text of this message