【手続補正書】
【提出日】平成27年9月28日(2015.9.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
リレーショナルデータストア及び非リレーショナルデータストアを有するデータベースシステムにおいてデータベースクエリを最適化する方法であって、
ホストシステムで前記データベースシステムに対する要求を受信するステップであって、前記要求は前記データベースシステムから取得されるデータを特定するステップと、
前記ホストシステムを介する前記要求に基づいて、取得される前記データの１つ以上の位置を取得するステップと、
前記ホストシステムで、前記要求に基づいて、取得される複数のデータ要素を特定するデータベースクエリを生成するステップであって、前記複数のデータ要素は前記非リレーショナルデータストア内に存在する１つ以上のデータ要素及び前記リレーショナルデータストア内に存在する１つ以上の他のデータ要素を含むステップと、
少なくともサブクエリ又は事前クエリを含むように前記データベースクエリを最適化するステップと、
前記データを取得するために前記データベースシステムに対して最適化されたデータベースクエリを実行するステップと
を含み、
前記データベースクエリを最適化するステップは、（ｉ）リレーショナルデータストア内のテーブルに対する第１のサブクエリを識別することであって、前記第１のサブクエリは取得される前記データの第１の部分に対応すること、（ｉｉ）前記非リレーショナルデータストアに対する第２のサブクエリを識別することであって、前記第２のサブクエリは取得される前記データの第２の部分に対応すること、（ｉｉｉ）前記リレーショナルデータストア内の前記テーブルを前記非リレーショナルデータストアに複製すること、及び（ｉｖ）取得される前記データの第１の部分及び取得される前記データの前記第２の部分の両方を前記非リレーショナルデータストアからフェッチするために１つ以上のサブクエリと共に前記最適化されたデータベースクエリを生成することを含み、
前記データベースクエリは、前記非リレーショナルデータストアにおいて非リレーショナルデータベースクエリを開始することによって実行される結合動作を含み、１つ以上の外部キーペアレントが前記リレーショナルデータストアに記憶される、方法。
【請求項２】
前記データベースシステムは、複数の離れた別個の顧客組織によって共有されるハードウェア及びソフトウェアの要素を更に含み、前記離れた別個の顧客組織の各々は前記データベースシステムが実行されるホスト組織から遠隔に設置される、請求項１に記載の方法。
【請求項３】
前記データベースクエリは、複数のサブクエリを含み、
前記複数のサブクエリの中の少なくとも１つのサブクエリが、前記非リレーショナルデータストア内に存在する前記１つ以上のデータ要素を前記非リレーショナルデータストアから取得するために行われ、
前記複数のサブクエリの中の少なくとも第２のサブクエリが、前記リレーショナルデータストア内に存在する前記１つ以上の他のデータ要素を前記リレーショナルデータストアから取得するために行われる、請求項１に記載の方法。
【請求項４】
前記データベースクエリを最適化するステップは、解析決定が行われてから顧客スキーマを介して１つ以上のデータの位置に対して記憶及び特定されるように、事前クエリを発行する必要無しにクエリポリシーを要求することを含む、請求項１に記載の方法。
【請求項５】
前記データベースクエリは結合動作を特定する、請求項１に記載の方法。
【請求項６】
前記結合動作は、前記ホストシステムの最適化エージェントを介して利用可能なクエリ最適化に基づいて生成される複数のサブクエリを含み、前記クエリ最適化は、
前記複数のサブクエリに対する特定の順序付け、
対応するサブクエリの実行に対する目的データストア、
前記取得されるデータに基づく１つ以上の事前クエリ評価、
前記リレーショナルデータストアから前記非リレーショナルデータストアへの複製命令、
前記リレーショナルデータストア及び前記非リレーショナルデータストアの各々から取得される前記複数のデータ要素の少なくとも１つ以上を特定し、且つ前記最適化エージェントにアクセス可能なメモリに配置されるメモリ内結合動作、及び前記要求を充足するに際し前記最適化エージェントにアクセス可能な前記メモリから前記複数のデータ要素の前記少なくとも１つ以上を取得するための対応するサブクエリ
を含むグループから選択される、請求項５に記載の方法。
【請求項７】
前記結合動作は、
前記非リレーショナルデータストアに対して実行される第１のサブクエリであって、前記非リレーショナルデータストア内に存在する前記１つ以上のデータ要素を識別する第１のサブクエリと、
前記リレーショナルデータストアに対して実行される第２のサブクエリであって、前記非リレーショナルデータストア内に存在する前記１つ以上のデータ要素を識別する前記第１のサブクエリと前記リレーショナルデータストア内に存在する前記１つ以上の他のデータ要素との間のデータデルタを決定する第２のサブクエリと、
前記リレーショナルデータストア及び前記非リレーショナルデータストアに対して実行される第３のサブクエリであって、前記リレーショナルデータストアから前記非リレーショナルデータストアへと決定されたデータデルタに対応するデータを複製する第３のサブクエリと、
前記非リレーショナルデータストアに対して実行される第４のサブクエリであって、前記非リレーショナルデータストア内に存在する前記１つ以上のデータ要素と前記リレーショナルデータストアから前記非リレーショナルデータストアに複製されることで前記非リレーショナルデータストア内から利用可能な前記１つ以上の他のデータ要素との双方をフェッチすることにより、前記非リレーショナルデータストアから取得される前記データをフェッチする第４のサブクエリと
を含む、請求項５に記載の方法。
【請求項８】
前記結合動作は、
前記リレーショナルデータストアから２つ以上の関連テーブルを特定する結合動作と、
前記リレーショナルデータストアからの少なくとも１つの関連テーブル及び前記非リレーショナルデータストア内に存在する少なくとも１つ以上のデータ構造を特定する結合動作と、
前記非リレーショナルデータストア内に存在する２つ以上の離れた及び別個のデータ構造を特定する結合動作であって、前記２つ以上の離れた及び別個のデータ構造の各々が重複する共有キーを欠いている結合動作と
を含むグループから選択される、請求項５に記載の方法。
【請求項９】
前記結合動作は
前記非リレーショナルデータストアに対して実行される第１のサブクエリであって、前記非リレーショナルデータストア内に存在する前記１つ以上のデータ要素を取得する第１のサブクエリと、
前記リレーショナルデータストアに対して実行される第２のサブクエリであって、前記非リレーショナルデータストア内に存在する前記１つ以上のデータ要素と前記リレーショナルデータストア内に存在する前記１つ以上の他のデータ要素との間のデータデルタを決定する第２のサブクエリと、
前記リレーショナルデータストアに対して実行される第３のサブクエリであって、決定されたデータデルタに基づいて前記リレーショナルデータストア内に存在する前記１つ以上の他のデータ要素を取得する第３のサブクエリと
を含む、請求項５に記載の方法。
【請求項１０】
前記データベースクエリは、複数のサブクエリを含み、
前記データベースクエリを最適化するステップは、
クエリレイヤへのメモリ内結合動作を利用して又はグローバルキャッシュレイヤへのメモリ内結合動作を介して取得するデータを取得することであって、前記メモリ内結合動作は最適化エージェントから利用可能な既知の統計に基づいて選択されること
を更に含む、請求項１に記載の方法。
【請求項１１】
前記データベースクエリを最適化するステップは、
前記非リレーショナルデータストアに対する第１のサブクエリを識別すること、
前記リレーショナルデータストアに対する第２のサブクエリを識別することであって、前記第２のサブクエリは、前記非リレーショナルデータストアに対する前記第１のサブクエリの範囲内の新しい又は更新されたデータ要素のための前記リレーショナルデータストアの追加ログに対するデータデルタクエリを含み、前記新しい又は更新されたデータ要素は前記リレーショナルデータストアから前記非リレーショナルデータストアにフラッシュされていないこと、及び
前記リレーショナルデータストアの追加ログ内の前記新しい又は更新されたデータ要素を前記非リレーショナルデータストアにフラッシュするために前記リレーショナルデータストアに対してフラッシュを実行すること
を更に含む、請求項１に記載の方法。
【請求項１２】
前記リレーショナルデータストアは、リレーショナルデータベース管理システムにより実装されるリレーショナルデータベースを含み、
前記リレーショナルデータベースの複数の関連テーブルは、前記リレーショナルデータベース内の２つ以上の関連テーブルの各々に対して１つ以上の重複する共通の特徴を介して相互に関連付けされる、請求項１に記載の方法。
【請求項１３】
前記非リレーショナルデータストアは、複数の基本ハードウェア記憶装置を有する分散構造型データベースを含み、前記複数の基本ハードウェア記憶装置の各々が前記非リレーショナルデータストアに総記憶容量の少なくとも一部を提供し、
前記非リレーショナルデータストア内のデータ要素は、主キーに基づいて参照可能であるが、２つ以上の関連テーブルの間の１つ以上の重複する共通の特徴に基づいては参照可能ではない、請求項１に記載の方法。
【請求項１４】
前記非リレーショナルデータストアは複数の分散型コンピュータノードを含み、各コンピュータノードは少なくとも１つのメモリ、１つ以上のプロセッサ及び１つ以上の通信可能にインターフェース接続されたハードディスクドライブを備え、前記分散型コンピュータノードの各々は、中央トランザクション局からの承認又は制御無しで非リレーショナルデータベーストランザクションを読み取り、書き込み、及び更新する機能を有する分離した非リレーショナルデータベースインスタンスを含み、
前記リレーショナルデータストアは、プロセッサ及びメモリを含むモノリシックリレーショナルデータベースインスタンスを含み、前記プロセッサは、前記モノリシックリレーショナルデータベースインスタンスへの更新又は変更が前記モノリシックリレーショナルデータベースインスタンスに通信可能にインターフェース接続され且つ制御される持続的記憶装置に対する持続的記憶にコミットされるかどうかを制御する中央トランザクション局と計算リソースを調整する、請求項１に記載の方法。
【請求項１５】
ホストシステム内のプロセッサによって実行されると、前記ホストシステムに動作を実行させる命令が記憶された一時的でないコンピュータ可読記憶媒体であって、前記動作は、
前記ホストシステムで前記データベースシステムに対する要求を受信することであって、前記要求は前記データベースシステムから取得されるデータを特定すること、
前記ホストシステムを介する前記要求に基づいて、取得される前記データの１つ以上の位置を取得すること、
前記ホストシステムで、前記要求に基づいて、取得される複数のデータ要素を特定するデータベースクエリを生成することであって、前記複数のデータ要素は非リレーショナルデータストア内に存在する１つ以上のデータ要素及びリレーショナルデータストア内に存在する１つ以上の他のデータ要素を含むこと、
少なくともサブクエリ又は事前クエリを含むように前記データベースクエリを最適化すること、
前記データを取得するために前記データベースシステムに対して最適化されたデータベースクエリを実行すること
を含み、
前記データベースクエリを最適化することは、（ｉ）リレーショナルデータストア内のテーブルに対する第１のサブクエリを識別することであって、前記第１のサブクエリは取得される前記データの第１の部分に対応すること、（ｉｉ）前記非リレーショナルデータストアに対する第２のサブクエリを識別することであって、前記第２のサブクエリは取得される前記データの第２の部分に対応すること、（ｉｉｉ）前記リレーショナルデータストア内の前記テーブルを前記非リレーショナルデータストアに複製すること、及び（ｉｖ）取得される前記データの第１の部分及び取得される前記データの前記第２の部分の両方を前記非リレーショナルデータストアからフェッチするために１つ以上のサブクエリと共に前記最適化されたデータベースクエリを生成することを含み、
前記データベースクエリは、前記非リレーショナルデータストアにおいて非リレーショナルデータベースクエリを開始することによって実行される結合動作を含み、１つ以上の外部キーペアレントが前記リレーショナルデータストアに記憶される、一時的でないコンピュータ可読記憶媒体。
【請求項１６】
プロセッサ及びメモリと、
リレーショナルデータストア及び非リレーショナルデータストアが実装されるデータベースシステムとの通信インターフェースと、
ホストシステムで前記データベースシステムに対する要求を受信する要求プロセッサであって、前記要求は前記データベースシステムから取得されるデータを特定する要求プロセッサと、
前記要求に基づいて、取得される前記データの１つ以上の位置を取得する顧客スキーマプロセッサと、
前記要求に基づいてデータベースクエリを生成するクエリレイヤエージェントであって、前記データベースクエリは取得される複数のデータ要素を特定し、前記複数のデータ要素は非リレーショナルデータストア内に存在する１つ以上のデータ要素及びリレーショナルデータストア内に存在する１つ以上の他のデータ要素を含むクエリレイヤエージェントと、
少なくともサブクエリ又は事前クエリを含むように前記データベースクエリを最適化するクエリオプティマイザと
を備え、
前記クエリレイヤエージェントは、前記データを取得するために前記データベースシステムに対して最適化されたデータベースクエリを実行し、
前記クエリオプティマイザは、更に（ｉ）リレーショナルデータストア内のテーブルに対する第１のサブクエリを識別し、前記第１のサブクエリは取得される前記データの第１の部分に対応し、（ｉｉ）前記非リレーショナルデータストアに対する第２のサブクエリを識別し、前記第２のサブクエリは取得される前記データの第２の部分に対応し、（ｉｉｉ）前記リレーショナルデータストア内の前記テーブルを前記非リレーショナルデータストアに複製し、且つ（ｉｖ）取得される前記データの第１の部分及び取得される前記データの前記第２の部分の両方を前記非リレーショナルデータストアからフェッチするために１つ以上のサブクエリと共に前記最適化されたデータベースクエリを生成し、
前記データベースクエリは、前記非リレーショナルデータストアにおいて非リレーショナルデータベースクエリを開始することによって実行される結合動作を含み、１つ以上の外部キーペアレントが前記リレーショナルデータストアに記憶される、システム。
【請求項１７】
前記要求に基づいて前記データベースクエリを生成する前記サブクエリ生成器は、前記要求を充足するために前記要求に基づいて複数のサブクエリを生成するサブクエリ生成器を含み、前記サブクエリは、
前記非リレーショナルデータストアに対して実行される第１のサブクエリであって、前記非リレーショナルデータストア内に存在する前記１つ以上のデータ要素を識別する第１のサブクエリと、
前記リレーショナルデータストアに対して実行される第２のサブクエリであって、前記非リレーショナルデータストア内に存在する前記１つ以上のデータ要素を識別する前記第１のサブクエリと前記リレーショナルデータストア内に存在する前記１つ以上の他のデータ要素との間のデータデルタを決定する第２のサブクエリと、
前記リレーショナルデータストア及び前記非リレーショナルデータストアに対して実行される第３のサブクエリであって、前記リレーショナルデータストアから前記非リレーショナルデータストアへと決定されたデータデルタに対応するデータを複製する第３のサブクエリと、
前記非リレーショナルデータストアに対して実行される第４のサブクエリであって、前記非リレーショナルデータストア内に存在する前記１つ以上のデータ要素と前記リレーショナルデータストアから前記非リレーショナルデータストアに複製されることで前記非リレーショナルデータストア内から利用可能な前記１つ以上の他のデータ要素との双方をフェッチすることにより、前記非リレーショナルデータストアから取得される前記データをフェッチする第４のサブクエリと
を含む、請求項１６に記載のシステム。
【請求項１８】
前記データベースクエリは、複数のサブクエリを含み、
前記複数のサブクエリの中の少なくとも１つのサブクエリが、前記非リレーショナルデータストア内に存在する前記１つ以上のデータ要素を前記非リレーショナルデータストアから取得するために行われ、
前記複数のサブクエリの中の少なくとも第２のサブクエリが、前記リレーショナルデータストア内に存在する前記１つ以上の他のデータ要素を前記リレーショナルデータストアから取得するために行われる、請求項１６に記載のシステム。
【請求項１９】
前記クエリオプティマイザは、解析決定が行われてから顧客スキーマを介して１つ以上のデータの位置に対して記憶及び特定されるように、事前クエリを発行する必要無しにクエリポリシーを要求する、請求項１６に記載のシステム。
【請求項２０】
前記データベースクエリは結合動作を特定する、請求項１６に記載のシステム。
【請求項２１】
前記結合動作は、前記最適化エージェントを介して利用可能なクエリ最適化に基づいて生成される複数のサブクエリを含み、前記クエリ最適化は、
前記複数のサブクエリに対する特定の順序付け、
対応するサブクエリの実行に対する目的データストア、
取得される前記データに基づく１つ以上の事前クエリ評価、
前記リレーショナルデータストアから前記非リレーショナルデータストアへの複製命令、
前記リレーショナルデータストア及び前記非リレーショナルデータストアの各々から取得される前記複数のデータ要素の少なくとも１つ以上を特定し、且つ前記最適化エージェントにアクセス可能なメモリに配置されるメモリ内結合動作、及び前記要求を充足するに際し前記最適化エージェントにアクセス可能な前記メモリから前記複数のデータ要素の前記少なくとも１つ以上を取得するための対応するサブクエリ
を含むグループから選択される、請求項２０に記載のシステム。