対決! O/Rマッパー vs. オブジェクト指向DB

第1回 Javaのオブジェクト永続化に何を選ぶ?

ネクストデザイン
村山 徹
2005/12/7
オブジェクト指向プログラミングとリレーショナル・データベースの相性の悪さは、アプリケーション開発者の悩みの種だ。これを回避する2つの方法、すなわちO/Rマッピングツールとオブジェクト指向データベースを取り上げ、Javaの永続化方式を比較するのが本連載の狙いである。(編集部)

はじめに

主な内容
--Page 1--
はじめに
本稿のもととなった開発事例について
--Page 2--
永続化問題のキーワード
--Page 3--
永続化をスマートに解決する

 多くのアプリケーション・システムでは、データは半永久的に保存され、いつでも参照できなければなりません。オブジェクト指向システムであれば、オブジェクト(インスタンス)注1の状態や関連を保存し復元すること、つまり、オブジェクトの永続化が必要です。

 Javaを使って、このようなアプリケーションを作成する場合、永続化の方式には、いくつかの選択肢があります。現在、最も多く採用されているのは、リレーショナル・データベースとJDBCを組み合わせた方式でしょう。しかし、この方式では、O/Rマッピング(後述)と呼ばれる仕組みが必要になります。O/Rマッピングは、設計モデルを複雑にし、煩雑なプログラミングを必要とするため、システムの品質や生産性の低下を引き起こす原因となるケースも多々あります。

 本稿では、このO/Rマッピングを解決するためのツールとして注目されているHibernateを使った永続化方式と、もともとO/Rマッピングを必要としないオブジェクト指向データベース注2を使った永続化方式を比較してみます。

注1:本稿では、特に断らない限り「オブジェクト」と「インスタンス」は同義の用語として使用します。

注2:今回使用したCachéは、正確には多次元データベースと呼ばれるインターシステムズ社の製品です。本稿の事例では、Cachéのオブジェクト指向データベースとしての機能だけを利用しています。

本稿のもととなった開発事例について

 2つの永続化方式を比較する前に、本稿を執筆するもとになった筆者の開発事例(アプリケーション・システム)について簡単に紹介します。この事例は「ユースケース記述を作成するためのツール」で、図1のようなインターフェイスを持つデスクトップ・アプリケーションです。ユースケース記述という言葉になじみのない方は、文書作成ツールのようなものと考えて構いません。このツールには、

  • Hibernate版
  • オブジェクト指向データベース(Caché)版

の2タイプがあります。ともに同じユーザー・インターフェイスと機能を持っていますが、永続化方式だけが異なります。本稿では、このアプリケーション・システムを開発した経験を基に、2つの永続化方式の違いや共通点を比較します。

図1 アプリケーションのユーザー操作画面の例

次ページへ続く)

  1/3

 Index
対決! O/Rマッパー vs. オブジェクト指向DB(1)
Javaのオブジェクト永続化に何を選ぶ?
Page 1
・はじめに
・本稿のもととなった開発事例について
  Page 2
・永続化問題のキーワード
  Page 3
・永続化をスマートに解決する


対決! O/Rマッパー vs. オブジェクト指向DB


Database Expert フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Database Expert 記事ランキング

本日月間