オブジェクト指向データベースの復権(後編)

ObjectStoreとCachéでOODBへ踏み出そう Page 1

2004/10/1
山田祥寛

データベースといえばRDBMSという固定観念は、オブジェクト指向開発の普及により、ゆるやかに崩れつつある。本記事では、オブジェクトとして定義された複雑なデータ構造をシームレスに格納できるデータベースとして、オブジェクト指向データベース(OODB:Object Oriented DataBase)の可能性を探ってみる。(編集局)
主な内容
--Page 1--
ObjectStoreのサンプルアプリケーション構築
  ・サンプル動作の前提条件
  ・[1]PSE Proをインストールする
  ・[2]環境変数を設定する
  ・[3]PSE Proに格納するための永続化クラス「Book」を用意する
  ・[4]ポストプロセス処理を行う
--Page 2--
  ・[5]データベースを生成する
  ・[6]データベースからデータを取得する
--Page 3--
Cachéのサンプルアプリケーション構築
  ・サンプル動作の前提条件
  ・[1]Cachéをインストールする
  ・[2]環境変数を設定する
  ・[3]Cachéに格納するための永続化クラス「Book」を用意する
--Page 4--
  ・[4]データベースにオブジェクトを登録する
  ・[5]データベースからデータを取得する
Cachéへのさまざまなアクセス方法

 前編「CachéとObjectStore、脱RDBMSの真価を探る」では、オブジェクト指向データベース(以下、OODB)の概略を紹介するとともに、その代表的な製品であるObjectStoreCachéの概観を見渡してみた。だが、「理屈だけ聞いていても、なかなか具体的なイメージがわかない」という方も少なくないだろう。そこで、後編の今回は、ObjectStore、Cachéを実際にインストールして、簡単なアプリケーションを構築してみる。従来のリレーショナルデータベース(以下、RDB)を利用したアプリケーションと比べ、どのような点が便利になるのかを体感してほしい。

ObjectStoreのサンプルアプリケーション構築

サンプル動作の前提条件

 本稿では、ObjectStore製品のさまざまなラインアップの中でも無償ダウンロードが可能なObjectStore PSE Pro(ObjectStore Personal Storage Edition Pro:以下、PSE Pro)を採用する。PSE Proは、シングルユーザー向け組み込みアプリケーション用に設計された軽量なデータベースエンジンだ。サーバサイドなど複数ユーザーが同時にアクセスする用途には不向きであるものの、取りあえずOODBの雰囲気を味わってみるには最適の製品である。Windows、Linux、Solaris、HP-UXなど主要なOSに対応しているが、本稿ではWindows 2000環境を前提に紹介する。異なるプラットフォームではパスなど細部が異なる可能性もあるので、必要に応じて読み替えてほしい。

 なお、PSE Proが動作するにはJ2SE 1.2が必要となる。執筆時点でのJ2SEの最新バージョンは1.4.2_05であるが、こちらでは正しく動作しないので注意すること。なお、本稿ではJ2SE 1.2.2_017を採用した。あらかじめ自環境にインストールしておいてほしい。J2SEのインストール手順については、筆者運営の「サーバサイド技術の学び舎 - WINGS」より「サーバサイド環境構築設定」などを参考にするとよい。

[1]PSE Proをインストールする

 PSE Proは、以下のサイトからダウンロード可能だ。ダウンロードに先立っては、あらかじめユーザー登録が必要となる。また、試用版は最初の起動から20日間の使用期限があるので注意すること。

 インストールは、ダウンロードした「trialinstj.exe」をダブルクリックするだけでよい。インストール・ウィザードが起動するので、通常は以下のデフォルト値のままに進めていけばよいだろう。

項目 設定値
java.exeへのパス c:\jdk1.2.2\bin\java.exe
インストール先 c:\odi\pseproj
表1 インストール・ウィザードの設定値

[2]環境変数を設定する

 PSE Proの以降の処理に当たっては、あらかじめいくつかの環境変数を設定しておく必要がある。環境変数が正しく設定されていないと、以降の処理が正しく動作しないので注意すること。なお、環境変数の設定は[システムのプロパティ]からも行うことができるが、本稿ではコマンドプロンプトから行うことにする。

> SET PATH="%PATH%;c:\jdk1.2.2\bin;C:\odi\pseproj\bin"
> SET CLASSPATH=".;C:\odi\pseproj\pro.jar;C:\odi\pseproj\tools.jar;"
リスト1 PSE Proの環境変数設定

[3]PSE Proに格納するための永続化クラス「Book」を用意する

 次に、PSE Proに格納するためのクラス「Book」を定義しておこう。Bookクラスはプロパティ値を格納するためのプライベート変数と変数にアクセスするためのアクセサ・メソッドのみを含んだごく単純なクラスだ。

package wings;

public class Book {
  public Book() { /* コンストラクタ */ }
  private String isbn=null;
  private String title=null;
  private String publish=null;
  private int price=0;
  public String getIsbn() {return isbn;}
  public String getTitle() {return title;}
  public String getPublish() {return publish;}
  public int getPrice() {return price;}
  public void setIsbn(String isbn) {this.isbn=isbn;}
  public void setTitle(String title) {this.title=title;}
  public void setPublish(String publish) {this.publish=publish;}
  public void setPrice(int price) {this.price=price;}
}
リスト2 Book.java(PSE Proに格納するためのクラス)

[4]ポストプロセス処理を行う

 PSE Proに対してオブジェクトを永続化するには、クラスファイルに対してあらかじめ「ポストプロセス」というデータベースアクセス用の処理を施しておく必要がある。ポストプロセス処理といっても、さほどに難しいことではない。PSE Proにはポストプロセスを行うための「osjcfp」というコマンドラインツールが用意されている。コンパイル済みのクラスファイルに対して、このosjcfpツールを実行するだけでよい。

> javac Book.java             ←コンパイル
> osjcfp -dest . Book.class   ←ポストプロセス
リスト3 Bookクラスのコンパイルとポストプロセス

 以上の処理によって、カレントフォルダ直下の「wings(パッケージ名)」フォルダにポストプロセス後のBook.classが生成されるはずだ。カレントフォルダ直下に生成された(コンパイルしただけの)Book.classよりも容量が大きくなっていることが確認できる。以降の処理に必要なのはポストプロセス後のBook.classだけなので、元のBook.classは削除しても構わない。(次ページへ続く)

  1/4

 Index
連載:オブジェクト指向データベースの復権(後編)
ObjectStoreとCachéでOODBへ踏み出そう
Page 1
ObjectStoreのサンプルアプリケーション構築

 ・サンプル動作の前提条件
 ・[1]PSE Proをインストールする
 ・[2]環境変数を設定する
 ・[3]PSE Proに格納するための永続化クラス「Book」を用意する
 ・[4]ポストプロセス処理を行う
  Page 2
 ・[5]データベースを生成する
 ・[6]データベースからデータを取得する
  Page 3
Cachéのサンプルアプリケーション構築
 ・サンプル動作の前提条件
 ・[1]Cachéをインストールする
 ・[2]環境変数を設定する
 ・[3]Cachéに格納するための永続化クラス「Book」を用意する
  Page 4
 ・[4]データベースにオブジェクトを登録する
 ・[5]データベースからデータを取得する
Cachéへのさまざまなアクセス方法


オブジェクト指向データベースの復権



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

注目のテーマ

Database Expert 記事ランキング

本日月間