BYTE.com > Features > 2004
Oscillating Between Objects and Relational: The Impedance Mismatch
By Dan Shusman
February 15, 2004
(Oscillating Between Objects and Relational: The Impedance Mismatch
: Page 1 of 1 )
Impedance mismatch is a term commonly used to describe the problem of an object-oriented (OO) application housing its data in legacy relational databases (RDBMS). C++ programmers have dealt with it for years; it is now a familiar problem to Java and other OO programmers.
The mismatch arises from the inherent lack of affinity between the object and relational models. Problems associated with the impedance mismatch include class hierarchies binding to relational schemas (mapping object classes to relational tables), id generation; concurrency; and others described below.
Obviously, the impact of these issues is tied very specifically to the OO application and relational schema being blended. But the ramifications are clear in terms of time-to-market; costs of design, development and quality assurance; compromised code maintainability and extensibility; and the sizing and topology of the hardware required to ensure expected response and throughput times.
Given the increasing prevalence of the OO RDBMS impedance mismatch, and its corollary—the mismatch between SQL-based applications and object databases (OODBMS)—it's time to look at ways to resolve the problem.
Object Development Languages
Many long-popular technologies—C++, Microsoft's Visual Basic, Borland's Delphi, Java, and a host of open-source languages—provide an object environment in which to implement business logic and user interfaces. To greater or lesser degrees these OO environments implement encapsulation, polymorphism, and inheritance. The benefits of their proper use in application development and evolution are well known.
Object languages (like all programming languages) need to bind to a data store if persistence is required, and that store is often a database. The three most common technologies for databases are relational, object and post-relational (a.k.a. "transactional multidimensional").
Relational Versus Object Database Models
It's useful to contrast the basic differences of the RDBMS and OODBMS models and the approaches to programming in each.
Page 1 of 1
BYTE.com > Features > 2004
|