(57)【特許請求の範囲】
【請求項１】
データベース内を検索する方法であって、
データベース内を検索する検索要求を受け取るとそれに応答して、前記検索要求から前記データベース内を検索するための条件を抽出することと、
前記データベースで行われた過去の検索の履歴統計データに基づいて、前記データベースに登録された複数の検索アルゴリズムから前記条件に合致する検索アルゴリズム選択することと、
前記検索アルゴリズムを使用して前記データベースから検索結果を取得することと
を含み、
前記データベースは時系列データベースである、方法。
【請求項２】
前記履歴統計データは、前記複数の検索アルゴリズムのうちの様々な検索アルゴリズムの使用による前記データベース内の検索の対応する効率に関連付けられた、請求項１に記載の方法。
【請求項３】
前記履歴統計データは、前記様々な検索アルゴリズムの使用による前記データベースのテーブル内の検索の効率にさらに関連付けられた、請求項２に記載の方法。
【請求項４】
前記効率は時間オーバーヘッドを含み、前記時間オーバーヘッドは、前記検索結果における部分列内の１つの時点を返す時間オーバーヘッドを表し、
前記データベースで行われた前記過去の検索の前記履歴統計データに基づいて、前記データベースに登録された前記複数の検索アルゴリズムから前記条件に合致する前記検索アルゴリズムを選択することは、時間オーバーヘッドが最小の検索アルゴリズムを現在の検索アルゴリズムとして選択することを含む、請求項２または３に記載の方法。
【請求項５】
前記効率は枝刈り率を含み、前記枝刈り率は、現在の検索アルゴリズムに基づいて前記データベースから返された候補部分列の数に対する前記検索結果における部分列の数の割合を表し、
前記データベースで行われた前記過去の検索の前記履歴統計データに基づいて、前記データベースに登録された前記複数の検索アルゴリズムから前記条件に合致する前記検索アルゴリズムを選択することは、枝刈り率が最高の検索アルゴリズムを前記現在の検索アルゴリズムとして選択することを含む、請求項２または３に記載の方法。
【請求項６】
前記検索アルゴリズムを使用して前記データベースから前記検索結果を取得する際に収集される統計情報に基づいて、前記履歴統計データを更新することをさらに含む、請求項２または３に記載の方法。
【請求項７】
データベース・システム内を検索する方法であって、前記データベース・システムは、
時系列データベースである第１のデータベースと、リレーショナル・データベースである第２のデータベースとを含み、前記方法は、
検索要求を受け取るとそれに応答して、前記検索要求から、前記第１のデータベース内を検索する第１の検索要求と、前記第２のデータベース内を検索する第２の検索要求とを抽出することと、
請求項１ないし６のいずれかに記載の方法により前記第１の検索要求を使用して前記第１のデータベース内を検索し、前記第２の検索要求を使用して前記第２のデータベース内を検索することと、
前記第１のデータベースからの第１の検索結果と前記第２のデータベースからの第２の検索結果とに基づいて、前記検索要求に応答するために検索結果を生成することと
を含む方法。
【請求項８】
前記第１のデータベースからの前記第１の検索結果と前記第２のデータベースからの前記第２の検索結果とに基づいて前記検索要求に応答するために前記検索結果を生成することは、
前記第１の検索結果と前記第２の検索結果とを結合して前記検索結果を生成することを含む、請求項７に記載の方法。
【請求項９】
前記検索要求はクライアントからの要求であり、前記検索結果は前記データベース・システムによって生成される、請求項７または８に記載の方法。
【請求項１０】
データベース内を検索するための装置であって、
データベース内を検索する検索要求を受け取るとそれに応答して、前記検索要求から前記データベース内を検索するための条件を抽出するように構成された抽出モジュールと、
前記データベースで行われた過去の検索の履歴統計データに基づいて、前記データベースに登録された複数の検索アルゴリズムから前記条件に合致する検索アルゴリズムを選択するように構成された選択モジュールと、
前記検索アルゴリズムを使用して前記データベースから検索結果を取得するように構成された取得モジュールと
を含み、
前記データベースは時系列データベースである、装置。
【請求項１１】
前記履歴統計データは、前記複数の検索アルゴリズムのうちの様々な検索アルゴリズムの使用による前記データベース内の検索の対応する効率に関連付けられた、請求項１０に記載の装置。
【請求項１２】
前記履歴統計データは、前記様々な検索アルゴリズムの使用による前記データベースのテーブル内の検索の効率にさらに関連付けられた、請求項１１に記載の装置。
【請求項１３】
前記効率は時間オーバーヘッドを含み、前記時間オーバーヘッドは、前記検索結果における部分列内の１つの時点を返す時間オーバーヘッドを表し、
前記選択モジュールは、時間オーバーヘッドが最小の検索アルゴリズムを現在の検索アルゴリズムとして選択するように構成された第１の選択モジュールを含む、請求項１１または１２に記載の装置。
【請求項１４】
前記効率は枝刈り率を含み、前記枝刈り率は、現在の検索アルゴリズムに基づいて前記データベースから返された候補部分列の数に対する前記検索結果における部分列の数の割合を表し、
前記選択モジュールは、枝刈り率が最高の検索アルゴリズムを前記現在の検索アルゴリズムとして選択するように構成された第２の選択モジュールを含む、請求項１１または１２に記載の装置。
【請求項１５】
前記検索アルゴリズムを使用して前記データベースから前記検索結果を取得する際に収集される統計情報に基づいて前記履歴統計データを更新するように構成された更新モジュールをさらに含む、請求項１１または１２に記載の装置。
【請求項１６】
データベース・システム内を検索するための装置であって、前記データベース・システムは、時系列データベースである第１のデータベースと、リレーショナル・データベースである第２のデータベースとを含み、前記装置は、
検索要求を受け取るとそれに応答して、前記検索要求から、前記第１のデータベース内を検索する第１の検索要求と、前記第２のデータベース内を検索する第２の検索要求とを抽出するように構成された抽出モジュールと、
請求項１０ないし１５のいずれかに記載の装置により前記第１の検索要求を使用して前記第１のデータベース内を検索し、前記第２の検索要求を使用して前記第２のデータベース内を検索するように構成された検索モジュールと、
前記第１のデータベースからの第１の検索結果と前記第２のデータベースからの第２の検索結果とに基づいて、前記検索要求に応答するために検索結果を生成するように構成された生成モジュールと
を含む、装置。
【請求項１７】
前記生成モジュールは、
前記第１の検索結果と前記第２の検索結果とを結合して前記検索結果を生成するように構成された結合モジュールを含む、請求項１６に記載の装置。
【請求項１８】
前記検索要求はクライアントからの要求であり、前記生成モジュールは前記データベース・システムに配置される、請求項１６または１７に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の様々な実施形態は、データベース管理に関し、より詳細には、データベース内を検索する方法および装置に関する。
【背景技術】
【０００２】
コンピュータ、データ通信、リアルタイム監視などの技術の発展に伴い、装置監視、生産ライン管理、財務分析などの様々な分野に時系列データベースが適用されてきた。時系列とは、時間的順序で配列された１組の測定値を指し、本発明の文脈では、測定値を格納するノードをデータ点またはデータ・イベントと呼ぶことがある。時系列データベースとは、これらの測定値を格納するためのデータベースを指す。測定値には様々なデータが含まれ得る。例えば、橋の安全を監視する適用環境では、収集されるデータには、特定のセンサによって収集される圧力データまたは圧力強度データあるはその両方が含まれ得る。天気予報の適用環境では、収集されるデータには、気温、湿度、気圧、風力（例えば、風向きと強さ）などが含まれ得る。
【０００３】
類似検索は、時系列データベースにおける重要な動作である。具体的には、類似検索とは、目的部分列に類似した部分列を時系列で検索することを指す。時系列データベースの技術分野では、類似部分列を略してパターンと呼ぶことがある。一般に、時系列は膨大なデータからなり、その時系列は入力測定値によってリアルタイムで絶えず更新され得る。例えば、橋の安全監視の適用環境では、橋上に数万のセンサを配置してそれぞれの位置における圧力をリアルタイムで測定することがある。データベースが１秒ごとまたはそれ以上の頻度で更新されると、膨大なデータが生成されることになる。
【０００４】
なお、類似検索は、目的部分列と完全に一致するパターンを見つける必要はなく、ある程度の相違が含まれてもよい。例えば、エラー限界をｅとする。類似検索によって見つかる部分列は、目的部分列と同じ長さ（例えば長さｍ）を有し、目的部分列との差がｅ以下である。
【０００５】
時系列データベースは複雑な格納構造を有するため、時系列データベース検索の効率はかなり不満足なものである。さらに、時系列データベースは異なるタイプのデータを格納している可能性があるため、あるデータ・タイプに適する検索モードが他のデータ・タイプには必ずしも適さない。したがって、時系列データベース検索の効率をいかにして向上させるかが研究の焦点となる。また、現在、データベース・システムはますます複雑化しており、時系列データベースとリレーショナル・データベースの両方が含まれる場合がある。したがって、異なる種類のデータベースにわたってデータベース・システム内を検索する方法も研究の焦点となる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
したがって、時系列データベースを効率的に検索することが可能な技術的解決法の開発が望まれる。また、その技術的解決法は、データベース・システムの効率を向上させるように、時系列データベースの特性と、異なる検索アルゴリズムに基づく時系列データベースの検索とを考慮可能であることが望まれる。
【課題を解決するための手段】
【０００７】
本発明の一実施形態では、データベース内を検索する方法であって、データベース内を検索する検索要求を受け取るとそれに応答して、検索要求から上記データベース内を検索するための条件を抽出することと、上記データベースで行われた過去の検索の履歴統計データに基づいて、上記データベースに登録された複数の検索アルゴリズムから上記条件に合致する検索アルゴリズム選択することと、上記検索アルゴリズムを使用して上記データベースから検索結果を取得することとを含み、上記データベースは時系列データベースである、方法が提供される。
【０００８】
本発明の一実施形態では、データベース内を検索するための装置であって、データベース内を検索する検索要求を受け取るとそれに応答して、上記検索要求から上記データベース内を検索するための条件を抽出するように構成された抽出モジュールと、上記データベースで行われた過去の検索の履歴統計データに基づいて、上記データベースに登録された複数の検索アルゴリズムから上記条件に合致する検索アルゴリズムを選択するように構成された選択モジュールと、上記検索アルゴリズムを使用して上記データベースから検索結果を取得するように構成された取得モジュールとを含み、上記データベースは時系列データベースである装置が提供される。
【０００９】
また、複数種類のデータベースを含むデータベース・システムにおいて検索することが可能な技術的解決法の開発が望まれる。具体的には、その技術的解決法は、データベース・システムの既存の検索方法と両立し得ることが望まれるとともに、データベース・システムが複数種類のデータベースにわたる検索動作を行い、検索結果をクライアントに返すように、ユーザ透過的な方式でクライアントからの検索要求に応答することが望ましい。
【００１０】
本発明の一実施形態では、データベース・システム内を検索する方法であって、上記データベース・システムは、時系列データベースである第１のデータベースと、リレーショナル・データベースである第２のデータベースとを含み、上記方法は、検索要求を受け取るとそれに応答して、上記検索要求から、上記第１のデータベース内を検索する第１の検索要求と、上記第２のデータベース内を検索する第２の検索要求とを抽出することと、本発明による方法により上記第１の検索要求を使用して上記第１のデータベース内を検索し、上記第２の検索要求を使用して上記第２のデータベース内を検索することと、上記第１のデータベースからの第１の検索結果と上記第２のデータベースからの第２の検索結果とに基づいて、上記検索要求に応答するために検索結果を生成することとを含む方法が提供される。
【００１１】
本発明の一実施形態では、データベース・システム内を検索するための装置であって、上記データベース・システムは、時系列データベースである第１のデータベースと、リレーショナル・データベースである第２のデータベースとを含み、上記装置は、検索要求を受け取るとそれに応答して、上記検索要求から、上記第１のデータベース内を検索する第１の検索要求と、上記第２のデータベース内を検索する第２の検索要求とを抽出するように構成された抽出モジュールと、本発明による装置により上記第１の検索要求を使用して上記第１のデータベース内を検索し、上記第２の検索要求を使用して上記第２のデータベース内を検索するように構成された検索モジュールと、上記第１のデータベースからの第１の検索結果と上記第２のデータベースからの第２の検索結果とに基づいて、上記検索要求に応答するために検索結果を生成するように構成された生成モジュールとを含む装置が提供される。
【００１２】
本発明の方法および装置により、時系列データベースの特性を考慮するとともに異なる検索アルゴリズムに基づいて、時系列データベースで検索を行うことができる。また、様々な種類のデータベースを含むデータベース・システムを検索する必要がある場合、ユーザはデータベース・システム内の様々な種類のデータベースの相互関係の詳細について意識する必要がなく、データベース・システムに検索要求を出すだけでデータベースから検索結果を取得することができる。
【００１３】
添付図面における本開示のいくつかの実施形態のより詳細な説明から、本開示の上記およびその他の目的、特徴および利点が明らかになるであろう。本開示では同じ参照番号は概して本開示の実施形態における同一の構成要素を指す。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態を実施するために適用可能な例示のコンピュータ・システム／サーバを概略的に示す図である。
【図２】本発明の一実施形態によるクラウド・コンピューティング環境を概略的に示す図である。
【図３】本発明の一実施形態による抽象モデル層を概略的に示す図である。
【図４】時系列データベースにおいて目的部分列に類似したパターンを検索する処理を概略的に示す図である。
【図５】本発明の一実施形態によるデータベース内を検索する方法のフローチャートを概略的に示す図である。
【図６】本発明の一実施形態による履歴統計データ形成処理のブロック図を概略的に示す図である
【図７】本発明の一実施形態による形成された履歴統計データのブロック図を概略的に示す図である。
【図８】一技術的解決法による異なる種類のデータベースにわたる検索処理のアーキテクチャ図を概略的に示す図である。
【図９】本発明の一実施形態による異なる種類のデータベースを含むデータベース・システムにおける検索のための技術的解決法のアーキテクチャ図を概略的に示す図である。
【図１０】本発明の一実施形態によるデータベース・システムにおける検索方法のフローチャートを概略的に示す図である。
【図１１】本発明の一実施形態によるデータベース内を検索するための装置のブロック図を概略的に示す図である。
【図１２】本発明の一実施形態によるデータベース・システム内を検索するための装置のブロック図を概略的に示す図である。
【発明を実施するための形態】
【００１５】
本開示の好適な実施形態が示されている添付図面を参照しながら、いくつかの好適な実施形態についてより詳細に説明する。ただし、本開示は様々な方式で実装可能であり、したがって、本明細書で開示されている実施形態に限定されるものと解釈すべきではない。そうではなく、それらの実施形態は本開示を完全に理解することができるようにし、当業者に本開示の範囲を完全に伝えるために提供されている。
【００１６】
本開示には、クラウド・コンピューティングに関する詳細な説明が含まれているが、本明細書に記載の教示の実装は、クラウド・コンピューティング環境には限定されないものと予め了解されたい。より正確には、本発明の実施形態は、現在知られている、または今後開発される他の任意の種類のコンピューティング環境とともに実装することが可能である。
【００１７】
クラウド・コンピューティングは、最小限の管理労力またはサービスの提供者との相互連絡で迅速にプロビジョニングと解放とが可能な、構成可能コンピューティング資源（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス）の共用プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするサービス配布のモデルである。このクラウド・モデルには、少なくとも５つの特徴と、少なくとも３つのサービス・モデルと、少なくとも４つの導入モデルとが含まれ得る。
特性は以下の通りである。
【００１８】
オンデマンド・セルフサービス：クラウド利用者は、サービスの提供者との対人的なやり取りを必要とせずに、必要に応じて自動的にサーバ時間およびネットワーク・ストレージなどのコンピューティング機能を単独でプロビジョニングすることができる。
【００１９】
幅広いネットワーク・アクセス：機能はネットワークを介して利用可能であり、異種シン・クライアント・プラットフォームまたはシック・クライアント・プラットフォーム（例えば携帯電話、ラップトップ、ＰＤＡなど）による使用を容易にする標準機構を介してアクセス可能である。
【００２０】
資源のプール：マルチテナント・モデルを使用して複数の利用者に対応するために提供者のコンピューティング資源がプールされ、異なる物理資源および仮想資源が需要に応じて動的に割り当てられ、再割り当てされる。利用者は一般に、提供される資源の厳密な場所に関してはコントロールできず、知ることができないという点で位置独立性があるが、より高い抽象レベル（例えば、国、州またはデータセンタ）では場所を指定することができる場合がある。
【００２１】
迅速な弾力性：迅速にスケールアウトするために機能を迅速かつ弾力的に、場合によっては自動的にプロビジョニングすることができ、迅速にスケールインするため迅速に機能を迅速に解放することができる。利用者にとっては、プロビジョニングのために利用可能な機能が無制限であるように見えることが多く、いつでも好きなだけ購入することができる。
【００２２】
計測されたサービス：クラウド・システムは、サービスの種類（例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント）にとって適切な何らかの抽象レベルで計量機能を利用することによって、資源の使用を自動的に制御し、最適化する。資源の利用状況を監視、制御および報告することができ、利用されたサービスの提供者と利用者の双方に透明性が与えられる。
サービス・モデルは以下の通りである。
【００２３】
サービス型ソフトウェア（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ：ＳａａＳ）：利用者に提供される機能は、クラウド・インフラストラクチャ上で動作する提供者のアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である（例えばウェブ・メール）。限定的なユーザ固有のアプリケーション構成設定という考えられる例外を除き、利用者はネットワーク、サーバ、オペレーティング・システム、ストレージまたは個別のアプリケーション機能まで含む、基礎をなすクラウド・インフラストラクチャを管理も制御もしない。
【００２４】
サービス型プラットフォーム（Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ：PａａＳ）：利用者に提供される機能は、提供者がサポートするプログラミング言語およびツールを使用して作成された利用者作成または取得アプリケーションを、クラウド・インフラストラクチャ上に導入することである。利用者は、ネットワーク、サーバ、オペレーティング・システムまたはストレージを含む基礎をなすクラウド・インフラストラクチャを管理も制御もしないが、導入されたアプリケーションと、場合によっては環境構成を動作させるアプリケーションとを制御する。
【００２５】
サービス型インフラストラクチャ（Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ：  ＩａａＳ）：利用者に提供される機能は、処理、ストレージ、ネットワークおよびその他の基本コンピューティング資源をプロビジョニングすることであり、利用者は、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを導入し、実行することができる。利用者は、基礎をなすクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システム、ストレージ、導入されたアプリケーションを制御し、場合によっては選択ネットワーキング構成要素（例えばホスト・ファイアウォール）を限定的に制御する。
導入モデルは以下の通りである。
【００２６】
プライベート・クラウド：クラウド・インフラストラクチャは、１つの組織専用に運営される。クラウド・インフラストラクチャは、その組織または第三者によって管理されることができ、構内または構外に存在し得る。
【００２７】
コミュニティ・クラウド：クラウド・インフラストラクチャは、いくつかの組織によって共用され、共通の関心事（例えば、任務、セキュリティ要件、方針、およびコンプライアンス上の考慮事項）を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、それらの組織または第三者によって管理されることができ、構内または構外に存在し得る。
【００２８】
パブリック・クラウド：クラウド・インフラストラクチャは、公衆または大企業グループに提供可能であり、クラウド・サービスを販売する組織によって所有される。
【００２９】
ハイブリッド・クラウド：クラウド・インフラストラクチャは、固有の実体を維持しつつ、データおよびアプリケーション可搬性を可能にする標準技術または専有技術（例えば、クラウド間のロード・バランシングのためのクラウド・バースティング）によって結合された、２つ以上のクラウド（例えば、プライベート、コミュニティまたはパブリック）の複合である。
【００３０】
クラウド・コンピューティング環境は、ステートレス性、疎結合、モジュール性および意味論的相互運用性に重点を置いたサービス指向型環境である。クラウド・コンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【００３１】
次に図１を参照すると、クラウド・コンピューティング・ノードの一例の概略図が示されている。クラウド・コンピューティング・ノード１０は、適合するクラウド・コンピューティング・ノードの一例に過ぎず、本明細書で説明する本発明の実施形態の使用または機能の範囲に関する限定を示唆することを意図したものではない。なお、クラウド・コンピューティング・ノード１０は上記の機能のいずれも実装または実行あるいはその両方が可能である。
【００３２】
クラウド・コンピューティング・ノード１０には、多くの他の汎用または専用コンピューティング・システム環境または構成で動作可能なコンピュータ・システム／サーバ１２がある。コンピュータ・システム／サーバ１２とともに使用するのに適し得る周知のコンピューティング・システムまたは環境または構成あるいはこれらの組合せの例としては、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル大衆消費電子製品、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、およびこれらのシステムまたはデバイスなどを含む分散クラウド・コンピューティング環境が含まれるが、これらには限定されない。
【００３３】
コンピュータ・システム／サーバ１２は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する、または特定の抽象データ・タイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含み得る。コンピュータ・システム／サーバ１２は、通信ネットワークを介して接続されたリモート処理デバイスによってタスクが実行される、分散クラウド・コンピューティング環境で実施可能である。分散クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ記憶デバイスを含むローカルとリモートの両方のコンピュータ・システム記憶媒体に格納することができる。
【００３４】
図１に示すように、クラウド・コンピューティング・ノード１０におけるコンピュータ・システム／サーバ１２は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム／サーバ１２の構成要素は、１つまたは複数のプロセッサまたは処理ユニット１６と、システム・メモリ２８と、システム・メモリ２８を含む様々なシステム構成要素をプロセッサ１６に結合するバス１８とを含み得るが、これらには限定されない。
【００３５】
バス１８は、様々なバス・アーキテクチャのうちのいずれかを使用したメモリ・バスまたはメモリ・コントローラ、周辺機器用バス、アクセラレーテッド・グラフィクス・ポートおよびプロセッサまたはローカル・バスを含む、任意の数種類のバス構造のうちの１つまたは複数を示す。例として、そのようなアーキテクチャは、インダストリアル・スタンダード・アーキテクチャ（Ｉｎｄｕｓｔｒｉａｌ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ：ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（Ｍｉｃｒｏ  ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ：ＭＣＡ）バス、エンハンスト（Ｅｎｈａｎｃｅｄ）ＩＳＡ（ＥＩＳＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ：ＶＥＳＡ）ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バスを含むが、これらには限定されない。
【００３６】
コンピュータ・システム／サーバ１２は、典型的には、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム／サーバ１２がアクセス可能な任意の利用可能な媒体とすることができ、揮発性と不揮発性の両方の媒体、取り外し可能型と取り外し不能型の両方の媒体を含む。
【００３７】
システム・メモリ２８は、ランダム・アクセス・メモリ（ＲＡＭ）３０またはキャッシュ・メモリ３２あるいはその両方などの、揮発性メモリの形態のコンピュータ・システム可読媒体を含み得る。コンピュータ・システム／サーバ１２は、他の取り外し可能型／取り外し不能型、揮発性／不揮発性コンピュータ・システム記憶媒体をさらに含み得る。一例に過ぎないが、ストレージ・システム３４は、取り外し不能不揮発性磁気媒体（図示せず。典型的には「ハード・ドライブ」と呼ばれる）との間での読み書きのために設けることができる。図示されていないが、取り外し可能不揮発性磁気ディスク（例えば「フロッピー（Ｒ）・ディスク」）との間での読み書きのための磁気ディスク・ドライブ、および、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭまたはその他の光媒体などの取り外し可能不揮発性光ディスクとの間での読み書きのための光ディスク・ドライブを設けることができる。そのような場合、１つまたは複数のデータ媒体インターフェースによってそれぞれをバス１８に接続することができる。以下でさらに図示し、説明するように、メモリ２８は、本発明の実施形態の機能を実行するように構成された１組（少なくとも１つ）のプログラム・モジュールを有する少なくとも１つのプログラム製品を含むことができる。
【００３８】
１組（少なくとも１つ）のプログラム・モジュール４２を有するプログラム／ユーティリティ４０が、オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュールおよびプログラム・データとともに、例えばメモリ２８に格納され得るが、これには限定されない。オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データ、またはこれらの何らかの組合せのそれぞれは、ネットワーキング環境の実装形態を含み得る。プログラム・モジュール４２は、一般に、本明細書に記載の本発明の実施形態の機能または方法あるいはその両方を実行する。
【００３９】
コンピュータ・システム／サーバ１２は、キーボード、ポインティング・デバイス、ディスプレイ２４などの１つまたは複数の外部デバイス１４、またはユーザがコンピュータ・システム／サーバ１２と通信することを可能にする１つまたは複数のデバイス、またはコンピュータ・システム／サーバ１２が１つまたは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス、あるいはこれらの組合せと通信することができる。そのよう通信は、入出力（Ｉ／Ｏ）インターフェース２２を介して行うことができる。さらに、コンピュータ・システム／サーバ１２は、ネットワーク・アダプタ２０を介して、ローカル・エリア・ネットワーク（ＬＡＮ）、一般のワイド・エリア・ネットワーク（ＷＡＮ）、またはパブリック・ネットワーク（例えばインターネット）あるいはこれらの組合せと通信することができる。図のように、ネットワーク・アダプタ２０は、バス１８を介してコンピュータ・システム／サーバ１２の他の構成要素と通信する。なお、図示はされていないが、当然ながら他のハードウェアまたはソフトウェアあるいはその両方の構成要素をコンピュータ・システム／サーバ１２とともに使用し得る。例としては、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイバル・ストレージ・システムなどがあるがこれらには限定されない。
【００４０】
次に図２を参照すると、例示のクラウド・コンピューティング環境５０が示されている。図のように、クラウド・コンピューティング環境５０は、クラウド利用者が使用するローカル・コンピューティング・デバイスが通信することができる１つまたは複数のクラウド・コンピューティング・ノード１０を含む。ローカル・コンピューティング・デバイスは、例えば、携帯情報端末（ＰＤＡ）もしくは携帯電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃまたは自動車コンピュータ・システム５４Ｎあるいはこれらの組合せとすることができる。ノード１０は互いに通信することができる。ノード１０は、上述のプライベート、コミュニティ、パブリックまたはハイブリッド・クラウドあるいはこれらの組合せのなどの１つまたは複数のネットワークにおいて物理的または仮想的にグループ化（図示せず）されてもよい。これにより、クラウド・コンピューティング環境５０は、インフラストラクチャ、プラットフォームまたはソフトウェアあるいはこれらの組合せを、クラウド利用者がそのためにローカル・コンピューティング・デバイス上で資源を維持する必要がないサービスとして提供することができる。当然ながら、図２に示す種類のコンピューティング・デバイス５４Ａないし５４Ｎは例示として示したものに過ぎず、コンピューティング・ノード１０およびクラウド・コンピューティング環境５０は、（例えばウェブ・ブラウザを使用して）任意の種類のネットワークまたはネットワーク・アドレス指定可能接続あるいはその両方を介して任意の種類のコンピュータ化デバイスと通信可能である。
【００４１】
次に図３を参照すると、クラウド・コンピューティング環境５０（図２）によって提供される１組の機能抽象層が示されている。図３に示す構成要素、層、および機能は例示を意図したに過ぎず、本発明の実施形態はこれらには限定されないことを予め了解されたい。図のように、以下の層および対応する機能が提供される。
【００４２】
ハードウェアおよびソフトウェア層６０は、ハードウェアおよびソフトウェア構成要素を含む。ハードウェア構成要素の例としては、メインフレーム（例えばＩＢＭ（Ｒ）ｚＳｅｒｉｅｓ（Ｒ）システム）、ＲＩＳＣ（縮小命令セット・コンピュータ）アーキテクチャに基づくサーバ（例えばＩＢＭ  ｐＳｅｒｉｅｓ（Ｒ）システム）、ＩＢＭ  ｘＳｅｒｉｅｓ（Ｒ）システム、ＩＢＭ  ＢｌａｄｅＣｅｎｔｅｒ（Ｒ）システム、記憶デバイス、ネットワークおよびネットワーキング構成要素などがある。ソフトウェア構成要素の例としては、ネットワーク・アプリケーション・サーバ・ソフトウェア（例えばＩＢＭ  ＷｅｂＳｐｈｅｒｅ（Ｒ）アプリケーション・サーバ・ソフトウェア）、およびデータベース・ソフトウェア（例えばＩＢＭ  ＤＢ２（Ｒ）データベース・ソフトウェア）などがある。（ＩＢＭ、ｚＳｅｒｉｅｓ、ｐＳｅｒｉｅｓ、ｘＳｅｒｉｅｓ、ＢｌａｄｅＣｅｎｔｅｒ、ＷｅｂＳｐｈｅｒｅおよびＤＢ２は、世界の多くの管轄区で登録されたインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。）
【００４３】
仮想化層６２は、以下の仮想実体の例を提供することができる抽象層を提供する。仮想実体の例としては、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む、仮想ネットワーク、仮想アプリケーションならびにオペレーティング・システム、および仮想クライアントなどがある。
【００４４】
一実施形態では、管理層６４が以下に述べる機能を提供することができる。資源プロビジョニングは、クラウド・コンピューティング環境内でタスクを実行するために使用されるコンピューティング資源およびその他の資源の動的な調達を行う。計量および料金設定は、クラウド・コンピューティング環境内で資源が使用される際のコスト追跡と、それらの資源の消費に対する課金または請求とを行う。一実施形態では、これらの資源はアプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティは、クラウド利用者の本人認証と、データおよびその他の資源の保護とを行う。ユーザ・ポータルは、利用者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理は、必要なサービス・レベルが満たされるように、クラウド・コンピューティング資源割り当ておよび管理を行う。サービス・レベル・アグリーメント（ＳＬＡ）立案および履行は、ＳＬＡに従って将来の要件が予測されるクラウド・コンピューティング資源の事前取り決めおよび調達を行う。
【００４５】
ワークロード層６６は、クラウド・コンピューティング環境を使用することができる対象機能の例を提供する。この層から提供され得るワークロードおよび機能の例としては、マッピングならびにナビゲーション、ソフトウェア開発ならびにライフサイクル管理、仮想教室授業配信、データ分析処理、トランザクション処理、およびデータベース管理がある。
【００４６】
本発明の一実施形態では、クラウド・コンピューティング環境におけるデータベース・システムのクライアントに対してより豊富な機能を便利に提供するように、本発明の様々な実施形態によるデータベース・システム検索方法をワークロード層６６で実装することができる。具体的には、本発明の実施形態は、クライアントにとって透過的な方式で実装することができる。すなわち、データベース・システムのユーザは、従来の構造化照会言語（ＳＱＬ）のクエリ・ステートメントに類似した手法を使用して、時系列データベース内で検索することができ、さらにリレーショナル・データベースと時系列データベースとを含むデータベース・システム内で検索することができる。
【００４７】
なお、クラウド・コンピューティング環境の発展に伴い、既存のデータベース・システムはクラウド・コンピューティング環境におけるノードとなる。したがって、本発明に記載のデータベース・システムで検索するための技術的解決法は、既存のデータベース・システムには限定されず、さらにクラウド・コンピューティング環境におけるノードにおいても実装可能である。
【００４８】
図４に、時系列データベースで目的部分列に類似したパターンを検索する処理の概略図４００を示す。図４は、時系列データベースにおける時系列配列４２０を示し、参照番号４１０は類似検索に関係する目的部分列を示す。この文脈では、類似検索とは時系列４２０内で目的部分列４１０に類似する部分列を検索することを指す。例えば、返されるパターンは、それぞれ部分列Ａ、部分列Ｂおよび部分列Ｃとして示す３つの部分列を含み得る。図４に示す時系列４２０の長さはかなり短いため、検索結果は３つのパターンしか返さない。より大きな、または非常に大きな時系列における検索（例えば、５年分の気象データを含む時系列データベースにおける特定のクエリ配列の検索）の場合、数万件の候補部分列が返される可能性がある。
【００４９】
従来技術において時系列データベース内の検索のための様々な技術的解決法が提案されているが、それらの技術的解決法は、検索要求における検索条件が検索効率に与える影響を考慮せずに同一の検索モードを使用している。本発明の実施形態では、検索要求における検索条件に基づいてより適合する検索アルゴリズムを選択することによって検索効率を大幅に向上させる技術的解決法を提案する。
【００５０】
具体的には、本発明の一実施形態では、データベース内を検索する方法であって、データベース内を検索する検索要求を受け取るとそれに応答して、検索要求からデータベース内を検索する条件を抽出することと、データベースで実行された過去の検索の履歴統計データに基づいて、データベースに登録されている複数の検索アルゴリズムからその条件に合致する検索アルゴリズムを選択することと、その検索アルゴリズムを使用してデータベースから検索結果を取得することとを含み、データベースは時系列データベースである、方法が提供される。
【００５１】
具体的には、図５に本発明の一実施形態による検索方法のフローチャートを示す。ステップＳ５０２で、データベース内を検索する検索要求を受け取るとそれに応答して、検索要求からデータベースで検索する条件が抽出される。本発明の様々な実施形態では、データベースは時系列データベースである。当業者は、ここで言及している検索条件が、類似検索を行う場合の目的部分列（例えば図４で参照している目的部分列４１０）であってよいことがわかるであろう。時系列データベースの特定の適用環境によると、この条件は異なる意味を有し得る。例えば、病院における患者の心電図（ＥＣＧ）を格納する時系列データベースでは、心電図に所定の危険波形が現れている患者を見つけたい場合、検索条件は「所定の危険波形が現れている」とすることができる。
【００５２】
ステップＳ５０４で、データベースで実行された過去の検索の履歴統計データに基づいて、データベースに登録されている複数の検索アルゴリズムから条件に合致する検索アルゴリズムが選択される。時系列データベースに格納されている異なるデータ・タイプに基づいて検索処理を高速化するために異なる種類の検索アルゴリズムを使用することができることが、当業者ならわかるであろう。例えばＥＣＧデータは所定のサンプリング周波数で収集される心拍に関するデータである。心拍データは周期特性を有するため、各心拍に関連付けられた部分列は特定の類似性を有する可能性がある。別の例として、橋の安全を監視する適用環境では、橋面の圧力データも所定のサンプリング周波数で収集されるが、橋面の圧力は収集時の橋面上の車両の速度および荷重などの要因に関係しているため、収集される時系列は周期特性を有しない可能性がある。したがって、特定の種類の時系列データベースにおける検索のための検索条件に基づいて検索アルゴリズムを選択することによって、検索効率の向上を補助することができる。
【００５３】
このステップでは、データベースで実行された過去の検索の履歴統計データに基づいて、条件に合致する検索アルゴリズムをデータベースに登録されている複数の検索アルゴリズムから選択することができる。具体的には、現在の検索条件に最適な検索アルゴリズムを選択するために、データベースで以前に検索を行ったときに異なる検索条件に関連付けられて記録された過去の検索の履歴統計データを考慮に入れることができる。具体的には、時系列データベースにおいては様々な検索アルゴリズムがあり得、履歴統計データはここでは検索条件と複数の検索アルゴリズムとの関連付けを記録することができる。
【００５４】
ステップＳ５０６で、検索アルゴリズムを使用してデータベースから検索結果が取得される。本発明の本実施形態によると、複数の検索アルゴリズムを使用して時系列データベース内を検索する場合、検索効率を向上させるように、異なる検索条件に基づいて対応する検索アルゴリズムを選択することができる。したがって、各検索について、その検索のためにより適切な検索アルゴリズムを選択することができる。
【００５５】
本発明の一実施形態では、履歴統計データは、複数の検索アルゴリズムのうちの様々な検索アルゴリズムを使用したデータベース内の検索の対応する効率に関連付けられる。データベースで行われた過去の複数の検索の効率を記録することができ、記録された効率に基づいて、現在の検索を支援するためにどの検索アルゴリズムを使用するかを判断することができる。本発明の一実施形態では、データベース・システムは複数の検索アルゴリズムを備えることができ、例えば、ユークリッド距離（ＥＤ）に基づく検索アルゴリズムを含むことができ、またはＬＣＳＳ方式の検索アルゴリズム、ＤＴＷ方式の検索アルゴリズムなどをさらに含み得る。当業者は、データベースにおける過去の検索時に使用されている様々な検索アルゴリズムの効率に基づいて、現在の検索条件に最適な検索アルゴリズムを選択することができる。
【００５６】
本発明の一実施形態では、履歴統計データは、様々な検索アルゴリズムを使用したデータベースのテーブル内の検索の効率にさらに関連付けられる。なお、検索効率は、検索が行われるデータ・テーブルにさらに関連する。例えば、データベースは複数のデータ・テーブルを含むことができ、テーブル１はＥＣＧデータを格納し、テーブル２は橋面圧力データを格納する。本実施形態では、履歴統計データを検索アルゴリズムと（データ・テーブル検索が行われる）検索オブジェクトとに関連付けることができるため、履歴統計データは２個組（アルゴリズム、検索オブジェクト）を使用して識別することができる。例えば、テーブル１でクエリを行う場合に履歴データがＥＤ方式の検索アルゴリズムを使用することがより効率的であることを示している場合、ＥＤ方式の検索アルゴリズムをテーブル１での検索時に優先されるアルゴリズムとして推奨することができる。
【００５７】
本発明の一実施形態では、効率は時間オーバーヘッドを含み、時間オーバーヘッドは検索結果の部分列における１つの時点を返す時間オーバーヘッドを表し、データベースで実行された過去の検索の履歴統計データに基づいて、データベースに登録された複数の検索アルゴリズムから条件に合致する検索アルゴリズムを選択することは、時間オーバーヘッドが最小の検索アルゴリズムを現在の検索アルゴリズムとして選択することを含む。
【００５８】
なお、検索の効率はデータベース・システムのパフォーマンスを計測する重要な要素の１つである。したがって、本実施形態では、時間オーバーヘッドが検索パフォーマンスに与える影響を第１の考慮事項とする。従来のリレーショナル・データベースと異なり、時系列データベースで検索を行う場合、返されるのは単一の値ではなく目的部分列と一致する１つまたは複数の（例えば長さｍの）パターンである。時系列データベースで類似検索を行う場合、目的部分列の長さは時系列データベースの応答時間に影響を与える重要な要素の１つである。
【００５９】
したがって、時系列データベースの応答時間を測定する場合、異なる検索アルゴリズムを使用してパターンを返す時間のみを比較し、目的部分列の長さを考慮しない場合、その時間は検索アルゴリズムの効率を有効に計測することができない。したがって、さらに検索結果の部分列における１つの時点を返す時間オーバーヘッドを計算する必要がある。具体的には、前述の例では、データベースでＥＣＧに所定の危険波形が現れている患者を検索する場合、データベースの応答時間は１秒であり、危険波形の長さは２０であり（すなわち２０個の時点を含む）、本発明の本実施形態によるこの時点の時間オーバーヘッド＝１秒／２０＝０．０５秒である。
【００６０】
なお、時間オーバーヘッドが少ないほど、対応する検索アルゴリズムを使用して対応するデータ・テーブル内を検索する効率が高い。したがって、時間オーバーヘッドが最小の検索アルゴリズムを現在の検索アルゴリズムとして選択してよい。
【００６１】
本発明の一実施形態では、効率は枝刈り率を含み、枝刈り率は、現在の検索アルゴリズムに基づいてデータベースから返された候補部分列の数に対する検索結果内の部分列の数の割合を表し、データベースで実行された過去の検索の履歴統計データに基づいて、データベースに登録された複数の検索アルゴリズムから条件に合致する検索アルゴリズムを選択することは、枝刈り率が最大の検索アルゴリズムを現在の検索アルゴリズムとして選択することを含む。
【００６２】
なお、これまでに様々な検索アルゴリズムが開発されている。それらの検索アルゴリズムはより正確な候補部分列を出力することができるが、それらの検索アルゴリズムによって出力される候補部分列の集合は通常、検索条件を満たす部分列よりも大きく、目的部分列と実際に一致する部分列の集合の上位集合である。したがって、検索アルゴリズムによって返される候補部分列の集合を検索結果として直接使用することはできず、さらに検証にかける必要がある。
【００６３】
本実施形態では、現在の検索アルゴリズムに基づいてデータベースから返された候補部分列の数に対する検索結果の部分列の数（すなわち、検索条件を実際に満たすパターン）の割合を、枝刈り率と呼ぶことができる。検索アルゴリズムによって返される候補部分列の集合は、クエリ条件を満たすパターンのみが返されていることを保証するためにさらなる検証にかけられるため、追加の時間オーバーヘッドを必要とする。したがって、枝刈り率の値はデータベースの応答時間に間接的に影響を与えることになる。
【００６４】
枝刈り率が高いほど、追加の検証に必要な時間が少なく、その逆も同様である。したがって、枝刈り率が最も高い検索アルゴリズムを現在の検索アルゴリズムとして選択してよい。
【００６５】
図６および図７を参照しながら、適切な検索アルゴリズムをどのようにして選択するかを以下で詳細に説明する。図６は、本発明の一実施形態による履歴統計データを形成する処理のブロック図６００Ａを概略的に示す。図６に示すように、データベース内のデータ・テーブルに対して行われた過去の検索の効率の統計データは２次元空間である。図６は、検索アルゴリズム（例えばアルゴリズム２）を使用して時系列データベースのデータ・テーブル（例えばデータ・テーブル１）に対して行われた過去の複数の検索の統計データを示す。本図に示すように、横軸は枝刈り率を表し、縦軸は時間オーバーヘッドを表し、灰色の背景内の各黒点は、過去の１つのクエリに関連付けられた統計データを表す。
【００６６】
本実施形態では、ほとんどの黒点（例えば８０％）を含む領域を、検索アルゴリズム２とデータ・テーブル１とに関連付けられた履歴統計データとして使用することができる。図６を参照して具体的ステップからわかるように、ブロック６１０Ａで示されている領域が２個組（アルゴリズム２、テーブル１）に関連付けられた履歴統計データである。当業者は、上述の方法を使用して、異なる検索アルゴリズムと異なるデータ・テーブルとによって構成された２個組から、対応する履歴統計データを求めることができる。
【００６７】
図７に、本発明の一実施形態により形成された履歴統計データのブロック図６００Ｂを概略的に示す。具体的には、ブロック６１０Ｂは２個組（アルゴリズム２、テーブル１）に関連付けられた履歴統計データを示し、ブロック６２０Ｂは２個組（アルゴリズム１、テーブル１）に関連付けられた履歴統計データを示し、ブロック６３０Ｂは２個組（アルゴリズム１、テーブル２）に関連付けられた履歴統計データを示す。図７に示すような履歴統計データがある場合、図７に基づいて適切な検索アルゴリズムを選択することができる。
【００６８】
上記のように、時間オーバーヘッドと枝刈り率とは、検索アルゴリズムの適合度を計測するための２つのパラメータである。したがって、１つのデータ・テーブル内の検索に使用される検索アルゴリズムが複数ある場合、図７に示すブロックのうち、図の右下により近い検索アルゴリズム（すなわち、時間オーバーヘッドが最小であって、枝刈り率が最も高い検索アルゴリズム）を選択すればよい。具体的には、テーブル１内を検索する必要がある場合、ブロック６１０Ｂとブロック６２０Ｂを比較することによってアルゴリズム１が最も効率的であることがわかり、したがってアルゴリズム１を時系列データベースのテーブル１の検索のために選択することができる。
【００６９】
本発明の一実施形態では、検索アルゴリズムを使用してデータベースから検索結果を取得する際に収集される統計情報に基づいて履歴統計データを更新することをさらに含む。
【００７０】
なお、データベースについて実行された各クエリによって関連する履歴統計データを更新してもよい。例えば、現在のクエリを実行する場合、図６に示す方法によって、現在のクエリ時に求められた時間オーバーヘッドと枝刈り率とを使用して関連する履歴統計データを更新してもよい（すなわち、図６に示す図に黒点１個が追加される）。黒点の継続的な増加により、後の検索のためにより多くの履歴サンプルを提供するようにブロック６１０Ａの位置が連続的に変化し得る。
【００７１】
上述の方法により、データベース（すなわち時系列データベース）内の検索の条件に基づいて最適な検索アルゴリズムを選択することができる。なお、このデータベースの検索のための履歴統計データは検索アルゴリズムを選択する際に考慮に入れられ、それによって、データベースに登録された複数のアルゴリズムから条件に最も合致する検索アルゴリズムを選択することができるため、検索効率が大幅に向上する。
【００７２】
また、実際の適用環境では、通常、時系列データベースのみを使用する場合、ユーザの要求を満たすことはできず、時系列データベースを従来のリレーショナル・データベースと併用することによってデータが格納されることに留意されたい。具体的には、病院のデータベース・システムでは、従来のリレーショナル・データベースは患者の基本情報（例えば、ＩＤ、氏名、性別、生年月日など）と医療記録とを格納し、時系列データベースはＥＣＧなどの検査データを格納する。
【００７３】
実際の適用環境では、通常、これらの２種類のデータベース内を検索する必要がある。例えば、医師はデータベース・システムから、ＥＣＧに所定の危険波形（検索条件１）が現れている男性患者（検索条件２）のデータを探したい場合がある。この時、危険波形は類似検索における目的部分列である。現在の技術的解決法では、ユーザは手動で検索する必要がある。既存の技術的解決法は時間と手間がかかることがわかるであろう。したがって、複数種類のデータベースにおけるより効率的な検索方法をいかにして提供するかが重要な問題となる。
【００７４】
当業者は、実際の適用環境では検索条件が多種多様であるため、通常、異なる種類のデータベースにわたって検索を行う必要があることがわかるはずである。具体的には、病院の適用環境では、時系列データベースにおけるデータ・テーブル（例えば下記の表１）を使用してＥＣＧなどの検査データを格納することができ、従来のリレーショナル・データベースにおけるデータ・テーブル（例えば下記の表２）を使用して患者の医療記録と基本情報（例えばＩＤ、氏名、性別、生年月日など）を格納することができる。
【００７５】
表１  ＥＣＧデータ（データ・テーブル：ＥＣＧ＿Ｄａｔａ）
ＩＤ        氏名        ＥＣＧ
110...0001  ボブ        10,20,30,...
110...0010  アリス      15,21,31,...
210...0000  チャーリー  10,20,35,...
...         ...         ...
【００７６】
表２  患者の基本情報（データ・テーブル：Ｐａｔｉｅｎｔ）
ＩＤ        氏名        性別    生年月日    ...
110...0001  ボブ        男性    1980.01.01  ...
110...0010  アリス      女性    1970.01.01  ...
210...0001  チャーリー  男性    1960.10.31  ...
...         ...         ...     ...         ...
【００７７】
ＥＣＧに所定の危険波形（検索条件１）が現れている男性患者（検索条件２）のデータを探したい場合、既存のデータベース・システムはリレーショナル・データベースと時系列データベースとにわたって検索条件を満たす結果の検索に対応していないため、ユーザはこれらの異なる２種類のデータベースから、検索条件１を満たす検索結果と検索条件２を満たす検索結果とを手動で見つけ、検索結果１と検索結果２との共通部分を手動で探す必要がある。
【００７８】
図８に、一技術的解決法による、異なる種類のデータベースにわたる検索処理のブロック図７００を概略的に示す。本図に示すように、時系列データベース７００は、患者のＥＣＧを格納するために表１に示すようなデータ・テーブル「ＥＣＧ＿Ｄａｔａ」を含む。リレーショナル・データベース７２０は、患者の基本情報を格納するために表２に示すようなデータ・テーブル「Ｐａｔｉｅｎｔ」を含む。なお、データ・テーブル「ＥＣＧ＿Ｄａｔａ」は、時系列データベース内のデータ・テーブルであり、データ・テーブル「Ｐａｔｉｅｎｔ」はリレーショナル・データベース内のデータ・テーブルである。
【００７９】
図８に示すように、(矢印Ａ１で示すように)クライアント７３０は第１の条件７１２（ＥＣＧに所定の危険波形が現れている）を使用して時系列データベース７１０内を検索する必要があり、（矢印Ｂ１で示すように）時系列データベース７１０から第１の検索条件７１２を満たす第１の検索結果が取り出される。ボブとアリスのＥＣＧに危険波形が現れているものとすると、この時点で第１の検索結果７３２は２人の患者、ボブとアリスのデータを含む。さらに、クライアント７３０のユーザは、（矢印Ａ２で示すように）第２の条件７２２（男性）を使用してリレーショナル・データベース７２０内を検索し、（矢印Ｂ２で示すように）リレーショナル・データベース７２０から第２の条件７２２を満たす第２の検索結果を取り出す必要がある。この時点で、第２の検索結果７３４は２人の患者、ボブとチャーリーのデータを含む。
【００８０】
次に、クライアント７３０のユーザは、第１の検索結果７３２と第２の検索結果７３４とに基づいて、さらに両方の検索条件を満たす検索結果７３７を見つける必要がある。言い換えると、｛ボブ、チャーリー｝と｛ボブ、アリス｝との共通部分を計算することによって、両方の検索条件を満たす患者がボブであることがわかる。
【００８１】
図８に示す技術的解決法からわかるように、既存のデータベース・システムは複数種類のデータベースにわたる検索に対応していないため、クライアント７３０のユーザは多大な手動操作を行う必要がある。この時、ユーザの作業はかなり退屈な重作業となる。
【００８２】
したがって、データベース・システムが複数種類のデータベースにわたる検索を自動的に行う技術的解決法を提供することが望まれる。また、ユーザが、データベース・システムがサポートする形式（例えばＳＱＬに類似した形式）に従ってデータベース・システムに検索要求を出すだけで、データベース・システムから検索条件を満たす検索結果を取得することができることが望まれる。
【００８３】
上記の既存の技術的解決法の欠点に鑑み、本発明の一実施形態は、データベース・システム内の検索方法であって、データベース・システムは時系列データベースである第１のデータベースと、リレーショナル・データベースである第２のデータベースとを含み、方法は、検索要求を受け取るとそれに応答して、検索要求から第１のデータベース内を検索する第１の検索要求と第２のデータベース内を検索する第２の検索要求とを抽出することと、本発明による方法により、第１の検索要求を使用して第１のデータベース内を検索し、第２の検索要求を使用して第２のデータベース内を検索することと、第１のデータベースからの第１の検索結果と第２のデータベースからの第２の検索結果とに基づいて、検索要求に応答するために検索結果を生成することとを含む方法を提案する。
【００８４】
図９に、本発明の一実施形態によるデータベース・システム内の検索のための技術的解決法のアーキテクチャ図８００を概略的に示す。本発明の原理は、複数種類のデータベースの相互関係の詳細を知る必要なしにユーザがデータベース・システムから所望の検索結果を取得するのを支援するように、複数種類のデータベースにわたって検索を行うための技術的解決法を提供することである。
【００８５】
具体的には、図９に示すように、データベース・システム８４０が複数種類のデータベース、すなわち時系列データベース８１０とリレーショナル・データベース８２０とを含む。本発明の本実施形態によると、クライアント８３０のユーザは異なる種類のデータベース内の手動検索を行う必要がなく、（矢印Ｃで示すように）データベース・システム８４０に特定の形式要件を満たす検索要求を渡すだけで、（矢印Ｄで示すように）データベース・システム８４０から所望の検索結果を取得することができる。
【００８６】
本実施形態では、（矢印Ｃ１およびＣ２で示すように）データベース・システム８４０内の時系列データベース８１０とリレーショナル・データベース８２０とでそれぞれ検索が行われ、この時、２つのデータベースに使用される検索条件は、クライアント８３０からの検索要求から抽出された条件である。その後、時系列データベース８１０とリレーショナル・データベース８２０とからそれぞれ第１の検索結果８３２と第２の検索結果８３４とが取得された後、クライアント８３０からの検索要求を満たす検索結果を生成するようにその２つの検索結果がデータベース・システム８４０内で組み合わされる。次に、(矢印Ｄで示すように)データベース・システム８４０からクライアント８３０に検索結果が返される。
【００８７】
なお、第２のデータベースはリレーショナル・データベースであり、したがって、既存の様々な検索方法を使用してリレーショナル・データベース内で検索を行うことができる。第１のデータベースは時系列データベースである。時系列データベースでの検索効率を向上させるため、上述の方法、すなわち、第１のデータベースのための検索条件に基づいて（図９の参照番号８２２で示すように）検索アルゴリズムを選択し、検索するための技術的解決法を、本発明の文脈全体を通して採用することができる。
【００８８】
図９に示す技術的解決法により、データベース・システム８４０はクライアント８３０に対して、データベース・システム８４０内の時系列データベース８１０とリレーショナル・データベース８２０との一様な管理を提供する。このようにして、クライアント８３０のユーザの手動操作を大幅に減らすことができる。
【００８９】
本発明の一実施形態では、データベース・システム内を検索する方法が提供され、データベース・システムは、時系列データベースである第１のデータベースと、リレーショナル・データベースである第２のデータベースとを含み、方法は、ステップＳ９０２で検索要求を受け取るとそれに応答して、検索要求から第１のデータベース内を検索する第１の検索要求と第２のデータベース内を検索する第２の検索要求とを抽出することを含む。
【００９０】
当業者は、検索要求のデータ形式をカスタマイズすることができ、例えば、従来技術のＳＱＬステートメントに類似した形式を使用してもよい。当業者が採用可能な一形式定義を以下に例示する。
【００９１】
Select id from VT_SearchResult,Patient where patternilke ('10,20…', 0.1) and tstable='ECG_Data'and attribute="ECG" and VT_SearchResult.id=Patient.id and Patient.gender='male'
【００９２】
この検索要求の目的は、ＥＣＧデータ内で目的部分列「10,20…」に類似したパターン（例えばエラー限界が０．１）の男性患者のＩＤを検索することである。当業者には、上記の検索ステートメントが一具体例に過ぎないことがわかるであろう。当業者は、形式定義が第１のデータベースと第２のデータベースの検索条件を明確に定義することができる限りにおいて、特定の適用環境の要件に基づいて他の形式定義を設計してよい。
【００９３】
なお、上記の形式定義は、検索条件の単純な一例を示すに過ぎず、当業者は特定の適用環境の要件に基づいて検索条件を変更することができる。例えば、第２のデータベースで６０歳より上の男性患者のデータを検索するように指定してもよく、ＥＣＧに危険波形が現れており、２０１３年１２月１９日と２０１４年１月１日の間に検査を受けた患者のデータを指定してもよい。この時、検索要求は以下のようであってもよい。
【００９４】
Select id from VT_SearchResult,Patient where patternlike ('10,20…', 0.1) and tstable='ECG_Data'and attribute="ECG" and startts='2013-12-19' and endts='2014-01-01' andVT_SearchResult.id=Patient.id and Patient.gender='male'and Patient.age>60
【００９５】
ステップＳ９０４で、本発明による方法により、第１の検索要求を使用して第１のデータベース内を検索し、第２の検索要求を使用して第２のデータベース内を検索する。具体的には、第１のデータベース内と第２のデータベース内とを検索するように、第１の検索要求と第２の検索要求とからそれぞれ、第１のデータベース内を検索するための第１の条件と第２のデータベース内を検索するための第２の条件とを抽出することができる。
【００９６】
具体的には、第１の条件は第１のデータベース内を検索するための条件である。前述の例では、第１の条件は「ＥＣＧに異常波形が現れている患者」である。したがって、第１の条件であるpatternlike('10,20…', 0.1) and tstable='ECG_Data' and attribute="ECG"を使用して、患者のＥＣＧを格納するための第１のデータベースで対応する患者を見つけることができる。
【００９７】
本実施形態では、patternlike ('10,20…', 0.1)は、目的部分列'10,20…'を含む部分列を時系列データベース内で検索するための関数とすることができる。この関数で、当業者は目的部分列と検索結果との間のエラー限界をカスタマイズすることができる。例えば、エラー限界を０．１と定義することができ、または検索精度の要件に基づいてこれより高いかまたは低いエラー限界を定義することもできる。
【００９８】
なお、検索関数patternlike()は、時系列データベースにおける類似検索のための関数の一例に過ぎない。当業者は、既存または今後開発される様々な類似検索を使用して検索を行ってよく、または特定の適用環境の要件に基づいて他の類似検索関数をさらにカスタマイズしてもよい。前述の例では、第１の条件は、類似検索関数patternlike()を使用して、時系列データベース内のデータ・テーブル「ＥＣＧ＿Ｄａｔａ」の"ECG"フィールドによって記録された時系列の目的部分列に類似したパターンを探すことを意味する。
【００９９】
本実施形態では、第２の条件は第２のデータベース内を検索する条件である。前述の例では、第２の条件は「男性患者」である。したがって、患者の基本情報が格納されている第２のデータベース内で全男性患者を検索するために条件「Patient.gender='male'」を使用することができる。
【０１００】
時系列データベース（すなわち第１のデータベース）内を検索するためのステップについては上記の図５を参照しながら詳述したため、ここでは詳しく説明しない。また、第２のデータベースは従来のリレーショナル・データベースであるため、本実施形態では、以下では詳述しない現在知られているかまたは今後開発される様々な検索アルゴリズムを使用して第２のデータベースで検索を行うことができることが、当業者ならわかるであろう。
【０１０１】
ステップＳ９０６で、第１のデータベースからの第１の検索結果と第２のデータベースからの第２の検索結果に基づいて、検索要求に応答するために検索結果が生成される。第１の検索結果と第２の検索結果とは、検索要求内の異なる検索条件を満たしているため、第１の検索結果と第２の検索結果とに基づいて最終検索結果を取得することができる（例えば、第１の検索結果と第２の検索結果の共通部分を計算することができる）。
【０１０２】
上記の例を続けると、第１の検索結果はＥＣＧにおいて危険波形が現れている患者のデータを含み、第２の検索結果は男性患者のデータを含む。したがって、この２つの検索結果の共通部分は、ＥＣＧに危険波形が現れている男性患者のデータである。
【０１０３】
本発明の一実施形態では、第１のデータベースからの第１の結果と第２のデータベースからの第２の結果とに基づいて、検索要求に応答するために検索結果を生成することは、第１の検索結果と第２の検索結果とを結合して検索結果を生成することを含む。
【０１０４】
ここでの結合動作は、データベースにおける結合動作である。このようにして、第１の検索結果と第２の検索結果の共通部分を求めることができ、最終検索結果として使用することができる。例えば、前述の検索ステートメントでは、「VT_SearchResult.id=Patient.id」が、最終検索結果（すなわちＥＣＧデータに危険波形が表れている男性患者のＩＤ）を取得するために、第１の検索結果VT_SearchResult（時系列データベース内のデータ・テーブルＥＣＧ＿ＤａｔａにおけるＥＣＧデータに危険波形が表れている患者の記録）と第２の検索結果（リレーショナル・データベースのデータ・テーブルＰａｔｉｅｎｔ内の男性患者の記録）を結合する。
【０１０５】
本発明の一実施形態では、検索要求はクライアントからの要求であり、検索結果はデータベース・システムによって生成される。本発明の技術的解決法により、データベース・システム内の異なる種類のデータベースにわたってクエリ動作を行うことができる。ユーザは、従来技術のような複雑な手動操作を行う必要がなく、データベース・システムに形式定義を満たす検索要求を出すだけで、データベース・システムから検索要求を満たす検索結果を取得することができる。
【０１０６】
添付図面を参照しながら、本発明の方法を実装する様々な実施形態について説明した。当業者は、この方法が、ソフトウェア、ハードウェアまたはソフトウェアとハードウェアの組合せで実装可能であることがわかるであろう。また、当業者は、上述の方法のステップを、ソフトウェア、ハードウェアまたはソフトウェアとハードウェアの組合せで実装することによって、同じ発明の概念に基づく装置を提供することができることがわかるであろう。装置が汎用処理デバイスと同じハードウェア構造を有する場合であっても、それに含まれるソフトウェアの機能によって装置に汎用処理デバイスとは区別される特性を示させることにより、本発明の様々な実施形態の装置が構成される。本発明に記載の装置は、いくつかの手段またはモジュールを含み、それらの手段またはモジュールは対応するステップを実行するように構成される。当業者は、本明細書を読めば、これらの手段またはモジュールによって実行される動作を実装するためのプログラムを作成する方法がわかるであろう。この装置は上記の方法と同じ発明の概念に基づくため、同一または対応する実装の詳細が、上記の方法に対応する手段またはモジュールにも適用可能である。上記で詳細かつ包括的な説明を示したため、以下では装置については詳述しない。
【０１０７】
図１１に、データベース内を検索するための装置のブロック図１０００Ａを概略的に示す。具体的には、データベース内を検索するための装置であって、データベース内を検索する検索要求を受け取るとそれに応答して、検索要求からデータベース内を検索するための条件を抽出するように構成された抽出モジュール１０１０Ａと、データベースで行われた過去の検索の履歴統計データに基づいて、データベースに登録された複数の検索アルゴリズムから条件に合致する検索アルゴリズムを選択するように構成された選択モジュール１０２０Ａと、検索アルゴリズムを使用してデータベースから検索結果を取得するように構成された取得モジュール１０３０Ａとを含み、上記データベースは時系列データベースである装置が提供される。
【０１０８】
本発明の一実施形態では、履歴統計データは、複数の検索アルゴリズムのうちの様々な検索アルゴリズムを使用してデータベース内を検索する対応する効率に関連付けられる。
【０１０９】
本発明の一実施形態では、履歴統計データは、様々な検索アルゴリズムを使用してデータベースのテーブル内を検索する効率にさらに関連付けられる。
【０１１０】
本発明の一実施形態では、効率は時間オーバーヘッドを含み、時間オーバーヘッドは、検索結果における部分列内の１つの時点を返す時間オーバーヘッドを表し、選択モジュールは、時間オーバーヘッドが最小の検索アルゴリズムを現在の検索アルゴリズムとして選択するように構成された第１の選択モジュールを含む。
【０１１１】
本発明の一実施形態では、効率は枝刈り率を含み、枝刈り率は、現在の検索アルゴリズムに基づいてデータベースから返される候補部分列の数に対する検索結果内の部分列の数の割合を表し、選択モジュールは、枝刈り率が最高の検索アルゴリズムを現在の検索アルゴリズムとして選択するように構成された第２の選択モジュールを含む。
【０１１２】
本発明の一実施形態では、検索アルゴリズムを使用してデータベースから検索結果を取得する際に収集される統計情報に基づいて履歴統計データを更新するように構成された更新モジュールをさらに含む。
【０１１３】
図１２は、本発明の一実施形態によるデータベース・システム内を検索するための装置のブロック図１０００Ｂを概略的に示す。具体的には、データベース・システム内を検索するための装置が提供され、データベース・システムは時系列データベースである第１のデータベースとリレーショナル・データベースである第２のデータベースとを含み、装置は、検索要求を受け取るとそれに応答して、検索要求から第１のデータベース内を検索する第１の検索要求と、第２のデータベース内を検索する第２の検索要求とを抽出するように構成された抽出モジュール１０１０Ｂと、本発明による装置により、第１の検索要求を使用して第１のデータベース内を検索し、第２の検索要求を使用して第２のデータベース内を検索するように構成された検索モジュール１０２０Ｂと、第１のデータベースからの第１の検索結果と第２のデータベースからの第２の検索結果とに基づいて、検索要求に応答するために検索結果を生成するように構成された生成モジュール１０３０Ｂとを含む。
【０１１４】
本発明の一実施形態では、生成モジュール１０２０Ｂは、第１の検索結果と第２の検索結果とを結合して検索結果を生成するように構成された結合モジュールを含む。
【０１１５】
本発明の一実施形態では、検索要求はクライアントからの要求であり、検索モジュールはデータベース・システムにある。
【０１１６】
本発明の方法および装置により、様々な種類のデータベースを含むデータベース・システムを検索する必要がある場合、ユーザはデータベース・システム内の様々な種類のデータベースの相互関係の詳細について意識する必要がなく、データベース・システムに検索要求を出すだけでデータベースから検索結果を取得することができる。
【０１１７】
本発明は、システム、方法またはコンピュータ・プログラム製品あるいはこれらの組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の各態様を実行させるためのコンピュータ可読プログラム命令が格納されたコンピュータ可読記憶媒体（または複数の媒体）を含み得る。
【０１１８】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるための命令を保持し、格納することができる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、またはこれらの任意の適合する組合せとすることができるが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストには、以下のものが含まれる。すなわち、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、携帯型コンパクト・ディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー（Ｒ）・ディスク、パンチ・カードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、およびこれらの任意の適合する組合せが含まれる。本明細書で使用するコンピュータ可読記憶媒体とは、電波またはその他の自由に伝播する電磁波、導波路またはその他の伝送媒体を伝播する電磁波（例えば光ファイバ・ケーブルを通る光パルス）、または電線を介して伝送される電気信号などの、一時的な信号自体であると解釈すべきではない。
【０１１９】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスに、または、ネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワークあるいはこれらの組合せを介して、外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはこれらの組合せを含んでよい。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令をそれぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【０１２０】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラム言語などの従来の手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上で、一部がユーザのコンピュータ上で、一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で、または全体がリモート・コンピュータもしくはサーバ上で実行されてよい。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む、任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は外部コンピュータに対して（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）行ってもよい。実施形態によっては、本発明の各態様を実行するために、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路はコンピュータ可読プログラム命令の状態情報を使用してパーソナライズすることにより、その電子回路がコンピュータ可読プログラム命令を実行することができる。
【０１２１】
本発明の態様について、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品を示すフローチャート図またはブロック図あるいはその両方を参照しながら説明している。当然ながら、フローチャート図またはブロック図あるいはその両方の各ブロックおよび、フローチャート図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実装可能である。
【０１２２】
上記のコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで規定されている機能／動作を実装する手段を形成するように、汎用コンピュータ、専用コンピュータ、またはその他のプログラマブル・データ処理装置のプロセッサに供給されて、マシンを実現するものであってよい。上記のコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで規定されている機能／動作の態様を実装する命令を含む製造品を含むように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、またはその他のデバイスあるいはこれらの組合せに特定の方式で機能するように指示するものであってもよい。
【０１２３】
上記のコンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル装置またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで規定されている機能／動作を実装するように、コンピュータ実装プロセスを実現すべく、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイスにロードされ、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【０１２４】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能および動作を示す。この点に関して、フローチャートまたはブロック図の各ブロックは、規定されている論理機能を実装するための１つまたは複数の実行可能命令を含む、コードのモジュール、セグメント、または部分を表し得る。また、代替実装形態によっては、ブロックに記載されている機能は、図に記載されている順序とは異なる順序で行われてもよいことにも留意されたい。例えば、連続して示されている２つのブロックは、関与する機能に応じて、実際には実質的に並行して実行されてよく、またはそれらのブロックは場合によっては逆の順序で実行されてもよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せは、規定されている機能または動作を実行する専用ハードウェア・ベースのシステムによって、または専用ハードウェアとコンピュータ命令の組合せによって実装することもできることにも留意されたい。
【０１２５】
本発明の様々な実施形態について例示を目的として説明したが、本発明の説明は網羅的であること、または開示されている実施形態に限定することを意図したものではない。当業者には、記載されている実施形態の範囲および趣旨から逸脱することなく多くの変更および変形が明らかであろう。本明細書で使用されている用語は、実施形態の原理、実際の適用、または市場に見られる技術の技術的改善を最もよく説明するため、または他の当業者が本明細書で開示されている実施形態を理解することができるようにするために選択されたものである。
【図１】
0006594978.tif 000002
【図２】
0006594978.tif 000003
【図３】
0006594978.tif 000004
【図４】
0006594978.tif 000005
【図５】
0006594978.tif 000006
【図６】
0006594978.tif 000007
【図７】
0006594978.tif 000008
【図８】
0006594978.tif 000009
【図９】
0006594978.tif 000010
【図１０】
0006594978.tif 000011
【図１１】
0006594978.tif 000012
【図１２】
0006594978.tif 000013