(57)【要約】【課題】データ・テーブルを有する階層データベースに対するリレーショナル・クエリが、迅速に処理される。【解決手段】多対多の関係を複数の１対多の関係に変換するために、ブリッジング・テーブルが作成される。ブリッジング・テーブルは、カスタム半導体チップ上に記憶され、カスタム半導体チップは、クエリを解析して、ブリッジング・テーブルを使用することによってデータテーブル内のどのレコードがクエリと合致するかを、半導体チップ上に記憶されるカスタム・データ・アルゴリズムを使用して判断する。合致毎に、階層データベース内の対象レコードへのポインタが記憶される。カスタム・チップ上で実行される命令は、ポインタまたは対象レコードを読み出して、これらをクエリ要求者へ転送する。【選択図】図１
2008537827.tif 000002
【特許請求の範囲】
【請求項１】
階層データベースをクエリする方法であって、
前記階層データベースのための複数の多対多の関係を定義するステップと、
第１および第２のエンティティ間の前記多対多の関係を、前記第１のエンティティおよび前記ブリッジング・テーブル間の１対多の関係と、前記ブリッジング・テーブルおよび前記第２のエンティティ間の１対多の関係とに変換するためのレコードを有するブリッジング・テーブルを作成するステップと、
前記ブリッジング・テーブルを集積回路チップ内のメモリ内に記憶するステップと、
リレーショナル・クエリを要求者から受信するステップと、
前記集積回路チップ上で実行される命令によって前記リレーショナル・クエリを解析するステップと、
前記ブリッジング・テーブル内の各前記レコードをアクセスして、前記各レコードが前記クエリに合致する場合、対象レコードへのポインタを前記階層データベース内に記憶するステップと、
前記対象レコードまたは前記ポインタをすべて読み出して、前記読み出された対象レコードまたは前記ポインタを前記要求者へ転送するステップと
を含む、方法。
【請求項２】
前記多対多の関係は、エンティティ間であって、前記エンティティのうちの特定のものと前記エンティティのうちの他のものとの間の相互接続を含む、請求項１に記載の方法。
【請求項３】
前記ブリッジング・テーブルを使用して、前記エンティティのうちの前記特定のものと前記エンティティのうちの前記他のものとの間の前記相互接続を記述する結合テーブルを作成するステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記命令は、前記相互接続チップ上に記憶される、請求項１に記載の方法。
【請求項５】
前記リレーショナル・クエリは、ＳＱＬである、請求項１に記載の方法。
【請求項６】
前記対象レコードは、カスタマイズされたアドレス指定アルゴリズムを使用して読み出される、請求項１に記載の方法。
【請求項７】
階層データベースをクエリするためのシステムであって、
前記階層データベースのための複数の多対多の関係を定義するための手段と、
メモリと命令プロセッサとを有する集積回路チップと、
第１および第２のエンティティ間の前記多対多の関係を、前記第１のエンティティおよび前記ブリッジング・テーブル間の１対多の関係と、前記ブリッジング・テーブルおよび前記第２のエンティティ間の１対多の関係とに変換するためのレコードを有する、前記集積回路チップ上に記憶されるブリッジング・テーブルを作成するための手段と、
リレーショナル・クエリを要求者から受信するための手段と、
前記集積回路チップ上の前記命令プロセッサによって実行される命令によって前記リレーショナル・クエリを解析するための手段と、
前記ブリッジング・テーブル内の各前記レコードをアクセスして、前記各レコードが前記クエリに合致する場合、対象レコードへのポインタを前記階層データベース内に記憶するための手段と、
前記対象レコードまたは前記ポインタをすべて読み出して、前記読み出された対象レコードまたは前記ポインタを前記要求者へ転送するための手段と
を備える、システム。
【請求項８】
前記多対多の関係は、エンティティ間であって、前記エンティティのうちの特定のものと前記エンティティのうちの他のものとの間の相互接続を含む、請求項７に記載のシステム。
【請求項９】
前記ブリッジング・テーブルを使用して、前記エンティティのうちの前記特定のものと前記エンティティのうちの前記他のものとの間の前記相互接続を記述する結合テーブルを作成するための手段をさらに備える、請求項８に記載のシステム。
【請求項１０】
前記命令は、前記相互接続チップ上に記憶される、請求項７に記載のシステム。
【請求項１１】
前記リレーショナル・クエリは、ＳＱＬである、請求項７に記載のシステム。
【請求項１２】
前記対象レコードは、カスタマイズされたアドレス指定アルゴリズムを使用して読み出される、請求項７に記載のシステム。
【請求項１３】
デジタル・コンピュータの内部メモリにロード可能なコンピュータ・プログラム製品であって、前記プログラムがコンピュータ上で実行される場合に、請求項１から６に記載の発明を実行するための行うためのソフトウェア・コード部分を備える、コンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、階層データベースをアクセスするための方法およびシステムに関し、特に、リレーショナル・クエリを使用してこれらのデータベースにアクセスすることに関する。より特定的には、リレーショナル・クエリを要求者から受信後に階層データベースに迅速にアクセスして、リレーショナル・クエリによって識別された対象レコードを要求者へ迅速に返すための機構に関する。
【背景技術】
【０００２】
数多くの企業および政府は、トランザクション、特に企業または政府団体によって行われるビジネス・トランザクションに関わるデータの取得および取り出しのために、階層データベースを使用している。階層データベースは、親／子モデルとして知られる情報を記憶するために階層スキーマを使用する。階層スキーマは、ツリー構造として表されてもよく、そこにおいて、各親ノードは、複数の子ノードを有してもよく、各子ノードは１つの親ノードのみを有してもよい。
【０００３】
他の通常使用されるデータベースは、リレーショナル・データベースである。リレーショナル・データベースは、数多くのやり方で再編成およびアクセス可能であるように定義されたデータを有する表形式のデータベースである。リレーショナル・データベースにおいて、データ・レコードは、データ・テーブルまたはすべてが同一の縦列を有する横列の集合内に保持される。各横列は、データ・レコードであり、各縦列は、当該データ・レコードのデータの特定の型の情報を保持する。データ・レコードは、互いに異なるテーブル内の互いに異なるデータレコードを結合する固有のインデックスまたはキーを使用してインデックスされてもよい。
【０００４】
リレーショナル・データベースが特に有用であるのは、そこに記憶される情報がリレーショナル・クエリ言語を使用してアクセスしてもよいからである。そのようなクエリ言語の１つであるＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ（構造化照会言語）は、ＩＢＭ社の商標であり、リレーショナル・データベース・ユーザによって広範に使用および理解されている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
残念なことに、通常利用可能なものを超える追加の能力を提供しなければ、階層データベースの基礎的なリレーショナルな質問を行うことができない。例えば、多くの企業および他の組織は、その業務を、階層データベースとリレーショナル・データベースという２つのデータベースを関連サポート要員と共に保持することによってサポートしている。この取り組みは、費用がかかり、保守が煩雑である。
【０００６】
米国特許出願第２０００／００３０７１６号のホス他（Ｈｏｔｈ  ｅｔ  ａｌ．）は、階層データベース内のリレーショナル・スキーマを提供するための方法を説明している。階層データベース内のエンティティ間の相互接続を説明および記録するために、ブリッジング・テーブルが作成される。
【０００７】
ホスが説明する方法は、所望の能力を提供するものの、ブリッジング・テーブルを形成してクエリ応答を顧客に返すのに必要なオーバヘッドのために応答時間が遅いことが多い。
【０００８】
階層データベースと共にクエリ能力に対する顧客の要求を満足させるためには、クエリ応答時間の改良が必要となる。
【課題を解決するための手段】
【０００９】
したがって、本発明の主な目的は、階層データベースからリレーショナル・クエリ言語で提示されるクライアント・クエリへ応答データを迅速に提供する方法を提供することである。
【００１０】
他の目的は、迅速な応答クエリ能力を有するシステムを提供することである。
【００１１】
これらおよび他の目的は、本発明の一実施形態に従って達成される。一実施形態において、階層データベースをクエリする方法が提供される。本方法は、階層データベースのための複数の多対多の関係を定義するステップと、第１および第２のエンティティ間の多対多の関係を、第１のエンティティおよびブリッジング・テーブル間の１対多の関係と、ブリッジング・テーブルおよび第２のエンティティ間の１対多の関係とに変換するためのレコードを有するブリッジング・テーブルを作成するステップと、ブリッジング・テーブルを集積回路チップ内のメモリ内に記憶するステップと、リレーショナル・クエリを要求者から受信するステップと、集積回路チップ上で実行される命令によってリレーショナル・クエリを解析するステップと、ブリッジング・テーブル内の各レコードをアクセスして、各レコードがクエリに合致する場合、対象レコードへのポインタを階層データベース内に記憶するステップと、対象レコードまたはポインタをすべて読み出して、読み出された対象レコードまたはポインタを要求者へ転送するステップとを含む。
【００１２】
本発明の他の実施形態によれば、階層データベースをクエリするためのシステムが提供される。本システムは、階層データベースのための複数の多対多の関係を定義するための手段と、メモリと命令プロセッサとを有する集積回路チップと、第１および第２の関係間の多対多の関係を、第１の関係およびブリッジング・テーブル間の１対多の関係と、ブリッジング・テーブルおよび第２の関係間の１対多の関係とに変換するためのレコードを有する、集積回路チップ上に記憶されるブリッジング・テーブルを作成するための手段と、リレーショナル・クエリを要求者から受信するための手段と、集積回路チップ上の命令プロセッサによって実行される命令によってリレーショナル・クエリを解析するための手段と、ブリッジング・テーブル内の各レコードをアクセスして、各レコードがクエリに合致する場合、対象レコードへのポインタを階層データベース内に記憶するための手段と、対象レコードまたはポインタをすべて読み出して、読み出された対象レコードまたはポインタを要求者へ転送するための手段とを備える。
【発明を実施するための最良の形態】
【００１３】
図１において、本発明に係る階層データベースをクエリする改良された方法を行うのに必要なステップを示すフローチャートが示されている。ステップ１２において、階層データベースについての複数の多対多の関係が定義される。上述のように、階層データベースは、１対多の関係をサポートしている。ＬＯＴＵＳ  ＮＯＴＥＳソフトウェア製品（ＬＯＴＵＳ  ＮＯＴＥＳは、マサチューセッツ州ケンブリッジのロータス・デベロップメント・コーポレーションの登録商標である）において使用されるデータベースなど、階層データベースの任意の種類を使用してもよい。
【００１４】
したがって、ステップ１２からの多対多の関係は、階層データベース構造に適合するために、１対多の関係に変換しなければならない。変換方法の１つは、ステップ１４において作成されたブリッジング・テーブルの使用によるものである。ブリッジング・テーブルは、多対多の関係が、例えば、第１のエンティティおよびブリッジング・テーブル間の複数の１対多の関係と、ブリッジング・テーブルおよび第２のエンティティ間の複数の第２の１対多の関係とに置換されるように構成される。
【００１５】
図２は、そのような変換処理を示すフローチャートである。ステップ３２において、関係における主要エンティティが識別される。ステップ３４において、異なって識別されたエンティティがどのように互いに関係しているかを表すために、概念スキーマがされる。したがって、概念スキーマは、エンティティ関係図を表す。ステップ３６において、内部モデルが概念スキーマから作成される。内部モデルは、階層データベースにおいて使用するために変換しなければならない多対多の関係を有するエンティティを識別する。
【００１６】
ステップ３８において、内部モデルは、基礎となるデータベースの要件に適合された物理モデルに変換される。例えば、基礎となるデータベースがＬＯＴＵＳ  ＮＯＴＥＳの一部である場合には、形式および表示は、基礎となるデータ構造を作成するための対応テーブルとなってもよい。また、データも、基礎となるデータ・テーブル内に記憶される。
【００１７】
ステップ４０において、相互接続されたエンティティ間の相互接続が、結合テーブルを使用して登録される。結合テーブルは、ステップ３２において識別される、ブリッジング・テーブルを使用して結合されるエンティティ間のパスを含むエンティティ間のパスを備えてもよい。結合テーブル内の各エントリは、ステップ３６において作成された内部モデルに由来している。結合テーブル内の各エントリは、特定のエンティティに関連したデータが他のエンティティと別にどのように取り出されてもよいかを定義する。
【００１８】
ステップ４２において、メタ・データがエンティティ毎に作成されて、対応エンティティから抽出されるようなデータの種類を定義する。データは、ユーザに対して表示または提示するために取り出されてもよい。メタ・データの作成は、エンティティ、エンティティ間の相互接続、またはエンティティ間のデータ・フローを記録するテーブルを作成することを含む。
【００１９】
図２についての上記ステップはすべて、ホス他（Ｈｏｔｈ  ｅｔ  ａｌ．）による米国特許出願第２０００／００３０７１６号においてさらに詳細に説明されている。ステップ４４において、階層データベースからデータを検索および取り出すための要素が作成される。本ステップは、図１，図３，および図４に関連して後述する。
【００２０】
図３において、カスタム半導体チップ５２が示されており、カスタム半導体チップ５２は、プロセッサ・コア５４と、キャッシュ５６と、フラッシュ・メモリ５８と、サーバ・プロトコル・プロセッサ６０とを有する。記憶領域ネットワークの形態の外部記憶装置６２が、半導体チップ５２に取り付けられており、半導体チップ５２からアクセス可能である。本発明から逸脱することなく他の目的のための他の構成要素が半導体チップ５２に存在してもよい。
【００２１】
プロセッサ・コア５４は、プログラミング命令を実行するための命令プロセッサを含む。例えば、プロセッサ・コアは、リレーショナル・クエリを解析するための命令または対象レコードを読み出すための命令を実行してもよい。命令は、半導体チップ５２上に記憶されてもよい。例えば、命令は、キャッシュ５６またはフラッシュ・メモリ５８内、もしくはプロセッサ・コア５４自体の内部に記憶されてもよい。さらに、命令は、記憶装置６２上に記憶されて、本発明を実施するために必要に応じて取り出されてもよい。実行頻度の高い命令は、キャッシュ５６に記憶されるか、またはプロセッサ・コア自体の内部に記憶される。実行頻度の低い命令は、フラッシュ・メモリ５８または記憶装置６２内に記憶されてもよい。このようなデータ記憶内におけるトレードオフおよび最適化が本発明の精神から逸脱することなく行われてもよいことを、半導体設計技術の当業者は認識するだろう。
【００２２】
半導体チップ５２は、従来または特別な単一またはマルチ・チップのチップ台上に単独または他のチップと組み合わせて搭載されてもよい。チップ台は、好ましい一実施形態において、メインフレーム・ボックス内に位置決めするためのプラグイン・カード上に搭載される。プラグイン・カードは、好ましくは、リボン・ケーブルまたは他の手段を介してハード・ドライブのアレイに取り付けるように適合されており、メインフレーム・ボックス内のＩ／Ｏバスに取り付けることを含む。
【００２３】
図１に戻って、ステップ１６において、ブリッジング・テーブルが、図３のカスタマ集積回路上のメモリ内に記憶される。好ましい一実施形態において、ブリッジング・テーブルは、キャッシュ５６またはフラッシュ・メモリ５８内に記憶される。データ・テーブル・アドレス、メタ・データ、およびテーブル相互接続も、キャッシュ５６またはフラッシュ・メモリ５８内に記憶されてもよい。
【００２４】
ステップ１８において、リレーショナル・クエリを要求者から受信する。要求者は、ＳＱＬクエリ言語を使用して自身のリレーショナル・クエリを表現するユーザであってもよい。ユーザは、典型的には、リレーショナル・クエリを使用して、ビジネス情報についての質問をデータベースに対して行うことができることを期待している。クエリは、階層データベース、半導体チップ、ならびに本発明のすべての他のソフトウェアおよびハードウェア要素が内蔵されたワークステーションに入力されてもよい。しかしながら、より典型的には、データベースは、サーバ・コンピュータ上にあり、ユーザは、自身のクエリを、遠隔地に接続されたワークステーション、端末装置、ラップトップ・コンピュータ、手のひら型装置、携帯電話、または他の携帯装置に入力する。
【００２５】
リレーショナル・クエリは、相互接続を渡ってカスタム半導体チップ５２を進み、ステップ２０において、プロセッサ・コア５４において実行される命令によって解析される。解析によって、ステップ２２において、クエリは、記憶されたブリッジング・テーブルまたはデータ・テーブル内の記録と照合されることができる。解析されたクエリと合致する各レコード毎に、階層データベース内の対象レコードへのポインタがに記憶される。ポインタは、半導体チップ５２上のどこに記憶されてもよい。例えば、ポインタは、半導体チップ５２のキャッシュ５６またはフラッシュ・メモリ５８内のスタックに記憶されてもよい。また、ポインタは、チップ５２の外部に記憶されてもよく、例えば、記憶域ネットワーク（ＳＡＮ）６２または任意の記憶媒体位置内に記憶されてもよい。ブリッジングおよびデータ・テーブルのレコードをアクセスしてそれぞれを解析されたクエリと比較するための命令は、プロセッサ・コア５４において実行されてもよい。
【００２６】
ステップ２４において、スタックの内容、例えば、ステップ２２からのポインタを要求者に返してもよい。また、ステップ２４において、プロセッサ・コア５４は、階層データベースから対象レコードを読み出して、これらのレコードを要求者へ転送してもよい。階層データベースは、ハード・ドライブまたはＳＡＮ６２上にあってもよい。要求者が遠隔地にいる場合には、対象レコードは、通常、要求装置へ送り戻されることになろうが、これは必須ではない。対象レコードは、一旦取り出されるとリポート内へとさらに処理されてもよく、当該レポートまたは対象レコード自体は、任意の所望の位置にある要求者へ転送可能であることを、当業者は認識するだろう。
【００２７】
対象レコードのボリュームを階層データベースから読み出すのは、時間のかかる、性能を制限するような動作となりうる。その結果、図４に示すようなカスタマイズされたアドレス指定アルゴリズムを、ステップ２２およびステップ２４において使用してもよい。ステップ７２においてデータベース・デスクリプタを提供することによって、このアルゴリズムを任意の階層構造上において使用してもよい。読み出すべきレコードは、ステップ７２において提供されるようなパスと共に、対象レコード自体に基づく。データベース・デスクリプタは、対象セグメントへのパスを提供するために取得および解釈される。
【００２８】
ステップ７４において、データベースがあるハードウェアへリンクするために、パスが設定される。例えば、データベースがハード・ドライブにある場合には、ステップ７４において、ハード・ドライブ制御部への通信リンクが初期化される。
【００２９】
ステップ７６において、上述のデータ・テーブル・アドレスと、ブリッジング・テーブルと、メタ・データと、テーブル相互接続とを使用して、階層読み出しが対象セグメントに至るまで行われる。
【００３０】
ステップ７８において、対象セグメントは、要求者へ転送される。ステップ２４について記したように、代わりにポインタを要求者に返してもよい。ステップ８０において、アドレス指定アルゴリズムは停止する。
【図面の簡単な説明】
【００３１】
【図１】本発明のステップを示すフローチャートである。
【図２】ブリッジング・テーブルを提供するための方法を示すフローチャートである。
【図３】本発明に適応された半導体チップの機能ブロック図である。
【図４】対象レコードの読み出しを示すフローチャートである。
【図１】
2008537827.tif 000003
【図２】
2008537827.tif 000004
【図３】
2008537827.tif 000005
【図４】
2008537827.tif 000006
【国際調査報告】
2008537827.tif 000007
2008537827.tif 000008
2008537827.tif 000009