Webシステムが主流となり、データベース・アプリケーションはJavaやC#といったオブジェクト指向言語で開発することが多くなった。しかし、データベース設計はオブジェクト指向モデルとうまくかみ合わず、データモデル設計に苦労するエンジニアは少なくない。本連載は、オブジェクト指向モデルとデータベースモデルのインピーダンスミスマッチに対応するテクニックを紹介する。(編集局)
永続化処理分析・設計を行う場合、OOA(オブジェクト指向分析)とDOA(データ中心アプローチ)の2つの設計アプローチを併用するケースが多く見受けられます。実際、本連載のタイトル「JavaのDBアクセスを極める」にあるJava言語はご存じのように「オブジェクト指向言語」ですが、Java言語を使用してシステムを開発する場合でも、データベース関連の部分はDOAで設計することはよくあることです。
しかし、OOAとDOAといった異なる開発手法を組み合わせる場合には、さまざまな問題が発生します。これらの問題の多くは第1回「JavaとDBのデータモデルはナゼすれ違う?」で解説した「インピーダンスミスマッチ」と呼ばれるデータモデルのギャップに起因して発生します。
そこで、今回はインピーダンスミスマッチが発生する中で、OOAとDOAといった異なるアプローチを持つ設計手法を併用する最適な方法に関して解説します。設計規約などを作成する際の参考情報となれば幸いです。
初めに、なぜアプローチが異なるOOAとDOAを併用するのでしょうか? これについて、少し整理してみましょう。下の表1をご覧ください。
観点 | OOAを利用する理由 | DOAを利用する理由 |
---|---|---|
アプローチとしての特徴 | ・ポリモーフィズム、カプセル化、継承といったオブジェクト指向の考え方により、拡張性の容易さや保守性の向上および再利用が見込まれる ・UMLといったデータモデルをビジュアル化できる表記法が存在する。また、UMLで設計したデータモデルからアプリケーションのクラス設計(実際の処理設計)へ移行が容易である |
・ERDといった、リレーショナル・データベースの設計を行ううえで効果的な設計手法が存在する ・データを中心としたアプローチでの設計における強力な方法論が確立している |
実装技術との親和性 | ・アプリケーション開発にJavaなどのオブジェクト指向言語を利用する | ・Oracleなどのリレーショナル・データベースを利用する(DOAはリレーショナルデータベースと親和性が高い) |
現在の技術動向や既存システムの状況 | ・アプリケーションを開発する際、現在最新であるオブジェクト指向(言語)を利用したい | ・現在、データベース技術としてはリレーショナル・データベースが主流である。導入実績による信頼性があり、DOAを用いて設計できる技術者も多い ・既存システムがDOAにより設計されたデータベースをすでに持っており、これを再利用したい |
表1 OOA、DOAを利用する理由 |
表1に示したように、OOAとDOAを併用する理由は「それぞれの特徴をうまく生かしたい」といった積極的なものばかりでなく、実装技術との親和性や、現在の技術動向や既存システムの状況といった消極的なものもあります。
ただし、どのような理由から併用する場合でも、やはり「インピーダンスミスマッチ」と呼ばれるデータモデルのギャップに起因して問題が発生します。このことから目をそむけるわけにはいきません。以降では、この問題について掘り下げ、その影響を小さくするためのポイントを紹介します。
(次ページへ続く)
Copyright © ITmedia, Inc. All Rights Reserved.