(57)【要約】【課題】データベース接続通信回線を介してソース・サイトとターゲット・サイトを接続するコンピュータ・システム・ネットワークにおいて、レコードごとにリモート・データ・ソースからデータをロードするための方法、装置、および製品を提供する。【解決手段】ソース・サイトは、少なくとも１つのデータ・ソースと、ＤＢＭＳに対してマルチデータベース・アクセス可能な分散リレーショナル・データベース体系（ＤＲＤＡ）ソフトウェア・サーバとを有する。ターゲット・サイトは、構造化照会言語（ＳＱＬ）ステートメントからなるブロックを介してソース・サイトＤＲＤＡからのデータ・ロードを要求する。データはＤＲＤＡ通信プロトコルに従ってデータベース接続通信回線を介してレコードごとにトランスポートされ、ターゲット・サイトはソース・サイト内のレコードのアンロードと同時にレコードをロードする。データ・ロードはパイプライン方式で実行することもでき、複数のデータ・ソース区画カーソルによって指し示される複数のパラレル・ストリームにより複数の区画にデータ・レコードをロードする。【選択図】図１
2004532465.tif 000002
【特許請求の範囲】
【請求項１】
データベース接続通信回線を介してソース・サイトとターゲット・サイトを接続するコンピュータ・システム・ネットワークにおいて、レコードごとにリモート・データ・ソースからデータをロードするための方法であって、
（ａ）少なくとも１つのデータ・ソースと、ＤＢＭＳに対してマルチデータベース・アクセス可能なソフトウェア・サーバとに、前記ソース・サイトを結合するステップと、
（ｂ）前記ターゲット・サイトで、構造化照会言語（ＳＱＬ）ステートメントまたはそれと同等のものからなるブロックを介して前記ソース・サイトからのデータ・ロードを要求するステップと、
（ｃ）マルチデータベース・アクセス通信プロトコルに従って前記データベース接続通信回線を介してレコードごとにデータをトランスポートするステップとを具備し、前記ターゲット・サイトが前記ソース・サイト内のレコードのアンロードと同時にレコードをロードする方法。
【請求項２】
１つまたは複数のデータ・レコードを前記ソース・サイトからアンロードするとすぐに前記データベース接続通信回線により１つのデータ・レコードをトランスポートし、１つのレコードを前記ターゲット・サイトにトランスポートするとすぐに前記ターゲット・サイトでのデータ・ロードが開始する、請求項１に記載の方法。
【請求項３】
前記データ・ロードがパイプライン方式で実行され、複数のデータ・ソース区画カーソルによって指し示される複数のパラレル・ストリームにより複数の区画にデータ・レコードをロードする、請求項１に記載の方法。
【請求項４】
前記ＳＱＬステートメントのブロックが、ＥＸＥＣＵＴＥ  ＩＭＭＥＤＩＡＴＥモードで実行する動的実行可能ＳＱＬステートメントを具備する、請求項１に記載の方法。
【請求項５】
前記ＳＱＬステートメントのブロックが、
前記サーバ・サイトからの各ＳＥＬＥＣＴステートメント結果レコード・アンロードを別々に参照するカーソルを定義するためのＳＱＬのＤＥＣＬＡＲＥ  ＣＵＲＳＯＲ  ＦＯＲ  ＳＥＬＥＣＴステートメントと、
前記ターゲット・サイトでの受信レコードを指し示すための同じカーソル名を備えたＬＯＡＤコマンドおよび演算子ＩＮＣＵＲＳＯＲとを具備する、請求項１に記載の方法。
【請求項６】
前記サーバ・サイトが、複数のデータ・ソースであって、色々なハードウェア・システムに常駐し、おそらく異なるフォーマットでデータを記憶する、物理的に分散された異種のＤＢＭＳにアクセス可能である、請求項１に記載の方法。
【請求項７】
前記サーバ・サイトが複数のデータ・ソースからデータをロードし、複数のデータ・ソースからのデータを統合するための手段を使用するためのステップをさらに具備する、請求項６に記載の方法。
【請求項８】
前記データベース接続通信回線がＴＣＰ／ＩＰプロトコルを使用し、前記ソフトウェア・サーバが、分散リレーショナル・データベース体系（ＤＲＤＡ）に従うＤＢＭＳに対してマルチデータベース・アクセス可能である、請求項１に記載の方法。
【請求項９】
レコードごとにリモート・データ・ソースからデータをロードするためのシステムであって、
少なくとも１つのデータ・ソースに結合され、ＤＢＭＳに対してマルチデータベース・アクセス可能なソフトウェア・サーバを有するソース・サイトと、
構造化照会言語（ＳＱＬ）ステートメントまたはそれと同等のものからなるブロックを介して前記ソース・サイトからのデータ・ロードを要求するターゲット・サイトと、
マルチデータベース・アクセス通信プロトコルに従ってレコードごとにデータをトランスポートするデータベース接続通信回線とを具備し、前記ターゲット・サイトが前記ソース・サイト内のレコードのアンロードと同時にレコードをロードするシステム。
【請求項１０】
１つまたは複数のデータ・レコードを前記ソース・サイトからアンロードするとすぐに前記データベース接続通信回線により１つのデータ・レコードをトランスポートし、１つのレコードを前記ターゲット・サイトにトランスポートするとすぐに前記ターゲット・サイトでのデータ・ロードが開始する、請求項９に記載のシステム。
【請求項１１】
前記データ・ロードがパイプライン方式で実行され、複数のデータ・ソース区画カーソルによって指し示される複数のパラレル・ストリームにより複数の区画にデータ・レコードをロードする、請求項９に記載のシステム。
【請求項１２】
前記ＳＱＬステートメントのブロックが、ＥＸＥＣＵＴＥ  ＩＭＭＥＤＩＡＴＥモードで実行する動的実行可能ＳＱＬステートメントを具備する、請求項９に記載のシステム。
【請求項１３】
前記ＳＱＬステートメントのブロックが、
前記サーバ・サイトからの各ＳＥＬＥＣＴステートメント結果レコード・アンロードを別々に参照するカーソルを定義するためのＳＱＬのＤＥＣＬＡＲＥ  ＣＵＲＳＯＲ  ＦＯＲ  ＳＥＬＥＣＴステートメントと、
前記ターゲット・サイトでの受信レコードを指し示すための同じカーソル名を備えたＬＯＡＤコマンドおよび演算子ＩＮＣＵＲＳＯＲとを具備する、請求項９に記載のシステム。
【請求項１４】
前記サーバ・サイトが、複数のデータ・ソースであって、色々なハードウェア・システムに常駐し、おそらく異なるフォーマットでデータを記憶する、物理的に分散された異種のＤＢＭＳにアクセス可能である、請求項９に記載のシステム。
【請求項１５】
前記サーバ・サイトが複数のデータ・ソースからデータをロードし、複数のデータ・ソースからのデータを統合するための手段をさらに具備する、請求項１５に記載のシステム。
【請求項１６】
前記データベース接続通信回線がＴＣＰ／ＩＰプロトコルを使用し、前記ソフトウェア・サーバが、分散リレーショナル・データベース体系（ＤＲＤＡ）に従うＤＢＭＳに対してマルチデータベース・アクセス可能である、請求項９に記載のシステム。
【請求項１７】
データベース接続通信回線を介してソース・サイトとターゲット・サイトを接続するコンピュータ・システム・ネットワークにおいて、レコードごとにリモート・データ・ソースからデータをロードするための方法ステップを実行するためにコンピュータにより実行可能な複数命令からなるプログラムを具体的に実施するコンピュータによって読取り可能なプログラム記憶装置であって、前記方法が、
（ａ）少なくとも１つのデータ・ソースと、ＤＢＭＳに対してマルチデータベース・アクセス可能なソフトウェア・サーバとに、前記ソース・サイトを結合するステップと、
（ｂ）前記ターゲット・サイトで、構造化照会言語（ＳＱＬ）ステートメントまたはそれと同等のものからなるブロックを介して前記ソース・サイトからのデータ・ロードを要求するステップと、
（ｃ）マルチデータベース・アクセス通信プロトコルにより前記データベース接続通信回線を介してレコードごとにデータをトランスポートするステップとを具備し、前記ターゲット・サイトが前記ソース・サイト内のレコードのアンロードと同時にレコードをロードする、プログラム記憶装置。
【請求項１８】
１つまたは複数のデータ・レコードを前記ソース・サイトからアンロードするとすぐに前記データベース接続通信回線により１つのデータ・レコードをトランスポートし、１つのレコードを前記ターゲット・サイトにトランスポートするとすぐに前記ターゲット・サイトでのデータ・ロードが開始する、請求項１７に記載の方法。
【請求項１９】
前記データ・ロードがパイプライン方式で実行され、複数のデータ・ソース区画カーソルによって指し示される複数のパラレル・ストリームにより複数の区画にデータ・レコードをロードする、請求項１７に記載の方法。
【請求項２０】
前記ＳＱＬステートメントのブロックが、ＥＸＥＣＵＴＥ  ＩＭＭＥＤＩＡＴＥモードで実行する動的実行可能ＳＱＬステートメントを具備する、請求項１７に記載の方法。
【請求項２１】
前記ＳＱＬステートメントのブロックが、
前記サーバ・サイトからの各ＳＥＬＥＣＴステートメント結果レコード・アンロードを別々に参照するカーソルを定義するためのＳＱＬのＤＥＣＬＡＲＥ  ＣＵＲＳＯＲ  ＦＯＲ  ＳＥＬＥＣＴステートメントと、
前記ターゲット・サイトでの受信レコードを指し示すための同じカーソル名を備えたＬＯＡＤコマンドおよび演算子ＩＮＣＵＲＳＯＲとを具備する、請求項１７に記載の方法。
【請求項２２】
前記サーバ・サイトが、複数のデータ・ソースであって、色々なハードウェア・システムに常駐し、おそらく異なるフォーマットでデータを記憶する、物理的に分散された異種のＤＢＭＳにアクセス可能である、請求項１７に記載の方法。
【請求項２３】
前記サーバ・サイトが複数のデータ・ソースからデータをロードし、複数のデータ・ソースからのデータを統合するための手段を使用するためのステップをさらに具備する、請求項２２に記載の方法。
【請求項２４】
前記データベース接続通信回線がＴＣＰ／ＩＰプロトコルを使用し、前記ソフトウェア・サーバが、分散リレーショナル・データベース体系（ＤＲＤＡ）に従うＤＢＭＳに対してマルチデータベース・アクセス可能である、請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、データベース管理システムに関し、より具体的には、ソースまたはターゲットのいずれかにあるファイル転送システムの物理的制約によって制限されずに、あるデータ・ソースに常駐する持続データをアンロードし、リモート・データ・ソースに転送し、ロードするためのコンピュータベースのデータベース管理システム内のメカニズムに関する。
【背景技術】
【０００２】
エレクトロニック・コマースの人気の増大により、多くの企業は、そのアプリケーションを効果的に配備して管理するためにアプリケーション・サーバに頼るよう促されている。非常に一般的なことに、このようなアプリケーション・サーバは、データの記憶および検索のためにデータベース管理システム（ＤＢＭＳ）とのインタフェースをとるように構成されている。これは、新しいアプリケーションが分散データ環境を扱わなければならないことを意味する場合が多い。その結果、アプリケーション開発者は頻繁に、自分のアプリケーションをサポートするためにどのＤＢＭＳ製品を使用すべきかまたはデータベースをどのように設計すべきかについて、ほとんどまたはまったく制御できないことを認識する。多くの場合、開発者は、自分のアプリケーションにとって重要なデータが、色々なソフトウェア・ベンダによって開発された複数のＤＢＭＳにわたって分散していることに気づく。
【０００３】
ソースまたはターゲット・サイトのいずれかにあるファイル転送システムの物理的制約によって制限されずに、あるデータ・ソースからデータをアンロード／抽出／エクスポートし、それをターゲット・サイトにトランスポートし、そのデータをターゲット・サイトのデータ・リポジトリにロード／インポートすることが望ましい場合が多い。また、ターゲット・レコードのロードがソース・レコードのアンロードと同時に実施できることも望ましい。これは、あるレコードを送信する動作と他のレコードを受信する動作がソースおよびターゲット・サイトで同時に行われるように、データがレコードごとにトランスポートされる場合に実施可能である。
【０００４】
しかし、現在、このような機能はまったく存在しない。データはファイルにアンロードされ、そのファイル全体がトランスポートされ、その後、データがターゲットにロードされる。ファイル内のデータのトランスポートは、伝統的に、ファイル転送プロシージャ（ＦＴＰ）を使用して実行される。残念ながら、ＤＢＭＳアプリケーションにＦＴＰを使用する企業はいくつかの障害に遭遇する可能性がある。ソース・サイトとターゲット・サイトのファイル・フォーマットが互換性がない可能性があるという懸念が存在する場合も多い。その上、転送すべきデータの数量がターゲット・サイトのオペレーティング・システムの最大ファイル・サイズを超える可能性もある。さらに、設計要件により、その属性が複数のＤＢＭＳに及ばなければならないデータベース・テーブルからレコード・データを転送する必要がある場合、これは現在サポートされていないものである。というのは、現在のところ、転送中に複数のデータ・ソースからレコード・データをまとめて結合することができないからである。その上、様々な主要情報技術ベンダによってサポートされている色々なデータベース製品を使用することが望ましい。というのは、これらの製品は、ポータビリティの増加や高度のコード再使用など、多くの潜在的なビジネス上の恩恵をもたらすからである。残念ながら、現在のＤＢＭＳベンダは、レコードごとのモードでのデータ転送またはデータ・レコードの転送中の複数のデータ・ソースからのデータの結合をサポートしていない。
【０００５】
したがって、開発者は、必要なデータ・レコードにアクセスするためにより複雑な（しかも潜在的に厄介な）代替策に頼らざるを得ない。多くの場合、この代替策は、実現するためにより高価かつ時間がかかるものであり、ＤＢＭＳ技術を実現するためにより精巧な１組のプログラミング技能を必要とし、実行するために追加のマシン・リソースを消費する可能性があり、開発およびテストのために必要な労力が増大する可能性があり、潜在的にデータ自体のポータビリティを抑制する。
【０００６】
複数のデータ・ソースに存在する重要なデータにアクセスし、それを転送するアプリケーションをアプリケーション開発者が構築する必要がある場合、この問題に対し現在使用可能な解決策の１つは、透過アクセスを手動でシミュレートすることを含む。その場合、プログラマは、必要なデータ・ソースのそれぞれに個別に接続し、必要なデータを読み込み、複数のデータ・ソースから読み込まれた結果を相関させ（または結合し）、必要なデータ変換などを実行するためのソフトウェアを作成するという重荷を引き受ける。これは、相当な量の作業であり、多くのプログラマの技能レベルをかなり上回るものである。さらに、これは、多くのコストを招くものである。それに加えて、関連する各データ・ソースのアプリケーション・プログラミング・インタフェース（ＡＰＩ）に関する相当な知識を必要とし、照会最適化の機会が少なくなり、それによりパフォーマンスが抑制される可能性がある。
【０００７】
この問題に対し現在使用可能なもう１つの解決策では、色々なデータ・ソースからのデータを単一データ・ソースにコピーしなければならず、それをプログラマが後で転送する場合、データの物理的統合が必要になる。しかし、これは、データ待ち時間と追加コストに関連する問題を提起する。このデータ待ち時間により、データのコピーは、元のデータ・ソースに含まれるデータより若干ないし大幅に「古い」ものになる。時代遅れ（かつ潜在的に不正確な）データを扱うことは、多くのアプリケーションにとって容認できないものになりうる。計画的または定期的にあるソースから他のソースにデータをコピーするために、追加のソフトウェアを購入し、インストールし、構成し、保守しなければならないので、増加コストとしてはソフトウェア・コストならびにそれに関連する労働コストを含む。このソフトウェアは、データ移送の努力をサポートするか、または非常に低いデータ待ち時間をサポートするデータ複製プロセスを実現しなければならない。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
したがって、複数のデータ・ソースに常駐する場合が多く、おそらく色々なフォーマットで記憶されている持続データをレコードごとにターゲット・サイトの保管場所に転送することができる方法およびシステムを提供することが必要になっている。これは、アプリケーションの設計、開発、保守を簡単にし、本来はアクセス不能と思われる機能を備えた、より信頼できるアプリケーションを提供することになるだろう。
【課題を解決するための手段】
【０００９】
本発明の上記ならびに追加の目的、特徴、および利点は、いくつかの図面を参照し、以下に示す好ましい実施形態の詳細な説明で明らかになるだろう。
【００１０】
本発明の好ましい一実施形態は、データベース接続通信回線を介してソース・サイトとターゲット・サイトを接続するコンピュータ・システム・ネットワークにおいて、レコードごとにリモート・データ・ソースからデータをロードするための方法である。ソース・サイトは、少なくとも１つのデータ・ソースと、ＤＢＭＳに対してマルチデータベース・アクセス可能なソフトウェア・サーバとを有する。ターゲット・サイトは、構造化照会言語（ＳＱＬ）ステートメントまたはそれと同等のものからなるブロックを介してソース・サイトからのデータ・ロードを要求する。データはマルチデータベース・アクセス通信プロトコルに従ってデータベース接続通信回線を介してレコードごとにトランスポートされ、ターゲット・サイトはソース・サイト内のレコードのアンロードと同時にレコードをロードする。データ・ロードはパイプライン方式で実行することもでき、複数のデータ・ソース区画カーソルによって指し示される複数のパラレル・ストリームにより複数の区画にデータ・レコードをロードする。ＤＢＭＳに対してマルチデータベース・アクセス可能なソフトウェア・サーバは好ましくは分散リレーショナル・データベース体系（ＤＲＤＡ）を使用し、データベース接続通信回線は好ましくはＴＣＰ／ＩＰプロトコルを使用する。
【００１１】
本発明の他の好ましい実施形態は、本発明の上記の方法実施形態を実現する装置である。
【００１２】
本発明のさらに他の好ましい実施形態は、本発明の上記の方法実施形態の方法ステップを実行するためにコンピュータによって実行可能な複数の命令からなるプログラムを具体的に実施し、コンピュータによって読取り可能なプログラム記憶装置である。
【００１３】
次に添付図面を参照するが、図面全体を通して同様の参照番号は対応する部分を表す。
【発明を実施するための最良の形態】
【００１４】
以下に示す好ましい実施形態の説明では、その一部を形成する添付図面を参照するが、同図では、実例として本発明を実施可能な具体的な実施形態が示されている。他の実施形態も使用可能であり、本発明の範囲を逸脱せずに構造および機能上の変更が可能であることを理解されたい。
【００１５】
本発明は、複数のデータ・ソースに常駐する場合が多く、おそらく色々なフォーマットで記憶されている持続データをレコードごとにターゲット・サイトの保管場所に転送するためのシステム、方法、および本発明の方法を実行するためにコンピュータによって実行可能な複数の命令からなるプログラムを実施するプログラム記憶装置を対象とする。おそらく色々なフォーマットで記憶されている複数のデータ・ソースからのデータの転送は、マルチデータベース・ソフトウェア・サーバと呼ばれる既存の従来の技術を使用して実施される。したがって、開発者はレコードごとにデータを転送することができ、レコード属性は複数のデータ・ソースに及ぶ可能性がある。さらに、開発者は、単一トランザクション内でこれらの属性の一部または全部にアクセスすることができる。本発明は様々な主要情報技術ベンダによってサポートすることができるので、これは、アプリケーション開発者にプログラミング上の負担をかけずに、ポータビリティの増加や高度のコード再使用など、多くの潜在的なビジネス上の恩恵をもたらす。
【００１６】
本発明の好ましい実施形態は好ましくは、データ・ソースへのアクセスのために、分散リレーショナル・データベース体系（ＤＲＤＡ）ソフトウェア・サーバなど、ＤＢＭＳに対してマルチデータベース・アクセス可能なソフトウェア・サーバを使用するが、これに対しては構造化照会言語（ＳＱＬ）コマンドまたはそれと同等のものを使用してターゲット・サイトからアクセスすることができる。データは好ましくは、レコードごとにＤＲＤＡ通信プロトコル・ルールによりフォーマットされてトランスポートされ、ターゲット・サイトに直接ロードされる。本発明では好ましくは標準的なＳＱＬコマンドを使用するが、これは複雑なＳＱＬコマンドである場合もある。これにより、複数のデータ・ソースからのデータをまとめて結合するために使用する、合併および結合機能の使用が可能になる。
【００１７】
本発明の実施形態では、１つまたは複数のデータ・レコードをソース・サイトからアンロードするとすぐに１つのデータ・レコードをトランスポートすることができ、１つのレコードをターゲット・サイトにトランスポートするとすぐにターゲット・サイトでのデータ・ロードを開始することができる。したがって、ターゲット・サイトは、ソース・サイトでのレコードのアンロードと同時にレコードをロードすることができる。さらに、転送すべきすべてのデータを転送前に１つのファイルに完全にロードする必要はないので、データの数量は無限にすることができ、最大ファイル転送システム・サイズに拘束されない。その上、ＤＲＤＡまたは同様の通信プロトコルを使用すると、中立のデータ・フォーマットが得られ、ロードとアンロードのサイト・ファイル・フォーマットが互換性があるかどうかの懸念はまったくない。
【００１８】
本発明により、ターゲット・サイトのユーザは、ソース・サイトからのレコードをターゲット・サイトに転送するよう要求することができる。これは好ましくは、ＳＱＬのＤＥＣＬＡＲＥ  ＣＵＲＳＯＲ  ＦＯＲ  ＳＥＬＥＣＴステートメントによって実施されるが、これはカーソル名によってソース・サイト・テーブルのＳＥＬＥＣＴコマンド結果行を参照する。このコマンドはソース・サイトに送られて実行される。次に、ターゲット・サイトのユーザはＬＯＡＤコマンドを使用するが、これはターゲット・サイト・テーブルを指定する。ＬＯＡＤコマンドは本発明のために定義された新しい演算子ＩＮＣＵＲＳＯＲを使用するが、これはＳＥＬＥＣＴステートメントに使用するものと同じカーソル名を使用して、ターゲット・サイト・テーブルにロードされるデータの位置を示す。したがって、本発明では、現在ＩＮＤＤＮによって定義されているファイル名の代わりにカーソル名を使用して、ファイル全体を参照する代わりに各データ・レコードを別々に参照する。
【００１９】
図１は、本発明の好ましい実施形態による例示的なコンピュータ・ハードウェアおよびソフトウェア環境のブロック図を示しており、ターゲット・サイト１００とソース・サイト１０２とを含み、そのそれぞれは関連コンピュータ・メモリ（図示せず）に記憶された命令を実行する１つまたは複数の従来のプロセッサ（図示せず）を有する。オペレーティング・メモリには、任意選択の記憶ドライブまたはネットワークとのインタフェースにより受信した命令をロードすることができる。本発明の好ましい実施形態は、ターゲット・サイト１００にコンソール端末（図示せず）を有し、ターゲット・サイト１００のプロセッサがデータベース接続通信回線１１６を介してソース・サイト１０２のプロセッサにネットワーク接続され、その通信回線が好ましくはＴＣＰ／ＩＰ通信回線であり、それによりＤＲＤＡ通信プロトコル・ルールに応じてレコードがトランスポートされるようなネットワーク環境で使用する場合に特に有利である。
【００２０】
ソース・サイト１０２のプロセッサは、１つまたは複数のリレーショナル・データベースを記憶する、ディスク・ドライブなどの１つまたは複数の電子記憶装置１０６に接続されている。記憶装置１０４はターゲット・サイト１００でも使用されている。これらは、たとえば、光ディスク・ドライブ、磁気テープ、または半導体メモリ、あるいはこれらの組合せを含むことができる。各記憶装置は、磁気媒体ディスケット、磁気テープ、光ディスク、半導体メモリ、その他の機械可読記憶装置などのプログラム記憶装置の受入れを可能にし、プログラム記憶装置に記録された方法プログラム・ステップをコンピュータ・メモリに読み込んで転送できるようにする。記録されたプログラム命令としては、本発明の方法実施形態用のコードを含むことができる。別法として、このプログラム・ステップは、ネットワークを介してコンピュータからオペレーティング・メモリに受信することもできる。
【００２１】
ターゲット・サイト１００のコンソール端末のオペレータは、ＩＭＳ／ＤＢ／ＤＣ、ＣＩＣＳ、ＴＳＯ、ＯＳ／２、その他の同様のインタフェースなどの標準的なオペレータ端末インタフェース（図示せず）を使用して、電子記憶装置１０６に記憶されたデータベースに対する照会と呼ばれるサーチおよび検索機能など、様々なタスクをソース・サイト１０２で実行するためのコマンドを表す電子信号をターゲット・サイト１００との間で伝送する。本発明では、このような照会は好ましくはＳＱＬ規格に適合し、ソース・サイト１０２に位置するデータベース管理システム（ＤＢＭＳ）によって実行される機能を呼び出すが、そのデータベース管理システムはＤＢＭＳファミリー１０８の一部にすることができ、好ましくはリレーショナル・データベース管理システム（ＲＤＢＭＳ）ソフトウェアである。また、ターゲット・サイト１００にもＤＢＭＳ１１０が存在する。本発明の好ましい実施形態では、ＲＤＢＭＳソフトウェアはＤＢ２製品であり、ＡＳ４００、ＯＳ３９０、またはＯＳ／２オペレーティング・システム、マイクロソフト社のＷｉｎｄｏｗｓオペレーティング・システム、またはＤＢ２がサポートするＵＮＩＸベースのオペレーティング・システムのいずれかのためにＩＢＭが提供するものである。しかし、当業者であれば、本発明は、ＳＱＬを使用するどのＲＤＢＭＳソフトウェアにも適用可能であり、非ＳＱＬ照会にも同様に適用可能であることが分かるだろう。
【００２２】
図１は、本発明の好ましい実施形態を可能にするソフトウェア環境をさらに示している。図１に示すシステムでは、ターゲット・サイト１００は、データベース接続通信回線１１６を介してソース・サイト１０２に位置するクロスローダ・ソフトウェア１１２と通信可能な本発明のクロスローダ・ソフトウェア１１４をさらに含む。各クロスローダ・ソフトウェア１１２、１１４は、以下に示すように本発明のレコードごとのデータ転送を実行するために使用可能な複数命令のブロックを含む。また、ターゲット・サイト１００はＤＲＤＡインタフェース１１８も含み、ソース・サイト１０２はＤＲＤＡインタフェース１２０をさらに含む。また、クロスローダ・ソフトウェア１１４はＤＢＭＳ１１０にも接続され、クロスローダ・ソフトウェア１１２はＤＢＭＳファミリーに接続され、データベース項目へのアクセスを可能にしている。その上、ターゲット・サイト１００は、必要なときにＤＲＤＡプロトコルがサポートするデータ・タイプ変換に使用可能なデータ・タイプ変換モジュール１２２も含む。ソース・サイト１０２は、色々なＤＢＭＳからのデータを（ＯｒａｃｌｅからＤＢ２へなど）移送するために使用する、図１に示すＤａｔａＪｏｉｎｅｒモジュールなどのマルチデータベース・ソフトウェア・サーバ１２４をさらに含み、このモジュールはクロスローダ・ソフトウェア１１２とＤＢＭＳファミリー１０８に接続されている。
【００２３】
本発明の方法実施形態は以下の諸ステップを含む。まず、ユーザは転送すべきデータを識別するが、そのデータは色々なデータ・ソース・サイトにあって、色々なフォーマットで記憶されている可能性がある。たとえば、ユーザは、ＤＢ２、Ｏｒａｃｌｅ、Ｓｙｓｂａｓｅ、Ｉｎｆｏｒｍｉｘ、ＥＶＩＳ、ＶＳＡＭデータベース、ＳＱＬサーバ、またはＮＣＲ  Ｔｅｒａｄａｔａに常駐する、ＤＢＭＳファミリー１０８のテーブルからの所与のレコードが自分のアプリケーションに関連があり、移送しなければならないことを明確にすることができる。データ・ソース識別に関連する諸ステップの正確な性質は変化する可能性がある。本発明の好ましい実施形態はＳＱＬコマンドを発行して実現されるが、他の多数の可能性を使用することもできる。
【００２４】
分散データ・ソースからのデータを使用する場合、次のステップでユーザは、そのデータを含むＤＢＭＳファミリー１０８からのデータ・ソースに接続するためのソフトウェア機能を使用し、このデータ・オブジェクトをそのソフトウェア機能に登録する。このソフトウェア機能は、ＤａｔａＪｏｉｎｅｒ１２４として図１に示し、ときには連合ＤＢＭＳと呼ばれ、それぞれが色々なシステム上に常駐し、色々なフォーマットでデータを記憶する可能性のある複数のデータ・ソースにアクセス可能なマルチデータベース・ソフトウェア・サーバの諸機能を有する。本発明の好ましい実施形態は、Ｏｒａｃｌｅ  ＤＢＭＳ、Ｓｙｂａｓｅ  ＤＢＭＳ、Ｉｎｆｏｒｍｉｘ  ＤＢＭＳなどを含むＤＢＭＳファミリー１０８に接続するために、ＤＢ２  Ｖ６．１用のＤａｔａＪｏｉｎｅｒＶ２．１など、ＩＢＭのＤＢ２  ＤａｔａＪｏｉｎｅｒマルチデータベース・ソフトウェア・サーバ１２４を使用して実現されている。
【００２５】
その後、このソフトウェア機能、すなわち、マルチデータベース・ソフトウェア・サーバを使用して、ユーザは、データ・ソースから前に登録したデータから複数の属性を統合するコマンドを作成する。このステップの一実施例は、リレーショナルＤＢＭＳテーブルまたはビューにアクセスするＳＱＬのＳＥＬＥＣＴステートメントを使用するクロスローダ・ソフトウェア１１４を含むことができ、このようなビューは、アプリケーションの特定の要求に基づいて、色々な、ときにはリモートのデータ・ソース（テーブルなど）からのデータを結合する。このような各ＳＥＬＥＣＴステートメントは、ときには結果として得られるレコードまたはビューを１つまたは複数のデータ・ソース（テーブル）に関連する行と列からなるサブセットに制限することを選び、適宜、データを選別する。ＳＥＬＥＣＴステートメントのために、ユーザはカーソルを宣言しなければならない。これにより、データが単一テーブルから導出された場合と同様にレコードごとにデータを参照するために、標準的なデータベース接続性メカニズムはそのソフトウェア機能、すなわち、マルチデータベース・ソフトウェア・サーバに接続することができる。
【００２６】
次に、ターゲット・サイト１００のクロスローダ・ソフトウェア１１４では、前に定義したビューによって表されるデータをロードするために、ＬＯＡＤコマンドなどの標準的なＳＱＬコマンドを使用して、前に宣言したカーソルへの接続を確立することができる。上記で概略を示した諸ステップが完了すると、プログラマは、アクセスする必要があるデータの分散性を隠すように、データにアクセスすることができる。このため、多くの有用なビジネス・アプリケーションの効率的な開発が容易になり、その結果、開発および保守コストが最小限になる。本発明により、ユーザは、ＤＢ２ファミリーのあるメンバーから他のメンバーにアプリケーションを移送することができる。テーブルは、サーバのオペレーティング・システムが処理するファイル・サイズより大きくなる可能性がある。
【００２７】
本発明では標準的なＳＱＬを使用するので、分散アクセスに必要なように、データ位置と、スキーマ名と、テーブル名によってソース・データを識別するために３つの部分名を使用することができる。代替実施形態では、ソース・サイト１０２をターゲット・サイト１００に接続するためにＣＯＮＮＥＣＴステートメントを使用する。本発明では好ましくは動的ＳＱＬステートメントを使用して、ＳＱＬステートメントのユーティリティ・ブロックを構築する。ＥＸＥＣ  ＳＱＬユーティリティ・コマンドはカーソル宣言に使用する。動的に実行可能な他のいくつかのＳＱＬステートメントも、同じＥＸＥＣ  ＳＱＬコマンドで定義することができる。
【００２８】
以下の構文図はＥＸＥＣ  ＳＱＬコマンドのフォーマットを示し、同じブロック内で「ｄｅｃｌａｒｅ  ｃｕｒｓｏｒ  ｓｐｅｃ」コマンドの後に「ｎｏｎ−ｓｅｌｅｃｔ  ｄｙｎａｍｉｃ  ＳＱＬ  ｓｔａｔｅｍｅｎｔ」を続けることができる。
【００２９】
2004532465.tif 000003
【００３０】
「ｄｅｃｌａｒｅ  ｃｕｒｓｏｒ  ｓｐｅｃ」というフレーズはＤＥＣＬＡＲＥ  ＣＵＲＳＯＲステートメントとして入力し、ＳＥＬＥＣＴステートメントの結果を指し示すカーソルを定義する。これは以下のＳＱＬフォーマットを有する。
【００３１】
2004532465.tif 000004
【００３２】
「ｃｕｒｓｏｒ−ｎａｍｅ」というフレーズはカーソルを識別する。「ｓｅｌｅｃｔ−ｓｔａｔｅｍｅｎｔ」は、カーソル宣言ステートメントで宣言したカーソルによって指し示されるテーブルからの結果行を提供するために使用するＳＱＬのＳＥＬＥＣＴコマンドを指定する。
【００３３】
「ｎｏｎ−ｓｅｌｅｃｔ  ｄｙｎａｍｉｃ  ＳＱＬ  ｓｔａｔｅｍｅｎｔ」というフレーズは、ＥＸＥＣＵＴＥ  ＩＭＭＥＤＩＡＴＥモードで指定のＳＱＬステートメントを実行するために使用するコマンドを指し示す。この「ｎｏｎ−ｓｅｌｅｃｔ  ｄｙｎａｍｉｃ  ＳＱＬ  ｓｔａｔｅｍｅｎｔ」は、以下のＳＱＬステートメントの１つにすることができる。
【００３４】
・ＡＬＴＥＲ
・ＣＯＭＭＥＮＴ  ＯＮ
・ＣＯＭＭＩＴ
・ＣＲＥＡＴＥ
・ＤＥＬＥＴＥ
・ＤＲＯＰ
・ＥＸＰＬＡＩＮ
・ＧＲＡＮＴ
・ＩＮＳＥＲＴ
・ＬＡＢＥＬ  ＯＮ
・ＬＯＣＫ  ＴＡＢＬＥ
・ＲＥＮＡＭＥ
・ＲＥＶＯＫＥ
・ＲＯＬＬＢＡＣＫ
・ＳＥＴ  ＣＵＲＲＥＮＴ  ＤＥＧＲＥＥ
・ＳＥＴ  ＣＵＲＲＥＮＴ  ＬＯＣＡＬＥ  ＬＣ＿ＣＴＹＰＥ
・ＵＰＤＡＴＥ
・ＳＥＴ  ＣＵＲＲＥＮＴ  ＯＰＴＩＭＩＺＡＴＩＯＮ  ＨＩＮＴ
・ＳＥＴ  ＣＵＲＲＥＮＴ  ＰＡＴＨ
・ＳＥＴ  ＣＵＲＲＥＮＴ  ＳＱＬＩＤ
・ＳＥＴ  ＣＵＲＲＥＮＴ  ＰＲＥＣＩＳＩＯＮ
・ＳＥＴ  ＣＵＲＲＥＮＴ  ＲＵＬＥＳ
【００３５】
ＳＱＬステートメントの実行中に、指定のステートメント・ストリングが構文解析され、エラーの有無がチェックされる。そのＳＱＬステートメントが無効である場合、それは実行されず、その実行を妨げるエラー条件が報告される。そのＳＱＬステートメントが有効であるが、その実行中にエラーが発生した場合、そのエラー条件が報告される。そのＳＱＬステートメントが終了するのに要するプロセッサ時間が多すぎる場合、ＤＢ２はそのステートメントの実行を停止することができる。これが起こると、エラーが発生し、報告される。エラーが発生した場合は必ずこのユーティリティが終了する。
【００３６】
サンプル・テーブルＭＹＳＯＵＲＣＥからのすべての行と列を選択するためのカーソルを宣言するために使用する、有効なＤＥＣＬＡＲＥ  ＣＵＲＳＯＲステートメントの例は以下の通りである。
【００３７】
2004532465.tif 000005
【００３８】
ＬＯＡＤコマンドは多くのオプションを有することができる。図２は、本発明の好ましい実施形態によるＬＯＡＤコマンドのいくつかのオプションの構文形式を示している。
【００３９】
ＬＯＡＤコマンドで「ＩＮＣＵＲＳＯＲ  ｃｕｒｓｏｒ−ｎａｍｅ」パラメータを使用することは、本発明の好ましい実施形態である。ＬＯＡＤコマンドは、アンロードすべきソース・サイト・データを指し示す同じカーソルを指定する。したがって、このカーソルは、「ｄｅｃｌａｒｅ  ｃｕｒｓｏｒ  ｆｏｒ  ｓｅｌｅｃｔ」ですでに宣言されていなければならない。ＳＥＬＥＣＴステートメント・テーブル内の列の名前は、ロードしたレコードを受け取るためのターゲット・テーブル内の列の名前と同一でなければならない。しかし、選択リスト内の「ＡＳ」節を使用して、ＳＥＬＥＣＴステートメントによって返される列の名前を変更することができる。
【００４０】
本発明の好ましい実施形態の実施例を示す２つの例を以下に示す。
【００４１】
例１：この例は、カーソルＣ１を宣言し、カーソルＣ１を宣言するＳＥＬＥＣＴステートメントの結果として得られるソース・サイト・テーブルからのレコードをターゲット・テーブルにロードする。
【００４２】
ＬＯＡＤコマンドは、レコードごとの転送モード用のＩＮＣＵＲＳＯＲパラメータを受け入れるように変更されているが、このパラメータは従来の全ファイル転送に使用するＩＮＤＤＮパラメータの代わりに使用される。
【００４３】
2004532465.tif 000006
【００４４】
本発明は、いくつかのパラレル・ストリームで、すなわち、パイプライン・モードでデータ転送を実行可能な好ましい実施形態も有する。
【００４５】
例２：この例は、ＭＹＴＡＲＧＥＴテーブルのいくつかの区画にデータを並列にロードする方法を示しており、そのデータは各区画カーソルＣ１〜Ｃ４について宣言されているようにＳＥＬＥＣＴステートメントの結果として得られる。ＬＯＡＤコマンドは、区画カーソルＣ１〜Ｃ４が指し示す４つのパラレル・ストリーム（パイプライン・モード）としてデータをフェッチするように実行される。
【００４６】
2004532465.tif 000007
【００４７】
本発明は好ましくは、ＤＲＤＡを介して分散データベース間の対話を処理するが、これにより、プログラマがＤＢＭＳファミリー１０８の複数のＤＢＭＳに記憶されたデータにアクセスする必要があるときに開発作業を簡単にすることができる。ＤＲＤＡは、一般的なＳＱＬ  ＡＰＩと、位置透過性と、（場合によっては）機能補償をもたらすものである。それに加えて、マルチデータベースの結合および合併は、手動で各データ・ソースに接続し、各ソースから個別に必要なデータを検索し、そのデータを何らかのアプリケーション管理データ構造に一時的に記憶し、結合または合併操作に関連するデータ統合を処理するために必要な論理をコーディングすることなしに、実行することができる。このような作業はマルチデータベース・ソフトウェア・サーバによって自動的に処理されるが、これにより、異種のＤＢＭＳに物理的に分散され記憶される可能性のあるデータの単一サイト・イメージを提示される。
【００４８】
本発明の好ましい実施形態は、色々なソースからのデータの物理的統合の必要性を解消し、したがって、関連するソフトウェアおよび労働コストならびにデータ待ち時間問題によってもたらされる論理暴露を回避する。また、本発明の好ましい実施形態は、必要なデータ・ソースのそれぞれに個別に接続し、必要なデータを読み込み、複数のデータ・ソースから読み込まれた結果を相関させ（または結合し）、必要なデータ変換などを実行するためのソフトウェアを作成するという重荷からプログラマを解放する。これは、多くのプログラマの技能レベルをかなり上回る相当な量の作業であり、多くのコストを招くものである。その上、プログラマは、色々なデータ・ソース間の相違点に関する詳細な知識を持っている必要はない。
【００４９】
本発明は好ましくは、ＤＲＤＡプロトコルによるデータ・フォーマットを使用し、ギガビット・イーサネットを備えたＴＣＰ／ＩＰデータベース接続通信回線を介してデータを転送する。これは、ローカルまたはリモートのターゲット・テーブルからロードするために使用することができる。これは、本発明の高速性、信頼性、効率、およびフレキシビリティのために、ホスト・コンピュータ（ソース・サイト）ウェアハウス（ＣＣまたはビジュアル・ウェアハウス）からの大量のデータの定期的自動リフレッシュ（ダウンロード）に特に有用である。また、これは、ＤＬ／ＩまたはＶＳＡＭなど、ＤＢ２以外のＤＢＭＳでも使用することができる。本発明は、ＯＳ／３９０、ＵＮＩＸ、Ｗｉｎｄｏｗｓ、ＯＳ／２など、色々なオペレーティング・システムによってサポートされるＤＢＭＳで使用することもできる。これは、ＤＳＮＴＩＡＤの使用なしに、ＣＲＥＡＴＥ／ＤＲＯＰテーブル、ＧＲＡＮＴ、ＩＮＳＥＲＴ／ＵＰＤＡＴＥ／ＤＥＬＥＴＥなどのユーティリティ内でのＤＤＬおよびＤＭＬの実行をサポートする。
【００５０】
本発明の好ましい実施形態は、数値、ＡＳＣＩＩ／ＥＢＣＩＤＩＣ／ユニコード、コードページなど、データ変換モジュール１２２によって実行されるいくつかのデータ・タイプ変換と、ブロック・フェッチをサポートすることができ、ファイル・サイズ制限または行およびフィールドのオーバヘッドの問題はまったくない。これにより、アプリケーションの設計、開発、保守が簡単になり、現在は不可能な機能を備えたより信頼できるアプリケーションが得られる。
【００５１】
本発明の好ましい実施形態の上記の説明は例証および説明のために提示したものである。これは、網羅的にするかまたは開示した正確な形式に本発明を制限するためのものではない。上記の教示を考慮すると、おおくの変更形態および変形形態が可能である。本発明の範囲はこの詳細な説明によって制限されるのではなく、特許請求の範囲によって制限されるものとする。
【図面の簡単な説明】
【００５２】
【図１】本発明の好ましい実施形態による例示的なコンピュータ・ハードウェアおよびソフトウェア環境のブロック図である。
【図２】本発明の好ましい実施形態によるＬＯＡＤコマンドのいくつかのオプションの構文形式を示す図である。
【図１】
2004532465.tif 000008
【図２】
2004532465.tif 000009
【国際公開パンフレット】
2004532465.tif 000010
2004532465.tif 000011
2004532465.tif 000012
2004532465.tif 000013
2004532465.tif 000014
2004532465.tif 000015
2004532465.tif 000016
2004532465.tif 000017
2004532465.tif 000018
2004532465.tif 000019
2004532465.tif 000020
2004532465.tif 000021
2004532465.tif 000022
2004532465.tif 000023
2004532465.tif 000024
2004532465.tif 000025
2004532465.tif 000026
2004532465.tif 000027
2004532465.tif 000028
2004532465.tif 000029
2004532465.tif 000030
2004532465.tif 000031
2004532465.tif 000032
【国際公開パンフレット（コレクトバージョン）】
2004532465.tif 000033
2004532465.tif 000034
【国際公開パンフレット（コレクトバージョン）】
2004532465.tif 000035
2004532465.tif 000036
【国際調査報告】
2004532465.tif 000037
2004532465.tif 000038
2004532465.tif 000039