TOP
>
システム開発
> インピーダンスミスマッチとは?
徹底比較!! O/Rマッピングツール
第1回:O/Rマッピングとは?
著者:
ビーブレイクシステムズ 山之内 弘行
2006/6/28
前のページ
1
2
3
次のページ
インピーダンスミスマッチとは?
Javaのようなオブジェクト指向の言語でリレーショナルデータベースを扱う際に、もっとも面倒な作業はオブジェクトとリレーショナルデータベースのマッピング作業です。これは両者の設計思想の違いから生じており、この問題を「インピーダンスミスマッチ」といいます。
図1:インピーダンスミスマッチ
Javaにおけるオブジェクト指向は、プログラムをオブジェクトとして設計し、現実世界のモデルに即したものとしてデータモデルを定義します。一方のデータベースでは、正規化という方法を用いて、データの検索/登録/更新処理に最適なモデルを定義します。データベース設計では、現実世界のモデルがどうなっているかは関係なく、あくまでも正規化といった、数学的世界の事情に基づいてモデルが考えられています。
なお、Javaとデータベースの設計思想の違いは、それぞれの役割を果たすために最適な構造であり、どちらの構造が優れているということはありません。
インピーダンスミスマッチを解決するために、表形式のデータをオブジェクト形式のデータに対応付けるマッピングコードを作成する必要があります。この作業はデータ構造が複雑になると大変煩雑な作業になってしまう上、単調な繰り返しである場合が多く、バグを埋め込んでしまう危険性が高くなります。
O/Rマッピングの基本的な流れ
O/Rマッピングは、「オブジェクト」と「リレーショナルデータベースの情報」を対応付けするための技術であり、データベースを利用するためのオブジェクトとデータベースとの間の橋渡しをしてくれます。
O/Rマッピングの機能は個々のソフトウェアによってかなり異なりますが、基本的には以下のような機能を提供してくれます。
コネクション管理機能
データベースとの接続やコネクションプーリングが管理できるようになる。
自動マッピング機能
XMLファイルなどの外部ファイルにオブジェクトの属性名とテーブルの列名に関するマッピング定義を設定することによって自動的にマッピング処理を行ってくれます。
マッピングファイル、DTO、DAOの自動生成機能
O/Rマッピングツールの提供する自動生成ツールによってマッピングファイル、DTO、DAOといったファイルを自動で作成してくれます。
接続情報の管理機能
JDBCドライバやデータベースの接続情報を、O/Rマッピングツール側で管理してくれます。
キャッシュ機能
一度取得した検索結果をメモリ上に保持しておいて、同じ検索処理が行われた場合は、メモリ上にある検索結果を返します。これによって、データベースへのアクセスを減らし、パフォーマンスがあがります。
表2:O/Rマッピングの機能
また、一般的な「O/Rマッピング」は以下のような流れで処理を行います。
データベースの接続情報をXMLファイルに定義(データベース設定ファイル)
クラスのフィールドとテーブルカラムの対応付けをXMLファイルに定義(マッピング・ファイル)
O/Rマッピングツールがデータベース設定ファイルとマッピングファイルを読み込んで自動的にマッピング処理を行う
アプリケーションからO/RマッピングツールのAPIを介してデータベースへアクセスする
表3:O/Rマッピングの流れ
つまりO/Rマッピングを使いこなすためには、「設定ファイル(接続情報やマッピング定義)の書き方」と「APIの使い方」を理解する必要があります。
図2:O/Rマッピングの流れ
前のページ
1
2
3
次のページ
著者プロフィール
株式会社ビーブレイクシステムズ 山之内 弘行
Javaスペシャリスト
前職ではJavaを用いたシステム開発をメインに作業を行う。更なるキャリアアップを目指し、実力次第で上流工程に携われるビーブレイクシステムズに転職。現在はJavaアーキテクトとして活躍中。
INDEX
第1回:O/Rマッピングとは?
はじめに
インピーダンスミスマッチとは?
O/Rマッピングのメリット