オブジェクトデータベースとリレーショナルデータベースのいいとこどり

EnterpriseZine / 2012年11月29日 0時0分

★★図 PPT3枚目★★

前回、インターシステムズが提供しているオブジェクトデータベース「Caché」がいったいどんなものなのか、そのさわり部分を紹介しました。今回は、もう少し詳しくCachéが提供しているデータベース技術(永続データメカニズム)について説明したいと思います。

■オブジェクト指向的なアクセスもSQLによるアクセスもできる便利さ

 インターシステムズのデータベースの実体は、プログラミング言語の変数(グローバル変数と呼びます)であると前回説明しました。これは言い換えるとプログラミングによって必要なデータ構造の構築を行うことであり、一般的なデータベースで事前に必要なスキーマ(ディクショナリー、リポジトリなどと言われることもあります)の構築が必要ないことを意味します。

 しかしスキーマ定義が必要ないというのは、変化が激しいデータ構造を取り扱う時やデータモデルがあらかじめ定まらない中で試行錯誤しながらデータ構造を構築していく場合や、ライフサイクルが比較的短くちょっとした中間データ構造を定義したい場合などには柔軟に対応でき便利な面もあります。しかし、ある程度安定したデータ構造を処理する際には、スキーマがあったほうがデータ構造を理解しやすく、管理もしやすいでしょう。さらに、この構造は外部システムにとっては全く理解不能なものなので、外部システムとデータ交換する際には何らかのスキーマ情報を構築してデータのやり取りを行う必要があります。

 この要件を満たすために考案されたのが、統一データアーキテクチャです。この「統一」という言葉はオブジェクト指向的なアクセスと、リレーショナル(SQL)的なアクセスを統一することを意味しています。インターシステムズが統一データアーキテクチャを考案する際、当時すでに主流だったリレーショナルアクセスの概念を取り込むことは当然でしたが、一方プログラミング手法として着実に浸透してきたオブジェクト指向プログラミングとリレーショナルデータベースの相性の悪さ(O/Rマッピング)をなんとか解消したいという考えがありました。

 諸悪の根源はオブジェクトのスキーマ定義とリレーショナルのスキーマ定義を、別々に作ってそれをマッピングさせる方法にあります。スキーマを一度定義したあとで、変化しないのであれば難しい問題はありません。しかし、さまざまな理由でスキーマは変化していくものです。そうすると、変化のたびにオブジェクトの定義、リレーショナルの定義、さらにそれらをマッピングする定義を維持、更新していかなければなりません。これは、想像以上に煩雑で手間のかかる作業なのです。

  • 前のページ
    • 1
    • 2
  • 次のページ
EnterpriseZine

トピックスRSS

ランキング