管理の手引き


第 3 章 連合システム

連合データベース・システム または 連合システム とは、 アプリケーションまたはユーザーが、1 つのステートメントで 2 つ以上の DBMS またはデータベースを参照する SQL ステートメントを実行依頼することをサポートするデータベース管理システム (DBMS) のことです。 一例として、2 つの異なる DB2 データベースにある表を結合することがあります。 このタイプのステートメントを、分散要求 といいます。

DB2 ユニバーサル・データベースの連合システムでは、 データベースおよび DBMS 間の分散要求をサポートしています。 たとえば、DB2 表と Oracle 視点との間で UNION 操作を実行できます。 サポートされている DBMS には、DB2、DB2 ファミリーのメンバー (DB2 (OS/390 版) や DB2 (AS/400 版)) そして Oracle があります。

DB2 連合システムは、 データベース・オブジェクトの位置透過性 を提供します。 (表および視点についての) 情報が移動する場合に、 その情報への参照 (ニックネーム と呼ばれる) を、 その情報を要求するアプリケーションに変更を加えることなく更新することができます。 さらに、DB2 連合システムには、すべての DB2 SQL ダイアレクトをサポート しているわけではない、あるいは特定の最適化能力をサポートしていない DBMS 向けの代償機能 も備えられています。 特定の DBMS で実行できない操作 (再帰的 SQL など) は、DB2 で実行されます。

DB2 連合システムは半自律的な 方法で機能します。 Oracle オブジェクトへの参照を含む DB2 照会を実行依頼しながら、 Oracle アプリケーションで同じサーバーにアクセスすることができます。 DB2 連合システムは、(整合制約 / ロック制約を除き) Oracle や他の DBMS オブジェクトへのアクセスを占有したり制約することはありません。

DB2 連合システムは、DB2 UDB のインスタンス、 連合データベース の役割のデータベース、 そして 1 つ以上のデータ・ソース で構成されています。 連合データベースには、 データ・ソースとその特性を識別するためのカタログ項目が含まれています。 データ・ソースは、DBMS とデータで構成されています。 アプリケーションは、他の DB2 データベースと同じように、 連合データベースに接続します。 図 20 を見れば、連合データベース環境を視覚的に理解できます。

図 20. 連合データベース・システム


連合データベース・システム

DB2 連合データベース・カタログ項目には、 データ・ソース・オブジェクトについての情報 (その名前、含まれている情報、 使用するときの条件) が載せられています。 この DB2 カタログには、いろいろな DBMS に含まれているオブジェクトについての情報が格納されているので、 グローバル・カタログ と呼ばれます。 オブジェクト属性についても、そのカタログに格納されます。 参照される実際の DBMS、データ・ソースとのやり取りで使用するモジュール 、そしてアクセスされる DBMS データ・オブジェクト (表など) は、データ ベースの外側にあります。 (1 つの例外として、連合データベースは連合システムのデータ・ソースとす ることができます。) 連合オブジェクトは、コントロール・センターまたは SQL DDL ステートメントを使用して作成できます。 必要な連合データベース・オブジェクトは以下のとおりです。

ラッパー
データ・ソースの特定のクラスまたは区分にアクセスする際に使用す るモジュール (DLL、ライブラリーなど) を識別します。

サーバー
データ・ソースを定義します。 サーバー・データには、ラッパー名、サーバー名、サーバー・タイプ、 サーバー・バージョン、許可情報、およびサーバー・オプションが含まれています。

ニックネーム
特定のデータ・ソース・オブジェクト (表、別名、 視点) を参照する連合データベースに格納されている識別子。 アプリケーションは照会を使用して、表や視点を参照するときのように、ニックネームを参照します。

それぞれの必要に応じ、以下のオブジェクトを別に作成することができます。

連合システムを設定したら、1 つの大きなデータベースにある情報のようにして、 データ・ソース内の情報にアクセスできます。 ユーザーとアプリケーションはある連合データベースへ照会を送り、必要に 応じて DB2 ファミリーや Oracle システムからデータを取り出します。 ユーザーとアプリケーションは照会の中でニックネームを指定します。 このようなニックネームにより、データ・ソースにある表や視点を参照することになります。 エンド・ユーザー側から見ると、ニックネームは別名によく似ています。

連合システムのパフォーマンスに影響する要因は数多くあります。 データ・ソースとそのオブジェクトについての最新情報が、 連合データベースのグローバル・カタログに格納されていることを確認することは、 最重要な作業です。 この情報は DB2 最適化プログラムによって使用されるものであり、データ・ ソースでの評価のための操作をプッシュダウンするときの判断に影響する可 能性があります。 連合システムのパフォーマンスについての詳細は、管理の手引き: パフォーマンス を 参照してください。

DB2 連合システムの操作には、いくらかの制限があります。 分散要求は読み取り専用操作に限定されています。 さらに、ニックネームに対するユーティリティー操作 (LOAD、REORG、 REORGCHK、IMPORT、RUNSTATS など) を実行できません。

しかし、パススルー機能を利用すれば、該当のデータ・ソースと関連した SQL ダイアレクトを使用し、データベース・マネージャーに対して直接に DDL および DML ステートメントを実行依頼できます。

連合システムは、並列環境に対応できます。 連合データベース照会を意味的にローカル・オブジェクト (表、視点) 参照とニックネーム参照とに細分化できる程度に応じて、 それぞれのパフォーマンス向上の度合いが決まります。 ニックネーム・データの要求は順番に処理されますが、 ローカル・オブジェクトは並行して処理することができます。 たとえば、SELECT * FROM A, B, C, D という照会があり、 A と B はローカル表を表し、 C と D は Oracle データ・ソースにある表を参照 するニックネームであるとします。この場合、1 つの可能なプランは、表 A と B を 並行結合で結合することです。 そのようにすると、その結果はニックネーム C と D へ順番に結合されます。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]