連載
» 2005年05月20日 00時00分 公開

JavaのDBアクセスを極める(4):RDB/OODB/XMLDBで比較する永続化設計 (1/3)

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

[下平浩由 著, 安間裕 監修,アクセンチュア・テクノロジー・ソリューションズ]

はじめに

 本連載の第2回「O/Rマッピングで失敗しない分析・設計のポイント」では「実装フェイズにおけるデータモデルの違い」、第3回「OOAとDOAを併用した最適な分析/設計パターン」では「設計フェイズにおける設計手法の違い」により、インピーダンスミスマッチが発生すること、そしてインピーダンスミスマッチの影響を局所化する方法を解説しました。

 ここで題材としていたシステムは、オブジェクト指向アプローチ(OOA)によるシステム開発において、アプリケーション開発にはオブジェクト指向言語(Java)を、データの永続化にはリレーショナル・データベース(RDBMS)を利用していました。この構成がインピーダンスミスマッチを引き起こす原因となっていました。もし、RDBMSではなくオブジェクト指向データベース(OODBMS)を利用していたらどうなっていたでしょうか?

 本稿では、連載第1回「JavaとDBのデータモデルはナゼすれ違う?」で提示された疑問、

  • リレーショナル・データベース以外のデータベースがいくつかあるが、選定するポイントは何だろうか。また、実際に使えるのだろうか

に答えるべく、代表的な3つのデータベース・システム(DBMS)を永続化のデータ表現形式に注目して比較していきます。

図1 今回の解説範囲  図1 今回の解説範囲

RDB/OODB/XMLDBそれぞれの特徴

リレーショナル・データベース・システム(RDBMS)

 「リレーショナル・データベース・マネジメント・システム(Relational DataBase Management System)」は現在最も普及しているDBMSです。一般にデータベースというと、ほとんどの場合、RDBMSを指しているといっても過言ではないと思います。

 RDBMSは、データを単純な2次元の表(リレーション)の集合としてデータベース上に格納します。またリレーションに格納できるデータは単独のデータ(数値や文字列などのプリミティブ型または非構造データ型注1)に限られます。リレーションで表現されていない実世界のデータはデータベースに格納できないため、正規化注2を行ってデータ構造をリレーションの集合で表現可能にしなくてはなりません。データの正規化を行うとともに、その過程で得られたリレーションの定義情報であるスキーマ定義を使って、データベース上にリレーションの入れ物となるテーブルを前もって作成しておきます。

注1非構造データ型
マルチメディアデータ(画像、音声など)やXMLドキュメントなどの巨大なデータを扱えるが、DBMSからはデータ構造を認識できず、単独の値として扱われるデータ型のこと(例えば、Oracle DatabaseのRAW、LONG RAW型)。

注2正規化
実世界のデータ構造を正規形で表現できるようにすること。第1〜第5正規形があり、リレーションは少なくとも第1正規形を満たすことが必須条件である。データの重複や更新異常を防ぐことを目的として、通常は第3正規形まで行われることが多い。

 このようにデータを格納する前に、「実世界のデータ構造のモデリング(正規化)」 → 「スキーマの定義」 → 「スキーマの実装」というステップを設計、実装フェイズで踏んでおく必要があります。

 RDBMSは扱うデータの正規化が必須であり、データを格納するまでが大変ですが、一度正規化されたデータはSQL問い合わせによって柔軟に取り扱うことができます。例えばリレーションから得られるSQL問い合わせの結果もリレーションであり(閉包性)、結果をさらにSQLで処理することで複雑なデータ処理を行うことができます。

 オブジェクトのように複雑なデータ構造を持つデータを永続化するには、データ構造をリレーションの集合に分解します。またデータを抽出する際は、反対にリレーションを組み合わせてオブジェクトを組み立てます。このとき、オブジェクトの構造が複雑であるほど、マッピングするリレーションの数も増えていきます。この面倒な分解、組み立ての処理を行うのがO/Rマッピングです。

図2 RDBMSのデータ表現形式の特徴  図2 RDBMSのデータ表現形式の特徴

次ページに続く)

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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