JavaとDBのデータモデルはナゼすれ違う?JavaのDBアクセスを極める(1)(1/2 ページ)

Webシステムが主流となり、データベース・アプリケーションはJavaやC#といったオブジェクト指向言語で開発することが多くなった。しかし、データベース設計はオブジェクト指向モデルとうまくかみ合わず、データモデル設計に苦労するエンジニアは少なくない。本連載は、オブジェクト指向モデルとデータベースモデルのインピーダンスミスマッチに対応するテクニックを紹介する。(編集局)

» 2005年02月10日 00時00分 公開
[諏訪勇紀 著, 安間裕 監修アクセンチュア・テクノロジー・ソリューションズ]

はじめに

 本連載は、Javaでの開発経験がありデータベース・アクセスに関するある程度の知識を持つ読者を対象に、Java開発におけるデータベース・アクセスに関する代表的な問題や疑問について、開発現場で即実践できる有用な内容を解説していきます。また、「これからJavaで開発を行っていく予定がある方」や「すでに開発中でデータベース・アクセスに関する問題や疑問を抱えている方」に、分析/設計/実装をするうえで参考にしてもらい、問題や疑問にぶつかった際に「解決への道標」となる有用な情報提供を目的としています。

データベース・アクセス処理における問題や疑問

 J2EEでの開発やJavaでのスクラッチ開発において、データベース・アクセス処理関連のさまざまな問題や疑問が生じることは、実際に現場で開発されている読者の方々もよくご存じでしょう。よく耳にしたり、実際に直面する代表的な問題や疑問には、以下のようなものが挙げられるでしょう。

  • ビジネス・アプリケーションの世界としてのデータモデルとデータベースの世界としてのデータモデルをどうやってうまくマッピングさせればよいのだろうか。
  • データベースのテーブル構成を変更したらSQL文を広範囲にわたって修正するだけでなく、ビジネスロジック側も広範囲に修正する必要が生じてしまった。このようなことが起きないようにするには、どうしたらよいのだろうか。
  • 業務ロジック部分についてはOOA注1 で設計/実装したいが、データベース関連の部分についてはDOA注2 を用いて設計したい。しかし、具体的にOOAとDOAをどう使い分けたら最適なのだろうか。
  • ビジネスロジック・レイヤとデータベース・レイヤとに分割したが、どうすればレイヤ間に依存しないインターフェイスを実装できるのだろうか。また、データベース・アクセス処理における実装パターンとして要件に合った最適なパターンがありそうだが、ポイントは何だろうか。
  • データベース側のチューニングだけでなく、Java実装としてのデータベース・アクセス部分のチューニングを行う必要が生じた。具体的なチューニングのポイントとしては、どんなことがあるのだろうか。
  • リレーショナルデータベース以外のデータベースがいくつかあるが、選定するポイントは何だろうか。また、実際に使えるのだろうか。
注1 OOA(Object Oriented Analysis:オブジェクト指向分析)
オブジェクト指向によるシステム開発の上流工程での分析手法。「何をオブジェクトにするか」「オブジェクト同士をどう関連付けるか」などを分析する。クラス図を使用した業務分析を行う概念モデルもこれに当たり、システム分析を行っていく過程で業務データモデルが確定される。

注2 DOA(Data Oriented Approach:データ中心アプローチ)
データモデル中心の開発手法(方法論)。一般によく使われるERD(エンティティ関係図)やDFD(データフロー図)といったダイアグラムもこの開発手法に基づいたものである。

 本連載では、このような開発の現場で頻繁に発生する「Java開発におけるデータベースに関連した代表的な問題や疑問」に焦点を当て、各回のテーマの中で解説していきます。なお、本連載は、以下のような構成となります。

テーマ 概説
第1回 本連載の概要およびデータモデル分析/設計におけるギャップ発生の背景(今回) 本連載で解説していく内容の説明およびデータモデル分析・設計におけるギャップ発生の背景に関して解説する
第2回 O/Rマッピングにおける分析・設計の要所
(ビジネスロジック・レイヤとデータベース・レイヤ間のインターフェイス設計パターン)
O/Rマッピングの概説およびO/Rマッピングに関するビジネスロジック・レイヤとデータベース・レイヤ間のインターフェイス設計に焦点を当て、その問題に対する解決方法および意識すべきポイントを具体的な例を交えて解説する
第3回 永続化処理分析・設計におけるOOA/DOAを使用した最適な分析/設計パターン 永続化処理分析・設計におけるOOAとDOAを最適に融合させていく方法に関して、設計時に起こるパラダイムの違いに伴うインピーダンスミスマッチに焦点を当て、現実的な落とし所を検証・解説する
第4回 RDB/OODB/XMLDBで比較する永続化設計 永続化の手段はRDBだけではない。OODB、XMLDBも視野に入れ、RDB/OODB/XMLDBそれぞれのデータベースを使ったシステムの設計、実装時の留意点、優位性に関して実装例を通して比較・解説する
第5回 効率的な永続化実装パターン 永続化処理の実装時に発生する代表的な問題を具体的に挙げ、その問題に対して永続化をどのように適用し解決していくかを具体的な実装例を基に検証・解説を行う
第6回 永続化におけるパフォーマンスを意識した実装の要所および連載全体のまとめ 永続化処理におけるパフォーマンスを考慮した実装とはどういったものなのかを具体例を挙げながら解説する。また、本連載におけるまとめに関しても記載する
表1 本連載の各回テーマ構成

 さて、今回は第2回以降で解説するテーマの手始めとして、「データモデル分析/設計におけるギャップ発生の背景」に関して、筆者の体験談も交えて説明していきます。(次ページへ続く)

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。