Oscillating Between Objects and Relational:The Impedance Mismatch
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, and it is now a familiar problem to Java and other OO programmers.
Impedance 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, as well as other problems described below.
The impact of these issues is tied specifically to the blending of OO application and relational schema. 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)-an examination of approaches to resolving the resulting problems is both timely and worthwhile.