Caché コンポーネンツ

Unified Data Architecture

リレーショナルとオブジェクト指向それぞれのデータ表現で生じる本質的な「インピーダンスミスマッチ」を解消するために、これまで多くの労力が注ぎ込まれています。そして多くの場合、オブジェクト・リレーショナル・マッピングという方法がとられています。マッピングはアプリケーション開発の妨げとなるだけでなく、アプリケーション実行速度を低下させることも少なくありません。Cachéの統合データ・アーキテクチャは、オブジェクト共有と多次元データエンジンへのリレーショナルなアクセスを可能にすることで、マッピングを不要にします。

インピーダンス・ミスマッチの問題

今日の開発者は問題を抱えています。開発者は、生産性に優れ、豊富なデータ モデルを持つ環境を実現する、Java、C++、およびCOM などのオブジェクト指向開発技術を使用したいと考えています。しかし現実には、多くの場合、リレーショナルデータベースのデータにアクセスしたり、SQLを使用するデータ分析ツールや帳票ツールとやり取りするアプリケーションを作成しなければならないのです。しばしばインピーダンス・ミスマッチと呼ばれるこの問題は、リレーショナルデータとオブジェクト指向言語の相性の悪さに起因します。

ところが、「純粋な」オブジェクト データベースも、SQL に依存する人気のデータ分析ツーや帳票ツールと相性が良くありません。今日の開発者は、オブジェクトとリレーショナルという 2 つの手段で、データにアクセスする必要があります。

この目的を達成するために、開発者は「オブジェクト・リレーショナル・マッピング」という類の選択を強いられることも多々あります。手動にしろツールを利用するにしろ、マッピングは明らかに開発スピードの遅い、退屈な作業です。さらに悪いことには、マッピング技術ではデータモデルの進化が考慮されておらず、アプリケーションが使用するデータ ストラクチャが変わるたびにマップも再作成しなければなりません。

オブジェクト・リレーショナル・マッピングでは、オブジェクトとリレーション間でデータ フォーマット変換処理のオーバヘッドが発生するため、アプリケーションのパフォーマンスが低下します。

その他データベースの技術 イメージ

洗練されたソリューション: 統合データ・アーキテクチャ

Caché の統合データ・アーキテクチャは、インピーダンス・ミスマッチを解消する洗練されたソリューションです。なぜなら、Cachéの多次元データ構造は、オブジェクト指向技術の特徴である豊富なデータ タイプの格納に適した手法であるからです。 さらに、SQL経由のアクセスを考慮して、多次元構造を2次元構造 (すなわちテーブル) として簡単に利用できます。したがって、オブジェクトとリレーショナルのデータモデルは、それぞれの形式をマッピングすることなく、同時に Caché 多次元データを共有できます。

Cacheの統合データアーキテキチャ イメージ

統合データ・アーキテクチャでは、1つの定義であらゆるデータ構造が、オブジェクト・クラスとしてもリレーショナル・テーブルとしても機能します。開発者は Caché Studio あるいは オブジェクト設計ツールを使用して、すぐにテーブルとして利用できる Cachéオブジェクト・クラスを定義できます。反対にリレーショナル・テーブル定義は DLL を使用して Cachéにインポートでき、早速オブジェクトとして利用できます。

Cachéの統合データ定義はコンパイル時に自動作成され、データ構造とスキーマの変更に応じて展開されます。開発者は、もうオブジェクトとリレーショナル間のデータ表現をマップせずに済みます。また別々のデータ定義を同期させることを心配する必要もなくなります。