Javaのようなオブジェクト指向の言語でリレーショナルデータベースを扱う際に、もっとも面倒な作業はオブジェクトとリレーショナルデータベースのマッピング作業です。これは両者の設計思想の違いから生じており、この問題を「インピーダンスミスマッチ」といいます。 Javaにおけるオブジェクト指向は、プログラムをオブジェクトとして設計し、現実世界のモデルに即したものとしてデータモデルを定義します。一方のデータベースでは、正規化という方法を用いて、データの検索/登録/更新処理に最適なモデルを定義します。データベース設計では、現実世界のモデルがどうなっているかは関係なく、あくまでも正規化といった、数学的世界の事情に基づいてモデルが考えられています。 なお、Javaとデータベースの設計思想の違いは、それぞれの役割を果たすために最適な構造であり、どちらの構造が優れているということはありません。 インピーダンス