(57)【特許請求の範囲】
【請求項１】
データを関係データベース内の初期データセットから選択的に読み込んで限定されたデータセットを提供し、該データセットをピボットテーブルに組み入れるためのコンピュータ実行方法であって、前記方法は、
コンピュータの1つまたは複数のコンピュータプロセッサによって行われる、
ａ）前記初期データセットにおけるグループ化列の指定を、前記コンピュータで実行中のデータベース・アプリケーション・プログラムへのユーザ・インタフェース内に受け取るステップであって、前記グループ化列がグループ化値の1つまたは複数のグループを含む、ステップと、
ｂ）前記初期データセットにおけるパーティション列の指定を前記ユーザ・インタフェース内に受け取るステップであって、前記パーティション列が1つまたは複数のパーティション値を含む、ステップと、
ｃ）前記初期データセットにおける順序付け列の指定を前記ユーザ・インタフェース内に受け取るステップであって、前記順序付け列が1つまたは複数の順序付け値を含み、前記初期データセットが1つまたは複数の行を含み、各行が、対応するグループ化値、対応するパーティション値、および対応する順序付け値を含む、ステップと、
ｄ）特定のパーティション値の指定を前記ユーザ・インタフェース内に受け取るステップと、
ｅ）前記初期データセットにおける、前記特定のパーティション値を含む行を識別するステップと、
ｆ）前記特定のパーティション値を含む前記行を選択し、限定された行セットを提供するために各選択行の前記対応する順序付け値の順位に基づいて前記選択行を限定するステップと、
ｇ）前記限定されたデータセットを提供するために、前記限定された行セットの前記グループ化値と共通のグループ化値を共有するすべての行を含むように前記限定行セットを拡張するステップと、
ｈ）指定された行制限を前記コンピュータのメモリーから読み込んで、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数が前記指定された行制限を超える場合は、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数を減らして当該行数が前記指定された行制限と一致させるが、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数が前記指定された行制限に達しない場合は、当該行数が前記指定された行制限と一致するまで、選択した前記行から成る前記限定行セットを拡張した前記行セットに、異なるパーティション値から成る追加行を挿入するステップと、
ｉ）前記限定されたデータセット内の特異なグループ化値ごとの行と特異なパーティション値ごとの列とを含むピボットテーブルに、選択した前記行から成る前記限定行セットを拡張した前記行セットを挿入するステップであって、各特異なグループ化値と各特異なパーティション値とが、特異なグループ化値−パーティション値の対を形成し、前記特異なグループ化値−パーティション値の対は、前記ピボットテーブル内の一意のセルを定義して、各特異なグループ化値−パーティション値の対で定義される各セルに、前記限定されたデータセット内の各特異な列から前記対応する順序付け値を追加することによって、前記限定されたデータセットの特異な列に対応するステップと、
ｊ）前記データベース・アプリケーション・プログラムへの前記ユーザ・インタフェース内の前記ピボットテーブルを表示するステップと、を含む
ことを特徴とする方法。
【請求項２】
各選択行の前記対応する順序付け値の前記順位が、昇順または降順のどちらかに基づくものである、請求項１に記載の方法。
【請求項３】
前記初期データセットにおけるグループ化列、パーティション列、および順序付け列の指定を受け取る前記ステップが、前記関係データベース内の追加の初期データセットに対して繰り返される、請求項１に記載の方法。
【請求項４】
前記1つまたは複数のコンピュータプロセッサによって行われる前記ステップのうちの1つまたは複数を行うためにJOIN SQL式が実行される、請求項１に記載の方法。
【請求項５】
前記パーティション列に含まれる他のパーティション値の選別を行うためOFFSET SQL式を実行することを含む、請求項１に記載の方法。
【請求項６】
前記パーティション列に含まれる前記パーティション値を限定するためLIMIT SQL式を実行することを含む、請求項１に記載の方法。
【請求項７】
前記限定されたデータセットをクライアントデバイス上に含まれるアプリケーションプログラムに送ることをさらに含む、請求項1に記載の方法。
【請求項８】
各選択行の前記対応する順序付け値の順位に基づいて前記選択行を限定する前記ステップが、
前記限定されたデータセットを提供するために、前記特定のパーティション値を含まない追加行を選択的に取得するためRIGHT JOIN SQL式を実行すること
を含む、請求項１に記載の方法。
【請求項９】
各選択行の前記対応する順序付け値の順位に基づいて前記選択行を限定する前記ステップが、
前記限定されたデータセットを提供するために、前記特定のパーティション値を含まない追加行を選択的に取得するためLEFT JOIN SQL式を実行すること
を含む、請求項１に記載の方法。
【請求項１０】
データを関係データベース内の初期データセットから選択的に読み込んで限定されたデータセットを提供し、該データセットをピボットテーブルに組み入れるための非一時的なコンピュータ可読記録媒体であって、前記非一時的なコンピュータ可読記録媒体は、
コンピュータの1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
ａ）前記初期データセットにおけるグループ化列の指定を受け取ることであって、前記グループ化列が、グループ化値の1つまたは複数のグループを含む、ことと、
ｂ）前記初期データセットにおけるパーティション列の指定を受け取ることであって、前記パーティション列が、1つまたは複数のパーティション値を含む、ことと、
ｃ）前記初期データセットにおける順序付け列の指定を受け取ることであって、前記順序付け列が1つまたは複数の順序付け値を含み、前記初期データセットが1つまたは複数の行を含み、各行が、対応するグループ化値、対応するパーティション値、および対応する順序付け値を含む、ことと、
ｄ）特定のパーティション値の指定を受け取ることと、
ｅ）前記初期データセットにおける、前記特定のパーティション値を含む行を識別することと、
ｆ）前記特定のパーティション値を含む前記行の選択、および限定された行セットを提供するための、各選択行の前記対応する順序付け値の順位に基づく前記選択行を限定することと、
ｇ）前記限定されたデータセットを提供するための、前記限定された行セットの前記グループ化値と共通のグループ化値を共有するすべての行を含むようにする前記限定された行セットを拡張することと、
ｈ）指定された行制限を前記コンピュータのメモリーから読み込んで、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数が前記指定された行制限を超える場合は、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数を減らして当該行数が前記指定された行制限と一致させるが、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数が前記指定された行制限に達しない場合は、当該行数が前記指定された行制限と一致するまで、選択した前記行から成る前記限定行セットを拡張した前記行セットに、異なるパーティション値から成る追加行を挿入することと、
ｉ）前記限定されたデータセット内の特異なグループ化値ごとの行と特異なパーティション値ごとの列とを含むピボットテーブルに、選択した前記行から成る前記限定行セットを拡張した前記行セットを挿入することであって、各特異なグループ化値と各特異なパーティション値とが、特異なグループ化値−パーティション値の対を形成し、前記特異なグループ化値−パーティション値の対は、前記ピボットテーブル内の一意のセルを定義して、各特異なグループ化値−パーティション値の対で定義される各セルに、前記限定されたデータセット内の各特異な列から前記対応する順序付け値を追加することによって、前記限定されたデータセットの特異な列に対応することと、
ｊ）データベース・アプリケーション・プログラムへのユーザ・インタフェース内の前記ピボットテーブルを表示することと、を行わせる命令を含む
ことを特徴とする非一時的なコンピュータ可読記録媒体。
【請求項１１】
データを関係データベース内の初期データセットから選択的に読み込んで限定されたデータセットを提供し、該データセットをピボットテーブルに組み入れるためのコンピュータ実行方法であって、前記方法は、
コンピュータの1つまたは複数のコンピュータプロセッサによって行われる、
ａ）前記初期データセットにおけるグループ化列の指定を、前記コンピュータで実行中のデータベース・アプリケーション・プログラムへのユーザ・インタフェース内に受け取るステップであって、前記グループ化列がグループ化値の1つまたは複数のグループを含む、ステップと、
ｂ）前記初期データセットにおけるパーティション列の指定を前記ユーザ・インタフェース内に受け取るステップであって、前記パーティション列が1つまたは複数のパーティション値を含む複数のパーティション値を含む、ステップと、
ｃ）前記初期データセットにおける順序付け列の指定を前記ユーザ・インタフェース内に受け取るステップであって、前記順序付け列が1つまたは複数の順序付け値を含み、前記初期データセットが1つまたは複数の行を含み、各行が、対応するグループ化値、対応するパーティション値、および対応する順序付け値を含む、ステップと、
ｄ）前記1つまたは複数の行のうちの、共通パーティション値を共有する行を、前記共有される共通パーティション値に従って別個のパーティションにパーティショニングするステップと、
ｅ）各行の前記対応する順序付け値に従って各別個のパーティション内の前記行の各々の順位値を確立するステップと、
ｆ）各グループ内の、最低の前記順位値を有する行に対応する、別個のグループ化値グループごとの最小順位値を計算するステップと、
ｇ）最小順位値限界を満たさないグループ化値グループを除外するために前記別個のグループ化値グループの各々に前記最小順位値限界を適用するステップであって、前記最小順位値限界によって除外されない前記グループ化値グループが、前記限定されたデータセットを提供する、前記最小順位値限界を適用するステップと、
ｈ）指定された行制限を前記コンピュータのメモリーから読み込んで、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数が前記指定された行制限を超える場合は、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数を減らして当該行数が前記指定された行制限と一致させるが、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数が前記指定された行制限に達しない場合は、当該行数が前記指定された行制限と一致するまで、選択した前記行から成る前記限定行セットを拡張した前記行セットに、異なるパーティション値から成る追加行を挿入するステップと、
ｉ）前記限定されたデータセット内の特異なグループ化値ごとの行と特異なパーティション値ごとの列とを含むピボットテーブルに、選択した前記行から成る前記限定行セットを拡張した前記行セットを挿入摺るステップであって、各特異なグループ化値と各特異なパーティション値とが、特異なグループ化値−パーティション値の対を形成し、前記特異なグループ化値−パーティション値の対は、前記ピボットテーブル内の一意のセルを定義して、各特異なグループ化値−パーティション値の対で定義される各セルに、前記限定されたデータセット内の各特異な列から前記対応する順序付け値を追加することによって、前記限定されたデータセットの特異な列に対応するステップと、
ｊ）前記データベース・アプリケーション・プログラムへの前記ユーザ・インタフェース内の前記ピボットテーブルを表示するステップと、を含む
ことを特徴とする方法。
【請求項１２】
前記初期データセットにおけるグループ化列、パーティション列、および順序付け列の指定を受け取る前記ステップが、前記関係データベース内の追加の初期データセットに対して繰り返される、請求項１１に記載の方法。
【請求項１３】
前記パーティション列に含まれる関心対象の前記値を限定するためにLIMIT SQL式を用いることをさらに含む、請求項１１に記載の方法。
【請求項１４】
前記限定されたデータセットを前記関係データベースからクライアントデバイス上に含まれるアプリケーションプログラムに送ることをさらに含む、請求項１１に記載の方法。
【請求項１５】
データを関係データベース内の初期データセットから選択的に読み込んで限定されたデータセットを提供し、該データセットをピボットテーブルに組み入れるための非一時的なコンピュータ可読記録媒体であって、前記非一時的なコンピュータ可読記録媒体は、
コンピュータの1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
ａ）前記初期データセットにおけるグループ化列の指定を受け取ることであって、前記グループ化列が、グループ化値の1つまたは複数のグループを含む、ことと、
ｂ）前記初期データセットにおけるパーティション列の指定を受け取ることであって、前記パーティション列が、1つまたは複数のパーティション値を含む、ことと、
ｃ）前記初期データセットにおける順序付け列の指定を受け取ることであって、前記順序付け列が1つまたは複数の順序付け値を含み、前記初期データセットが1つまたは複数の行を含み、各行が、対応するグループ化値、対応するパーティション値、および対応する順序付け値を含む、ことと、
ｄ）前記1つまたは複数の行のうちの、共通パーティション値を共有する行を、前記共有される共通パーティション値に従って別個のパーティションにパーティショニングすることと、
ｅ）各行の前記対応する順序付け値に従って各別個のパーティション内の前記行の各々の順位値を確立することと、
ｆ）各グループ内の、最低の前記順位値を有する行に対応する、別個のグループ化値グループごとの最小順位値を計算することと、
ｇ）最小順位値限界を満たさないグループ化値グループを除外するために前記別個のグループ化値グループの各々への前記最小順位値限界の適用であって、前記最小順位値限界によって除外されない前記グループ化値グループが、前記限定されたデータセットを提供する、前記最小順位値限界を適用することと、
ｈ）指定された行制限を前記コンピュータのメモリーから読み込んで、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数が前記指定された行制限を超える場合は、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数を減らして当該行数が前記指定された行制限と一致させるが、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数が前記指定された行制限に達しない場合は、当該行数が前記指定された行制限と一致するまで、選択した前記行から成る前記限定行セットを拡張した前記行セットに、異なるパーティション値から成る追加行を挿入することと、
ｉ）前記限定されたデータセット内の特異なグループ化値ごとの行と特異なパーティション値ごとの列とを含むピボットテーブルに、選択した前記行から成る前記限定行セットを拡張した前記行セットを挿入することであって、各特異なグループ化値と各特異なパーティション値とが、特異なグループ化値−パーティション値の対を形成し、前記特異なグループ化値−パーティション値の対は、前記ピボットテーブル内の一意のセルを定義して、各特異なグループ化値−パーティション値の対で定義される各セルに、前記限定されたデータセット内の各特異な列から前記対応する順序付け値を追加することによって、前記限定されたデータセットの特異な列に対応することと、
ｊ）データベース・アプリケーション・プログラムへのユーザ・インタフェース内の前記ピボットテーブルを表示することと、を行わせる命令を含む
ことを特徴とする非一時的なコンピュータ可読記録媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
緒言
ピボットを用いると、問合せの結果を、元は列において繰り返し値であった値によってグループ化されたものとして理解することが可能になる。ピボッティングは、通常、あるデータセットを取り込み、それをメモリにロードし、次いでそのデータセットを操作して、ピボットされるべき列内の離散値に基づいて行から列に値を移動させることによって行われる。アプリケーションに割り振られるあらゆるサイズのメモリについて、そのメモリにロードすることができないデータベース結果が作成される可能性がある。したがって、標準的なピボッティングの技法は、多くの現実的なシナリオのために失敗する。本開示は、この問題に対処する方法および関連システムを提供する。
【発明の概要】
【０００２】
一局面において、本開示は、包括的な手法の一部として、データを関係データベース内の初期データセットから選択的に読み込んで限定されたデータセットを提供し、該データセットをピボットテーブルに組み入れるためのコンピュータ実行方法を提供する。本方法は、コンピュータの1つまたは複数のコンピュータプロセッサによって行われる、ａ）初期データセットにおけるグループ化列を指定する、および／またはグループ化列の指定を、コンピュータで実行中のデータベース・アプリケーション・プログラムへのユーザ・インタフェース内に受け取るステップであって、グループ化列がグループ化値の1つまたは複数のグループを含む、ステップと、ｂ）初期データセットにおけるパーティション列を指定する、および／またはパーティション列の指定を前記ユーザ・インタフェース内に受け取るステップであって、パーティション列が1つまたは複数のパーティション値を含む、ステップと、ｃ）初期データセットにおける順序付け列を指定する、および／または順序付け列の指定を前記ユーザ・インタフェース内に受け取るステップであって、前記順序付け列が1つまたは複数の順序付け値を含み、前記初期データセットが1つまたは複数の行を含み、各行が、対応するグループ化値、対応するパーティション値、および対応する順序付け値を含む、ステップと、ｄ）特定のパーティション値を指定する、および／または特定のパーティション値の指定を前記ユーザ・インタフェース内に受け取るステップと、ｅ）初期データセットにおける、特定のパーティション値を含む行を識別するステップと、ｆ）特定のパーティション値を含む行を選択し、限定された行セットを提供するために各選択行の対応する順序付け値の順位に基づいて選択行を限定するステップと、ｇ）限定されたデータセットを提供するために、限定された行セットのグループ化値と共通のグループ化値を共有するすべての行を含むように限定行セットを拡張するステップと、ｈ）指定された行制限を前記コンピュータのメモリーから読み込んで、選択した行から成る限定行セットを拡張した行セットの行数が指定された行制限を超える場合は、選択した行から成る限定行セットを拡張した行セットの行数を減らして当該行数が指定された行制限と一致させるが、選択した行から成る限定行セットを拡張した行セットの行数が指定された行制限に達しない場合は、当該行数が指定された行制限と一致するまで、選択した行から成る限定行セットを拡張した行セットに、異なるパーティション値から成る追加行を挿入するステップと、ｉ）限定されたデータセット内の特異なグループ化値ごとの行と特異なパーティション値ごとの列とを含むピボットテーブルに、選択した行から成る限定行セットを拡張した行セットを挿入するステップであって、各特異なグループ化値と各特異なパーティション値とが、特異なグループ化値−パーティション値の対を形成し、特異なグループ化値−パーティション値の対は、ピボットテーブル内の一意のセルを定義して、各特異なグループ化値−パーティション値の対で定義される各セルに、限定されたデータセット内の各特異な列から、対応する順序付け値を追加することによって、限定されたデータセットの特異な列に���応するステップと、ｊ）データベース・アプリケーション・プログラムへのユーザ・インタフェース内のピボットテーブルを表示するステップと、を含む。
【０００３】
別の局面において、本開示は、包括的な手法の一部として、データを関係データベース内の初期データセットから選択的に読み込んで限定されたデータセットを提供し、該データセットをピボットテーブルに組み入れるための非一時的なコンピュータ可読記録媒体を提供する。本非一時的なコンピュータ可読記録媒体は、コンピュータの1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、ａ）初期データセットにおけるグループ化列を指定する、および／またはグループ化列の指定を受け取ることであって、グループ化列が、グループ化値の1つまたは複数のグループを含む、ことと、ｂ）初期データセットにおけるパーティション列を指定する、および／またはパーティション列の指定を受け取ることであって、パーティション列が、1つまたは複数のパーティション値を含む、ことと、ｃ）初期データセットにおける順序付け列を指定する、および／または順序付け列の指定を受け取ることであって、順序付け列が1つまたは複数の順序付け値を含み、初期データセットが1つまたは複数の行を含み、各行が、対応するグループ化値、対応するパーティション値、および対応する順序付け値を含む、ことと、ｄ）特定のパーティション値を指定する、および／または特定のパーティション値の指定を受け取ることと、ｅ）初期データセットにおける、特定のパーティション値を含む行を識別することと、ｆ）特定のパーティション値を含む行の選択、および限定された行セットを提供するための、各選択行の対応する順序付け値の順位に基づく選択行を限定することと、ｇ）限定されたデータセットを提供するための、限定された行セットのグループ化値と共通のグループ化値を共有するすべての行を含むようにする限定された行セットを拡張することと、ｈ）指定された行制限をコンピュータのメモリーから読み込んで、選択した行から成る限定行セットを拡張した行セットの行数が指定された行制限を超える場合は、選択した行から成る限定行セットを拡張した行セットの行数を減らして当該行数が指定された行制限と一致させるが、選択した行から成る限定行セットを拡張した行セットの行数が指定された行制限に達しない場合は、当該行数が指定された行制限と一致するまで、選択した行から成る限定行セットを拡張した行セットに、異なるパーティション値から成る追加行を挿入することと、ｉ）限定されたデータセット内の特異なグループ化値ごとの行と特異なパーティション値ごとの列とを含むピボットテーブルに、選択した行から成る限定行セットを拡張した行セットを挿入することであって、各特異なグループ化値と各特異なパーティション値とが、特異なグループ化値−パーティション値の対を形成し、特異なグループ化値−パーティション値の対は、ピボットテーブル内の一意のセルを定義して、各特異なグループ化値−パーティション値の対で定義される各セルに、限定されたデータセット内の各特異な列から、対応する順序付け値を追加することによって、限定されたデータセットの特異な列に対応することと、ｊ）データベース・アプリケーション・プログラムへのユーザ・インタフェース内のピボットテーブルを表示することと、を行わせる命令を含む。
【０００４】
別の局面において、本開示は、包含的な手法の一部として、ピボットテーブルに組み入れるための限定されたデータセットを提供するためにデータを関係データベース内の初期データセットから選択的に取得するためのシステムを提供する。本システムは、関係データベースとアプリケーションプログラムとを含み、アプリケーションプログラムは:（a）初期データセットにおける、グループ化値の1つまたは複数のグループを含むグループ化列を指定し、かつ/または指定を受け取り;（b）初期データセットにおける、1つまたは複数のパーティション値を含むパーティション列を指定し、かつ/または指定を受け取り;（c）対応するグループ化値、対応するパーティション値、および対応する順序付け値を含む1つまたは複数の行を含む初期データセットにおける、1つまたは複数の順序付け値を含む順序付け列を指定し、かつ/または指定を受け取り;（d）特定のパーティション値を指定し、かつ/または指定を受け取り;（e）初期データセットにおける、特定のパーティション値を含む行を識別し;（f）特定のパーティション値を含む行を選択し、限定された行セットを提供するために各選択行の対応する順序付け値の順位に基づいて選択行を限定し;（g）限定されたデータセットを提供するために、限定された行セットのグループ化値と共通のグループ化値を共有するすべての行を含むように限定行セットを拡張する。
【０００５】
別の局面において、本開示は、排他的な手法の一部として、データを関係データベース内の初期データセットから選択的に読み込んで限定されたデータセットを提供し、該データセットをピボットテーブルに組み入れるためのコンピュータ実行方法を提供する。本方法は、コンピュータの1つまたは複数のコンピュータプロセッサによって行われる、ａ）初期データセットにおけるグループ化列を指定する、および／またはグループ化列の指定を、コンピュータで実行中のデータベース・アプリケーション・プログラムへのユーザ・インタフェース内に受け取るステップであって、グループ化列がグループ化値の1つまたは複数のグループを含む、ステップと、ｂ）初期データセットにおけるパーティション列を指定する、および／またはパーティション列の指定を前記ユーザ・インタフェース内に受け取るステップであって、パーティション列が1つまたは複数のパーティション値を含む複数のパーティション値を含む、ステップと、ｃ）初期データセットにおける順序付け列を指定する、および／または順序付け列の指定を前記ユーザ・インタフェース内に受け取るステップであって、順序付け列が1つまたは複数の順序付け値を含み、初期データセットが1つまたは複数の行を含み、各行が、対応するグループ化値、対応するパーティション値、および対応する順序付け値を含む、ステップと、ｄ）1つまたは複数の行のうちの、共通パーティション値を共有する行を、共有される共通パーティション値に従って別個のパーティションにパーティショニングするステップと、ｅ）各行の対応する順序付け値に従って各別個のパーティション内の行の各々の順位値を確立するステップと、ｆ）各グループ内の、最低の順位値を有する行に対応する、別個のグループ化値グループごとの最小順位値を計算するステップと、ｇ）最小順位値限界を満たさないグループ化値グループを除外するために別個のグループ化値グループの各々に最小順位値限界を適用するステップであって、最小順位値限界によって除外されない前記グループ化値グループが、限定されたデータセットを提供する、前記最小順位値限界を適用するステップと、ｈ）指定された行制限を前記コンピュータのメモリーから読み込んで、選択した行から成る限定行セットを拡張した行セットの行数が指定された行制限を超える場合は、選択した行から成る限定行セットを拡張した行セットの行数を減らして当該行数が指定された行制限と一致させるが、選択した行から成る限定行セットを拡張した行セットの行数が指定された行制限に達しない場合は、当該行数が指定された行制限と一致するまで、選択した行から成る限定行セットを拡張した行セットに、異なるパーティション値から成る追加行を挿入するステップと、ｉ）限定されたデータセット内の特異なグループ化値ごとの行と特異なパーティション値ごとの列とを含むピボットテーブルに、選択した行から成る限定行セットを拡張した行セットを挿入するステップであって、各特異なグループ化値と各特異なパーティション値とが、特異なグループ化値−パーティション値の対を形成し、特異なグループ化値−パーティション値の対は、ピボットテーブル内の一意のセルを定義して、各特異なグループ化値−パーティション値の対で定義される各セルに、限定されたデータセット内の各特異な列から、対応する順序付け値を追加することによって、限定されたデータセットの特異な列に対応するステップと、ｊ）データベース・アプリケーション・プログラムへのユーザ・インタフェース内のピボットテーブルを表示するステップと、を含む。
【０００６】
別の局面において、本開示は、排他的な手法の一部として、データを関係データベース内の初期データセットから選択的に読み込んで限定されたデータセットを提供し、該データセットをピボットテーブルに組み入れるための非一時的なコンピュータ可読記録媒体を提供する。本非一時的なコンピュータ可読記録媒体は、コンピュータの1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、ａ）初期データセットにおけるグループ化列を指定する、および／またはグループ化列の指定を受け取ることであって、グループ化列が、グループ化値の1つまたは複数のグループを含む、ことと、ｂ）初期データセットにおけるパーティション列を指定する、および／またはパーティション列の指定を受け取ることであって、パーティション列が、1つまたは複数のパーティション値を含む、ことと、ｃ）初期データセットにおける順序付け列を指定する、および／または順序付け列の指定を受け取ることであって、順序付け列が1つまたは複数の順序付け値を含み、初期データセットが1つまたは複数の行を含み、各行が、対応するグループ化値、対応するパーティション値、および対応する順序付け値を含む、ことと、ｄ）1つまたは複数の行のうちの、共通パーティション値を共有する行を、共有される共通パーティション値に従って別個のパーティションにパーティショニングすることと、ｅ）各行の対応する順序付け値に従って各別個のパーティション内の行の各々の順位値を確立することと、ｆ）各グループ内の、最低の順位値を有する行に対応する、別個のグループ化値グループごとの最小順位値を計算することと、ｇ）最小順位値限界を満たさないグループ化値グループを除外するために別個のグループ化値グループの各々への最小順位値限界の適用であって、最小順位値限界によって除外されないグループ化値グループが、限定されたデータセットを提供する、最小順位値限界を適用することと、ｈ）指定された行制限をコンピュータのメモリーから読み込んで、選択した行から成る限定行セットを拡張した行セットの行数が指定された行制限を超える場合は、選択した行から成る限定行セットを拡張した行セットの行数を減らして当該行数が指定された行制限と一致させるが、選択した行から成る限定行セットを拡張した行セットの行数が指定された行制限に達しない場合は、当該行数が指定された行制限と一致するまで、選択した行から成る限定行セットを拡張した行セットに、異なるパーティション値から成る追加行を挿入することと、ｉ）限定されたデータセット内の特異なグループ化値ごとの行と特異なパーティション値ごとの列とを含むピボットテーブルに、選択した行から成る限定行セットを拡張した行セットを挿入することであって、各特異なグループ化値と各特異なパーティション値とが、特異なグループ化値−パーティション値の対を形成し、特異なグループ化値−パーティション値の対は、ピボットテーブル内の一意のセルを定義して、各特異なグループ化値−パーティション値の対で定義される各セルに、限定されたデータセット内の各特異な列から、対応する順序付け値を追加することによって、限定されたデータセットの特異な列に対応することと、ｊ）データベース��アプリケーション・プログラムへのユーザ・インタフェース内のピボットテーブルを表示することと、を行わせる命令を含む。
【０００７】
別の局面において、本開示は、排他的な手法の一部として、ピボットテーブルに組み入れるための限定されたデータセットを提供するためにデータを関係データベース内の初期データセットから選択的に取得するためのシステムを提供する。本システムは、関係データベースとアプリケーションプログラムとを含み、アプリケーションプログラムは:（a）初期データセットにおける、グループ化値の1つまたは複数のグループを含むグループ化列を指定し、かつ/または指定を受け取り;（b）初期データセットにおける、1つまたは複数のパーティション値を含むパーティション列を指定し、かつ/または指定を受け取り;（c）対応するグループ化値、対応するパーティション値、および対応する順序付け値を含む1つまたは複数の行を含む初期データセットにおける、1つまたは複数の順序付け値を含む順序付け列を指定し、かつ/または指定を受け取り;（d）1つまたは複数の行のうちの、共通パーティション値を共有する行を、共有される共通パーティション値に従って別個のパーティションにパーティショニングし;（e）各行の対応する順序付け値に従って各別個のパーティション内の行の各々の順位値を確立し;（f）各グループ内の、最低の順位値を有する行に対応する、別個のグループ化値グループごとの最小順位値を計算し;（g）最小順位値限界を満たさないグループ化値グループを除外するために別個のグループ化値グループの各々に最小順位値限界を適用し、最小順位値限界によって除外されないグループ化値グループは、限定されたデータセットを提供する。
【０００８】
ピボットテーブル内にありかつ限定されたデータセットの特異な行に対応する一意のセルを定義する、特異なグループ化値-パーティション値の対を、各特異なグループ化値および各特異なパーティション値が形成する、限定されたデータセット内の特異なグループ化値ごとの行と特異なパーティション値ごとの列とを含むテーブルを提供すること、ならびに、各特異なグループ化値-パーティション値の対によって定義される各セルに、限定されたデータセット内の各特異な行から対応する順序付け値を読み込むことによって、上記局面はいずれもピボットテーブルを提供することもできる。
【０００９】
本明細書に記載する本開示の主題の、各態様を含む各局面は、単独でも、他の局面または態様との組み合わせでも有益となりうる。以上の説明も後続の説明も限定することのない本開示のいくつかの非限定的な局面を以下に示す。本開示を読めば当業者には明らかになるように、個別に付番された局面の各々は、先行する、または後続の個別に付番された局面のいずれかと共に用いられ、または組み合わされてもよい。これは、各局面のすべてのそうした組み合わせをサポートしていることを示すためのものであり、以下に明示されている局面の組み合わせだけに限定されない。
【００１０】
１．ある局面において、本開示は、データを関係データベース内の初期データセットから選択的に読み込んで限定されたデータセットを提供し、該データセットをピボットテーブルに組み入れるためのコンピュータ実行方法であって、前記方法は、
コンピュータの1つまたは複数のコンピュータプロセッサによって行われる、
ａ）前記初期データセットにおけるグループ化列の指定を、前記コンピュータで実行中のデータベース・アプリケーション・プログラムへのユーザ・インタフェース内に受け取るステップであって、前記グループ化列がグループ化値の1つまたは複数のグループを含む、ステップと、
ｂ）前記初期データセットにおけるパーティション列の指定を前記ユーザ・インタフェース内に受け取るステップであって、前記パーティション列が1つまたは複数のパーティション値を含む、ステップと、
ｃ）前記初期データセットにおける順序付け列の指定を前記ユーザ・インタフェース内に受け取るステップであって、前記順序付け列が1つまたは複数の順序付け値を含み、前記初期データセットが1つまたは複数の行を含み、各行が、対応するグループ化値、対応するパーティション値、および対応する順序付け値を含む、ステップと、
ｄ）特定のパーティション値の指定を前記ユーザ・インタフェース内に受け取るステップと、
ｅ）前記初期データセットにおける、前記特定のパーティション値を含む行を識別するステップと、
ｆ）前記特定のパーティション値を含む前記行を選択し、限定された行セットを提供するために各選択行の前記対応する順序付け値の順位に基づいて前記選択行を限定するステップと、
ｇ）前記限定されたデータセットを提供するために、前記限定された行セットの前記グループ化値と共通のグループ化値を共有するすべての行を含むように前記限定行セットを拡張するステップと、
ｈ）指定された行制限を前記コンピュータのメモリーから読み込んで、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数が前記指定された行制限を超える場合は、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数を減らして当該行数が前記指定された行制限と一致させるが、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数が前記指定された行制限に達しない場合は、当該行数が前記指定された行制限と一致するまで、選択した前記行から成る前記限定行セットを拡張した前記行セットに、異なるパーティション値から成る追加行を挿入するステップと、
ｉ）前記限定されたデータセット内の特異なグループ化値ごとの行と特異なパーティション値ごとの列とを含むピボットテーブルに、選択した前記行から成る前記限定行セットを拡張した前記行セットを挿入するステップであって、各特異なグループ化値と各特異なパーティション値とが、特異なグループ化値−パーティション値の対を形成し、前記特異なグループ化値−パーティション値の対は、前記ピボットテーブル内の一意のセルを定義して、各特異なグループ化値−パーティション値の対で定義される各セルに、前記限定されたデータセット内の各特異な列から前記対応する順序付け値を追加することによって、前記限定されたデータセットの特異な列に対応するステップと、
ｊ）前記データベース・アプリケーション・プログラムへの前記ユーザ・インタフェース内の前記ピボットテーブルを表示するステップと、を含む方法を提供する。
２．各選択行の前記対応する順序付け値の前記順位が、昇順または降順のどちらかに基づくものである、局面１の方法。
３．前記初期データセットにおけるグループ化列、パーティション列、および順序付け列の指定を受け取る前記ステップが、前記関係データベース内の追加の初期データセットに対して繰り返される、局面１の方法。
４．前記1つまたは複数のコンピュータプロセッサによって行われる前記ステップのうちの1つまたは複数を行うためにJOIN SQL式が実行される、局面１の方法。
５．前記パーティション列に含まれる他のパーティション値の選別を行うためOFFSET SQL式を実行することを含む、局面１の方法。
６．前記パーティション列に含まれる前記パーティション値を限定するためLIMIT SQL式を実行することを含む、局面１の方法。
７．前記限定されたデータセットをクライアントデバイス上に含まれるアプリケーションプログラムに送ることをさらに含む、局面１の方法。
８．各選択行の前記対応する順序付け値の順位に基づいて前記選択行を限定する前記ステップが、
前記限定されたデータセットを提供するために、前記特定のパーティション値を含まない追加行を選択的に取得するためRIGHT JOIN SQL式を実行すること
を含む、局面１の方法。
９．各選択行の前記対応する順序付け値の順位に基づいて前記選択行を限定する前記ステップが、
前記限定されたデータセットを提供するために、前記特定のパーティション値を含まない追加行を選択的に取得するためLEFT JOIN SQL式を実行すること
を含む、局面１の方法。
１０．別の局面において、本開示は、データを関係データベース内の初期データセットから選択的に読み込んで限定されたデータセットを提供し、該データセットをピボットテーブルに組み入れるための非一時的なコンピュータ可読記録媒体であって、コンピュータの1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
ａ）前記初期データセットにおけるグループ化列の指定を受け取ることであって、前記グループ化列が、グループ化値の1つまたは複数のグループを含む、ことと、
ｂ）前記初期データセットにおけるパーティション列の指定を受け取ることであって、前記パーティション列が、1つまたは複数のパーティション値を含む、ことと、
ｃ）前記初期データセットにおける順序付け列の指定を受け取ることであって、前記順序付け列が1つまたは複数の順序付け値を含み、前記初期データセットが1つまたは複数の行を含み、各行が、対応するグループ化値、対応するパーティション値、および対応する順序付け値を含む、ことと、
ｄ）特定のパーティション値の指定を受け取ることと、
ｅ）前記初期データセットにおける、前記特定のパーティション値を含む行を識別することと、
ｆ）前記特定のパーティション値を含む前記行の選択、および限定された行セットを提供するための、各選択行の前記対応する順序付け値の順位に基づく前記選択行を限定することと、
ｇ）前記限定されたデータセットを提供するための、前記限定された行セットの前記グループ化値と共通のグループ化値を共有するすべての行を含むようにする前記限定された行セットを拡張することと、
ｈ）指定された行制限を前記コンピュータのメモリーから読み込んで、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数が前記指定された行制限を超える場合は、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数を減らして当該行数が前記指定された行制限と一致させるが、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数が前記指定された行制限に達しない場合は、当該行数が前記指定された行制限と一致するまで、選択した前記行から成る前記限定行セットを拡張した前記行セットに、異なるパーティション値から成る追加行を挿入することと、
ｉ）前記限定されたデータセット内の特異なグループ化値ごとの行と特異なパーティション値ごとの列とを含むピボットテーブルに、選択した前記行から成る前記限定行セットを拡張した前記行セットを挿入することであって、各特異なグループ化値と各特異なパーティション値とが、特異なグループ化値−パーティション値の対を形成し、前記特異なグループ化値−パーティション値の対は、前記ピボットテーブル内の一意のセルを定義して、各特異なグループ化値−パーティション値の対で定義される各セルに、前記限定されたデータセット内の各特異な列から前記対応する順序付け値を追加することによって、前記限定されたデータセットの特異な列に対応することと、
ｊ）データベース・アプリケーション・プログラムへのユーザ・インタフェース内の前記ピボットテーブルを表示することと、を行わせる命令を含む非一時的なコンピュータ可読記録媒体を提供する。
１１．別の局面において、本開示は、データを関係データベース内の初期データセットから選択的に読み込んで限定されたデータセットを提供し、該データセットをピボットテーブルに組み入れるためのコンピュータ実行方法であって、
コンピュータの1つまたは複数のコンピュータプロセッサによって行われる、
ａ）前記初期データセットにおけるグループ化列の指定を、前記コンピュータで実行中のデータベース・アプリケーション・プログラムへのユーザ・インタフェース内に受け取るステップであって、前記グループ化列がグループ化値の1つまたは複数のグループを含む、ステップと、
ｂ）前記初期データセットにおけるパーティション列の指定を前記ユーザ・インタフェース内に受け取るステップであって、前記パーティション列が1つまたは複数のパーティション値を含む複数のパーティション値を含む、ステップと、
ｃ）前記初期データセットにおける順序付け列の指定を前記ユーザ・インタフェース内に受け取るステップであって、前記順序付け列が1つまたは複数の順序付け値を含み、前記初期データセットが1つまたは複数の行を含み、各行が、対応するグループ化値、対応するパーティション値、および対応する順序付け値を含む、ステップと、
ｄ）前記1つまたは複数の行のうちの、共通パーティション値を共有する行を、前記共有される共通パーティション値に従って別個のパーティションにパーティショニングするステップと、
ｅ）各行の前記対応する順序付け値に従って各別個のパーティション内の前記行の各々の順位値を確立するステップと、
ｆ）各グループ内の、最低の前記順位値を有する行に対応する、別個のグループ化値グループごとの最小順位値を計算するステップと、
ｇ）最小順位値限界を満たさないグループ化値グループを除外するために前記別個のグループ化値グループの各々に前記最小順位値限界を適用するステップであって、前記最小順位値限界によって除外されない前記グループ化値グループが、前記限定されたデータセットを提供する、前記最小順位値限界を適用するステップと、
ｈ）指定された行制限を前記コンピュータのメモリーから読み込んで、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数が前記指定された行制限を超える場合は、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数を減らして当該行数が前記指定された行制限と一致させるが、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数が前記指定された行制限に達しない場合は、当該行数が前記指定された行制限と一致するまで、選択した前記行から成る前記限定行セットを拡張した前記行セットに、異なるパーティション値から成る追加行を挿入するステップと、
ｉ）前記限定されたデータセット内の特異なグループ化値ごとの行と特異なパーティション値ごとの列とを含むピボットテーブルに、選択した前記行から成る前記限定行セットを拡張した前記行セットを挿入するステップであって、各特異なグループ化値と各特異なパーティション値とが、特異なグループ化値−パーティション値の対を形成し、前記特異なグループ化値−パーティション値の対は、前記ピボットテーブル内の一意のセルを定義して、各特異なグループ化値−パーティション値の対で定義される各セルに、前記限定されたデータセット内の各特異な列から前記対応する順序付け値を追加することによって、前記限定されたデータセットの特異な列に対応するステップと、
ｊ）前記データベース・アプリケーション・プログラムへの前記ユーザ・インタフェース内の前記ピボットテーブルを表示するステップと、を含む方法を提供する。
１２．前記初期データセットにおけるグループ化列、パーティション列、および順序付け列の指定を受け取る前記ステップが、前記関係データベース内の追加の初期データセットに対して繰り返される、局面１１の方法。
１３．前記パーティション列に含まれる関心対象の前記値を限定するためにLIMIT SQL式を用いることをさらに含む、局面１１の方法。
１４．前記限定されたデータセットを前記関係データベースからクライアントデバイス上に含まれるアプリケーションプログラムに送ることをさらに含む、局面１１の方法。
１５．別の局面において、本開示は、データを関係データベース内の初期データセットから選択的に読み込んで限定されたデータセットを提供し、該データセットをピボットテーブルに組み入れるための非一時的なコンピュータ可読記録媒体であって、コンピュータの1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
ａ）前記初期データセットにおけるグループ化列の指定を受け取ることであって、前記グループ化列が、グループ化値の1つまたは複数のグループを含む、ことと、
ｂ）前記初期データセットにおけるパーティション列の指定を受け取ることであって、前記パーティション列が、1つまたは複数のパーティション値を含む、ことと、
ｃ）前記初期データセットにおける順序付け列の指定を受け取ることであって、前記順序付け列が1つまたは複数の順序付け値を含み、前記初期データセットが1つまたは複数の行を含み、各行が、対応するグループ化値、対応するパーティション値、および対応する順序付け値を含む、ことと、
ｄ）前記1つまたは複数の行のうちの、共通パーティション値を共有する行を、前記共有される共通パーティション値に従って別個のパーティションにパーティショニングすることと、
ｅ）各行の前記対応する順序付け値に従って各別個のパーティション内の前記行の各々の順位値を確立することと、
ｆ）各グループ内の、最低の前記順位値を有する行に対応する、別個のグループ化値グループごとの最小順位値を計算することと、
ｇ）最小順位値限界を満たさないグループ化値グループを除外するために前記別個のグループ化値グループの各々への前記最小順位値限界の適用であって、前記最小順位値限界によって除外されない前記グループ化値グループが、前記限定されたデータセットを提供する、前記最小順位値限界を適用することと、
ｈ）指定された行制限を前記コンピュータのメモリーから読み込んで、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数が前記指定された行制限を超える場合は、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数を減らして当該行数が前記指定された行制限と一致させるが、選択した前記行から成る前記限定行セットを拡張した前記行セットの行数が前記指定された行制限に達しない場合は、当該行数が前記指定された行制限と一致するまで、選択した前記行から成る前記限定行セットを拡張した前記行セットに、異なるパーティション値から成る追加行を挿入することと、
ｉ）前記限定されたデータセット内の特異なグループ化値ごとの行と特異なパーティション値ごとの列とを含むピボットテーブルに、選択した前記行から成る前記限定行セットを拡張した前記行セットを挿入することであって、各特異なグループ化値と各特異なパーティション値とが、特異なグループ化値−パーティション値の対を形成し、前記特異なグループ化値−パーティション値の対は、前記ピボットテーブル内の一意のセルを定義して、各特異なグループ化値−パーティション値の対で定義される各セルに、前記限定されたデータセット内の各特異な列から前記対応する順序付け値を追加することによって、前記限定されたデータセットの特異な列に対応することと、
ｊ）データベース・アプリケーション・プログラムへのユーザ・インタフェース内の前記ピボットテーブルを表示することと、を行わせる命令を含む非一時的なコンピュータ可読記録媒体を提供する。
【図面の簡単な説明】
【００１１】
【図１】ある例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するためのシステムのブロック図である。
【図２】ある例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するためのシステムのブロック図である。
【図３】ある例示的態様による、初期データセットの一例である。
【図４】ある例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するための方法の流れ図である。
【図５】ある例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するための方法の流れ図である。
【図６】ある例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するための方法の流れ図である。
【図７】ある例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するための方法の流れ図である。
【図８】ある例示的態様による、限定されたデータセットをピボットするための方法の流れ図である。
【図９Ａ】ある例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するための方法のデータセットの例である。
【図９Ｂ】ある例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するための方法のデータセットの例である。
【図９Ｃ】ある例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するための方法のデータセットの例である。
【図９Ｄ】ある例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するための方法のデータセットの例である。
【図１０Ａ】ある例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するための方法のデータセットの例である。
【図１０Ｂ】ある例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するための方法のデータセットの例である。
【図１０Ｃ】ある例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するための方法のデータセットの例である。
【図１０Ｄ】ある例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するための方法のデータセットの例である。
【図１１】ある例示的態様による、ピボットテーブルを提供するように限定されたデータセットをピボットするための方法のデータセットである。
【図１２】ある例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するSQL式の一例である。
【図１３】ある例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するSQL式の一例である。
【発明を実施するための形態】
【００１２】
詳細な説明
上述のように、ピボッティングは、通常、あるデータセットを取り込み、それをメモリにロードし、次いでそのデータセットを操作して、ピボットされるべき列内の離散値に基づいて行から列に値を移動させることによって行われる。しかし、メモリの物理的限界により、メモリにロードされるデータセットのサイズが制限される可能性がある。さらに、特定のデータセットが、ユーザに関連性のないデータを含む可能性もある。本開示は、ユーザに関連性のあるデータのみを選択的に取得するための方法を提供する。
【００１３】
本明細書で「排他的手法」と呼ぶ一手法は、ピボットテーブルに読み込むのに使用できる限定されたデータセットを提供するように初期データセットをフィルタリングして特定のピボットテーブルに寄与しない行を除去するように機能する。本明細書で「包含的手法」と呼ぶ別の手法は、特定のピボットテーブルを埋めるのに必要な行を正確に計算するように機能し、ピボットテーブルに読み込むのに使用できる限定されたデータセット内の行のみを含める。いくつかの態様では、上記の手法は構造化照会言語（SQL）を用いて実現される。本明細書に記載する手法は、当技術分野において現在用いられている手段と比べて、ユーザが関係データベースから所望の情報を獲得するためのより効率のよい手段を表すものである。
【００１４】
本発明を詳細に説明する前に、本発明は、記載する特定の態様だけに限定されず、本発明の態様は様々でありうることを理解されたい。また、本発明の範囲は添付の特許請求の範囲によってのみ限定されるものであり、本明細書で用いる用語は特定の態様を説明するためのものすぎず、限定することは意図されていないことも理解されたい。
【００１５】
特に定義しない限り、本明細書で用いるすべての科学技術用語は、本発明が属する技術分野の当業者が一般に理解するものと同義である。
【００１６】
本明細書で言及されるあらゆる文献は、それらの文献が関連して引用されている方法および/または材料を開示し、説明するために、参照により本開示に組み入れられる。本開示は、矛盾がある場合、組み入れられた文献のいかなる開示にも取って代わるものであることを理解されたい。さらに、提供するそうした文献の日付は実際の公開日と異なる場合があり、これについては個別に確認されたい。
【００１７】
本明細書および添付の特許請求の範囲で用いる場合、単数形「ある、1つの（a）/（an）、および「その（the）」は、文脈上明らかに他の意味に解すべきでない限り、複数への言及を含むものであることに留意されたい。よって、例えば、「あるデータベース（a database）」と言う場合、これは複数のそうしたデータベースを含み、以下同様である。
【００１８】
特許請求の範囲は任意の要素、例えば任意選択の要素を除外するように書かれている場合があることにさらに留意されたい。よって、この記述は、特許請求の要素の記載と関連した「もっぱら（solely）」、「〜のみ（only）」などの排他的用語の使用、または「消極的」限定の使用の先行基礎の役割を果たすものである。
【００１９】
本開示を読めば当業者には明らかになるように、本明細書に記載され、例示されている個別態様の各々は、本発明の範囲または趣旨を逸脱することなくその他のいくつかの態様のいずれかの特徴から容易に分離し、またはそれらの特徴と組み合わせることができる個別の構成要素および特徴を有する。記載の方法はいずれも、記載されるイベントの順序で、または論理的に可能な任意の他の順序で実行することができる。
【００２０】
本発明の実施に際しては本明細書に記載する方法および材料と類似した、またはそれらと均等な任意の方法および材料を用いることができるが、いくつかの潜在的、例示的な方法および材料について次に説明する。
【００２１】
本明細書に記載する方法およびシステムによって対処されうる非能率点の一例は、アプリケーションプログラムが、データベースからのデータをアプリケーションプログラムのメモリの物理的限界内で処理することができるよりも多く処理しようとする状況である。さらに、たとえデータをメモリの物理的限界内で処理できる場合でさえも、関連性がないデータが、ユーザに関連性のあるデータと共にデータセットにおいて集約される。したがって、データセット内の集約データは支離滅裂な形で提示されることもある。本明細書に記載する方法およびシステムの局面によれば、非関連データから関連データがパースされるように、ユーザに関連性があるデータを初期データセットから選択的に取得することができる。
【００２２】
本明細書に記載する、ピボットテーブルに組み入れるための限定されたデータセットを提供するために初期データセットからデータを選択的に取得するための方法は、上述の非能率点のない改善された手法を表すものである。データを選択的に取得することは、ユーザに関連性のないデータを除外することおよび/またはユーザに関連性のあるデータを含めることを含む。クライアントデバイス上のアプリケーションプログラムにより、ユーザは、ユーザに関連性のあるデータを指定するだけでなく、後で集約され、限定されたデータセットに出力される初期データセット内のデータを制限することができる。
【００２３】
説明するように、「データセット」とは概してデータの集合体を指す。ある例では、データセットは、1つまたは複数のデータ行と1つまたは複数のデータ列とを含む。データセット内では、各データ行および/または各データ列は、各行および/または各列内に含まれる値の種類をユーザに表示するために、行識別子および/または列識別子で表される。
【００２４】
いくつかの態様では、データセットは初期データセットを指す。本明細書に記載する場合、「初期データセット」という用語は、概して、関係データベース内の1つまたは複数のテーブルからのデータの集合体を指す。ある例では、初期データセットは、クライアントデバイスのデータ記憶領域および/またはメモリに格納されている。別の例では、初期データセットは、データベースのデータ記憶領域および/またはメモリに格納されている。
【００２５】
一態様によれば、初期データセットは、グループ化列、パーティション列、および順序付け列を含むことができる。グループ化列、パーティション列、および順序付け列は、ユーザによって事前に指定されたデータ列とすることができる。ある例では、データ列の指定は任意に指定される。
【００２６】
別の例では、アプリケーションプログラムを用いて、例えば、以前のユーザ履歴に基づいて、初期データセット内のどの特異なデータ列が、グループ化列、パーティション列、および順序付け列として指定されるかが決定される。次に、以下の表1を参照して、グループ化列、パーティション列、および順序付け列の指定について詳細に説明する。
【００２７】
（表１）
0006710224.tif 000002
【００２８】
上記のテーブルでは、データは、3ヶ月間にわたって電子商取引サイトから注文を出した男性/女性の人数を表している。ここで、ユーザは、例えば、クライアントデバイス上に設けられたアプリケーションプログラムを介して、例えば、「月」列をグループ化列として、「性別」列をパーティション列として、「注文数」列を順序付け列として指定する。
【００２９】
ある例では、ユーザが以前のインスタンスにおいて月列をグループ化列として、性別列をパーティション列として頻繁に指定したことがある場合には、アプリケーションプログラムは、性別をパーティション列として選択する反復および頻度は、今後の列入力の指定についてのユーザの好みを示していると判断する。したがって、アプリケーションプログラムは、最小限の入力で、かつ/またはユーザからの入力なしで、グループ化列、パーティション列、および順序付け列を自動的に指定するようにプログラムされる。例えば、アプリケーションプログラムが、最小限の入力で、かつ/またはユーザからの入力なしで、グループ化列、パーティション列、および順序付け列を自動的に指定することができる利点は、ユーザが特異な列を指定するのを待つ必要を回避することによってユーザ入力をほとんどもしくはまったく必要とせず、データ処理の遅延を防ぐシームレスなプロセスによって、初期データセット内の処理されるべきデータがり迅速に処理されることである。これは、例えば、長期間に、大規模な初期データセットサンプル全体にわたって含まれる大量のデータを処理する必要がある場合に有益となりうる。
【００３０】
本明細書に記載する場合、「グループ化列」とは、概して、1つまたは複数の本明細書に記載するグループ化値を含む、データセット内の、例えば初期データセット内の列を指す。グループ化列の各特異なグループ化値は、グループ化値グループの階層全体の一部であってよい。いくつかの態様では、特異なグループ化値のうちの少なくとも1つは繰り返し値、例えば、グループ化列の2つ以上の行に出現する値であり、「繰り返しグループ化値」として知られている。
【００３１】
本明細書に記載する場合、「パーティション列」とは、概して、1つまたは複数の本明細書に記載するパーティション値を含む、データセット内の、例えば初期データセット内の列を指す。パーティション列の各特異なパーティション値は、パーティション値のパーティションの階層全体の一部であってよい。いくつかの態様では、特異なパーティション値のうちの少なくとも1つは繰り返し値、例えば、パーティション列の2つ以上の行に出現する値である。ある例では、アプリケーションプログラムは、「繰り返しパーティション値」を指定する。この用語は、概して、パーティション列の2つ以上の行で繰り返されるパーティション値を指す。
【００３２】
本明細書に記載する場合、「順序付け列」とは、概して、1つまたは複数の本明細書に記載する順序付け値を含む、データセット内の、例えば初期データセット内の列を指す。各順序付け値は、概して、グループ化値とパーティション値とに対応する。例えば、初期データセットの特定の行は、グループ化列のグループ化値、パーティション列の対応するパーティション値、および順序付け列の対応する順序付け値を含む。いくつかの態様では、データセットの各行の対応する順序付け値を用いて、各別個のパーティション内の各行の順位値を決定することができる。
【００３３】
本明細書で用いる「値」という用語は、概して、数値を指す。態様によっては、「値」は数を含まない。例えば、いくつかの態様では、順序付け値は、記号、テキスト、または言葉である。そうした例では、適切なアプリケーションプログラム、例えば、データベース・アプリケーション・プログラムは、論理を用いて非数値、例えばテキストや記号を順位付けする組み込みアルゴリズムを有する。これに関しては当技術分野において公知の任意の適切な順位付けアルゴリズムが用いられうる。これらの値は、グループ化値、パーティション値、および順序付け値に適用できる。
【００３４】
本明細書に記載する場合、「順位付け」という用語は、概して、いくつかの態様による、各別個のパーティション内に含まれる行ごとの順位値を確立するプロセスおよび/またはグループ化値グループの最小順位値限界を確立するプロセスを指す。いくつかの態様では、「順位値」という用語は、概して、各行の順序付け値に従って各別個のパーティション内の行の各々について確立された順位値を指す。いくつかの態様では、別個のパーティション内の各行の順位付けは、各パーティションに含まれる他の行の順序付け値に対する各行の順序付け値に従って決定される。
【００３５】
いくつかの態様では、各別個のパーティション内の行の順位付けは、昇順の順位付け（例えば、1が最低順位であり、10が最高順位である）または降順の順位付け（例えば、1が最高順位であり、10が最低順位である）によって行われてよい。
【００３６】
「最小順位値」という用語は、概して、特異なグループ化値グループごとに確立された最小順位値を指す。いくつかの態様では、最小順位値は、各特異なグループ化値グループ内に含まれるすべての行を調べ、最低の順位値を有する行を識別することによって決定することができる。
【００３７】
いくつかの態様では、最小順位は、SQL式:min_rankを用いて決定され、「min_rank」は、「MIN」コマンドを「RANK」コマンドの結果に適用した値を表す。例えば、データセット内の列（g-p）の最小順位を決定するのに、適切なSQL式は、min_rank（g-p）である。本明細書の例には特定のSQL方言が利用されているが、任意の適切なSQL方言またはデータベース問合せ言語を本明細書に記載する方法およびシステムと関連付けて利用できることに留意されたい。
【００３８】
「最小順位値限界」という用語は、概して、別個のグループ化値グループの各々に最小順位値限界を適用することを指すのに用いられる。適切なアプリケーションプログラムは、最小順位値限界を満たさないグループを識別し、その後、そうしたグループ（すなわち、各特異なグループ内に含まれるすべての行およびそれらの行に対応する縦の列のデータ）を、限定されたデータセットで提供されないよう除外することができる。
【００３９】
いくつかの態様では、最小順位値限界は、SQL式:min（_r）＞LIMITを用いて決定され、式中、（_r）は順位値限界を表す。例えば、min_rank≦2が指定される場合、アプリケーションソフトウェアは、min_rankが2以下であるグループ化値グループを除外する。
【００４０】
いくつかの態様では、最小順位値限界は、限定されたデータセットで提供されるべき初期データセットからのデータを制限し、それによって、関係データベースの利用可能なメモリで処理される必要のあるデータの量を制限するのに利用することができる。
【００４１】
SQL式:min（_r）＞LIMITは、どんな選別値がピボットされるかに関係なく、この行が、限定されたデータセットには存在しえないことを意味している。なぜならば、この行が、順位限界に従って除外されているであろうからである。例えば、以下を参照されたい。
0006710224.tif 000003
【００４２】
初期データセット、限定されたデータセット、およびピボットテーブルは、概して、値の集合体を含む。本明細書に記載する場合、「値」は、整数、分数、および、記号、文字、もしくは言葉、またはそれらの組み合わせといった非数値を指す。記号値の一例が、♂（男性）および♀（女性）である。言葉値の一例が、「男性」および「女性」である。
【００４３】
限定されるデータが整数ではない場合には、SQL式で符号化されるようにデータを整数に変換し、次いで、計算後に逆変換する必要が生じる場合があり、これには、それらの値で必要とされる値の範囲および精度に関する追加情報が必要となりうる。
【００４４】
いくつかの態様では、データセットは限定されたデータセットを指す。本明細書に記載する場合、「限定されたデータセット」という用語は、概して、例えば、ある特定の基準に従って初期データセットと比べて限定され、本明細書に記載するピボットテーブルに読み込むのに用いられうるデータの集合体を指す。
【００４５】
いくつかの態様では、1つまたは複数の限定されたデータセットを提供するために1つまたは複数の初期データセットが選択される。
【００４６】
いくつかの態様では、限定されたデータセットを提供するステップの後に、限定されたデータセットをピボットテーブルに組み入れるステップが続く。本明細書に記載する場合、「ピボットテーブル」とは、概して、元のデータ構造を変更せずに、各データ列および各データ行が関係データベースの1つまたは複数のテーブルに格納されている方法に対して、ユーザに提示するために選択されたデータ列およびデータ行を再編成して集計するデータ集計ツールを指す。ピボットするステップにおいて、ユーザは、データテーブル内のデータフィールドの構造を実質的または図式的に変更することによって、データの提示のし方を変更することができる。いくつかの態様では、データテーブルのピボッティングは、スプレッドシートアプリケーション上でフィールドをドラッグ・アンド・ドロップすることによって実行される。ユーザは、ドラッグ・アンド・セレクトのジェスチャを用いて、実質的または図式的に変更されるべきデータフィールドを選択してもよい。データテーブルの「ピボッティング」は、データテーブルの「回転」としても知られている。
【００４７】
本明細書に記載する場合、「限定された行セット」という用語は、概して、適切なアプリケーションプログラム、例えばデータベース・アプリケーション・プログラムによって実行される規則または命令によって1つまたは複数の初期データセット内の行値の集合体を限定することにより生じる行セットを指す。いくつかの態様では、繰り返すパーティション値を含む初期データセット内の行は、限定された行セットを提供するために各選択行の対応する順序付け値に順位付けすることによってさらに限定される。
【００４８】
いくつかの態様では、ピボットテーブルには、限定されたデータセット内の特異なグループ化値ごとの行と特異なパーティション値ごとの列とを含むテーブルから組み入れることができる。各特異なグループ化値および各特異なパーティション値は、ピボットテーブル内の一意のセルを定義する特異なグループ化値-パーティション値の対を形成する。ピボットテーブル内の一意のセルは、限定されたデータセットの特異な行に対応する。ピボットテーブル内の一意のセルには、各特異なグループ化値-パーティション値の対によって、限定されたデータセット内の各特異な行からの対応する順序付け値が読み込まれる。
【００４９】
いくつかの態様では、グループ化列、パーティション列、および順序付け列の指定は、限定されたデータセットを提供するための初期データセットからのデータの選択的取得を円滑化するのみならず、ピボットテーブルに組み入れるべき限定されたデータセットのピボッティングも円滑化する。
【００５０】
上述の用語は、以上に明記した局面の組み合わせだけに限定することを意図したものではない。例えば、初期データセットおよび限定されたデータセットは、データセットに概して適用されるものとして上述の用語を組み入れることもできる。
【００５１】
いくつかの態様では、グループ化列およびパーティション列は、初期データセットにおいていかなる繰り返しグループ化値も共有される共通パーティション値も含まない。それにもかかわらず、アプリケーションプログラムは、なお、繰り返しグループ化値がない特異なグループ化値グループを指定するステップと、限定されたデータセットを提供するようにたとえ初期データセットに共有される共通パーティション値がない場合でさえも、パーティション値の特異なパーティションを作成するステップとを効果的に実行するようにプログラムされる。
【００５２】
いくつかの態様では、適切なアプリケーションプログラム、例えばデータベース・アプリケーション・プログラムは、例えば、複数のデータテーブルに由来するデータおよび/または複数のデータベースに由来するテーブルからのデータを用いて、複数の初期データセットから単一の限定されたデータセットを提供するように構成されている。他の態様では、アプリケーションプログラムは、複数の初期データセットから複数の限定されたデータセットを提供するように構成されている。他の態様では、アプリケーションプログラムは、単一の初期データセットから複数の限定されたデータセットを提供するように構成されている。
【００５３】
いくつかの態様では、複数の初期データセットからデータを選択的に取得するための方法は、単一のクライアントデバイスから開始することができる。いくつかの態様では、複数の初期データセットからデータを選択的に取得するための方法は、複数のクライアントデバイスから開始することができる。いくつかの態様では、複数のクライアントデバイスは、協調して（または協働して）初期データセットから選択的に取得すべきデータを決定する。いくつかの態様では、複数のクライアントデバイスが協働して選択的に取得すべきデータを決定する方法は、当技術分野において共同編集として知られているプロセスによってリアルタイムで行われる。そうした例では、異なるコンピュータを使用している複数のユーザは、どのデータを初期データセットから選択的に取得すべきか決定することができる。リアルタイムの共同編集では、複数のユーザは同時にデータを選択的に取得する同じプロセスを編集することができる。別の例では、複数のユーザは、異なるユーザに、同時ではないが、同じファイルを編集するためのアクセスまたは権限を与える非リアルタイムの共同編集としてデータを選択的に取得する同じプロセスを編集することができる。例えば、下位のユーザに、方法を指定するための1つまたは複数のコマンドを指定するタスクが与えられる。しかし、関係データベースのアプリケーションプログラムは、管理ユーザが下位ユーザのコマンドを承認するまでデータ取得のステップを実行しない。
【００５４】
本明細書に記載する場合、「データネットワーク」とは、インターネットワーク（例えば、広域ネットワーク（WAN））やローカル・エリア・ネットワーク（LAN）、有線または無線ネットワーク、Zig-Bee、または、BluetoothやIEEE 802.15.1などのパーソナル・エリア・ネットワーク（PAN）、またはWi-Fi IEEE 802.11やセルラ・データ・ネットワークやグローバル・データ・ネットワークを含む、あらゆる種類の通信ネットワークを指す。いくつかの態様では、データネットワークはクラウドベースとすることができる。
【００５５】
本明細書に記載する場合、「クライアントデバイス」とは、ラップトップなどのパーソナルコンピュータを指し、またはモバイル機器を指し、またはコンピュータタブレットを指す。概して、クライアントデバイスは、プロセッサまたは中央処理装置（「CPU」）とメモリと命令を送受信する手段とを含む任意のハードウェア構成要素を指す。いくつかの態様では、クライアントデバイスのコンピュータプロセッサは、データパケットを送り、かつ/または受け取るようにプログラムされる。いくつかの態様では、クライアントデバイスは、データ記憶ユニットをさらに含む。いくつかの態様では、クライアントデバイスは、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するプロセスに関連した命令を実行し、かつ/または命令を受け取るように構成された適切なアプリケーションプログラム、例えば、データベース・アプリケーション・プログラムを含む。加えて、アプリケーションプログラム、例えばデータベース・アプリケーション・プログラムは、ピボット・データ・テーブルを提供するように限定されたデータセットをピボットするステップを実行するようにも構成されている。
【００５６】
いくつかの態様では、クライアントデバイスは、本明細書に記載する方法を実施するためのアプリケーションプログラム、例えばデータベース・アプリケーション・プログラムを含む非一時的なコンピュータ可読記録媒体を含む。
【００５７】
上述のように、クライアントデバイスは、第1のコンピューティングデバイスまたはその構成要素とすることができる。代替として、またはこれに加えて、クライアントデバイスは、第2のコンピューティングデバイスまたはその構成要素を含んでいてもよい。ある例では、コンピューティングデバイスはコンピュータサーバである。いくつかの態様では、コンピューティングデバイスは、パーソナルコンピュータ、タブレット、および/またはスマートフォンである。
【００５８】
本明細書に記載する場合、「データベース」という用語は、概して、メモリに格納された、編成されたデータ集合体を指す。いくつかの態様では、データベースは関係データベースである。いくつかの態様では、データベースはサーバを含む。他の態様では、「データベース」という用語は、データを分析し、取り込み、格納し、処理するために1つまたは複数のクライアントデバイスと対話するように構成されたコンピュータ・ソフトウェア・アプリケーションを指す。他の態様では、「データベース」という用語は、ハードディスク記憶といった、物理的なデータ記憶領域を指す。あるいは、他の態様では、「データベース」という用語は、クラウドベースの記憶システムを指す。業界の例には、Google DriveやiCloudが含まれる。
【００５９】
いくつかの態様では、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するためのコンピュータ実装方法は、少なくとも一部は構造化照会言語（SQL）を用いて実施することができる。いくつかの態様では、本方法は、少なくとも一部はハイブリッドSQL命令を用いて実施される。他の態様では、本方法は、少なくとも一部はNoSQL、xQuery、XPath、QUEL、MQL、LNQによって実施される。本明細書に記載する方法を実行するのに使用できる任意の適切な問合せ言語がそうした方法と関連付けて利用される。
【００６０】
関心対象の一態様では、1つまたは複数のデータベースは関係データベースであり、データベース問合せ言語はSQLである。いくつかのそうした態様では、本開示による方法は、限定されたデータセットに読み込むために1つまたは複数の初期データセットからデータを選択的に限定するコマンドをユーザから受け取るステップを含む。いくつかの態様では、データベース問合せはハイブリッドSQL問合せである。
【００６１】
本明細書に記載する場合、「アプリケーションプログラム」という用語は、概して、汎用コンピュータによって実行されるように構成された専用の関数または命令を指す。そうした専用の関数または命令は、当業者には一般にソフトウェアとして知られている。いくつかの態様では、アプリケーションプログラムは、コンピュータプロセッサ、メモリ（例えば、RAM）、データ記憶領域、およびオペレーティングシステム（一般にはコンピュータデータベースに格納されている）を含む、基本的なコンピュータ構成要素の組み合わせによって実行される。
【００６２】
いくつかの態様では、クライアントデバイスおよび/または関係データベースは、1つまたは複数のコンピュータプロセッサを含む。1つまたは複数のプロセッサは、クライアントデバイスおよび/または関係データベースのメモリまたは記憶領域に格納された命令を実行する。アプリケーションプログラムは、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するために1つまたは複数の命令を実行させることができる。いくつかの態様では、アプリケーションプログラムは、ウェブベースのプログラムである。例えば、ウェブベースのアプリケーションは、HTMLまたはJavascript、またはユーザがインターネット上でウェブブラウザを動作させている間に管理することができる他のウェブ固有の技術を用いて書かれている。
【００６３】
方法、システム、およびデバイス
次に、図を参照して、本開示の例示的な方法、システムおよびデバイスについて説明する。
【００６４】
図1に、ある例示的態様による、1つまたは複数の初期データセットから限定されたデータセットを提供するためにデータを選択的に取得するためのシステムのブロック図を示す。図1に示すように、システム100は、概して、クライアントデバイス110と、データネットワーク130と、データベース140とを含む。
【００６５】
クライアントデバイス110は、それだけに限らないが、限定されたデータセットを提供し、かつ/または限定されたデータセットをピボットテーブルに組み入れるように初期データセットからデータを選択的に取得するコマンドまたは命令を実行するアプリケーションプログラム112を含んでいてよい。クライアントデバイス110は、プロセッサ114と、ランダム・アクセス・メモリ（RAM）116と、永続的データ記憶領域118とをさらに含んでいてよい。別の例では、データ記憶領域は、クラウドベースの記憶領域（不図示）で置き換えられ、または補足される。いくつかの態様では、初期データセット122はクライアントデバイス110に由来し、クライアントデバイス110のコンピュータプロセッサは、初期データセット122を関係データベース140に送るようにプログラムされる。いくつかの態様では、クライアントデバイス110のコンピュータプロセッサは、データベース140から限定されたデータセット124を受け取り、限定されたデータセットをさらに利用してピボットテーブル126を提供するようにプログラムされ、ピボットテーブル126は、例えば、クライアントデバイス上で表示される。いくつかの態様では、クライアントデバイスのコンピュータプロセッサは、単一の初期データセットを複数のデータベースに送るようにプログラムされる。別の例では、クライアントデバイスは、複数の初期データセットを複数のデータベースに送るようにプログラムされる。
【００６６】
アプリケーションプログラムは、クライアントデバイスのオペレーティングシステムによって実施されてよい。別の例では、アプリケーションプログラム112は、非一時的なコンピュータ可読記録媒体に格納されている。別の例では、ソフトウェアアプリケーション112は、ウェブベースのアプリケーションであり、外部サーバまたは外部データベース（不図示）に格納されている。
【００６７】
データネットワーク130は、インターネットネットワーク（例えば、広域ネットワーク（WAN））やローカル・エリア・ネットワーク（LAN）、有線または無線ネットワーク、Zig-Bee、または、BluetoothやIEEE 802.15.1などのパーソナル・エリア・ネットワーク（PAN）、またはWi-Fi IEEE 802.11やセルラ・データ・ネットワークやグローバル・データ・ネットワークを含む、任意の種類の通信ネットワークを指す。いくつかの態様では、データネットワークはクラウドベースとすることができる。
【００６８】
記憶装置118は1つまたは複数の非一時的なコンピュータ可読記憶媒体も含む。記憶装置118はさらに、情報の長期記憶のために構成されていてよい。いくつかの態様では、記憶装置118は、不揮発性記憶素子を含む。不揮発性記憶素子の非限定的な例には、磁気ハードディスク、光ディスク、フロッピーディスク、フラッシュメモリ、または電気的書込み可能メモリ（EPROM）や電気的消去可能書込み可能（EEPROM）メモリが含まれる。
【００６９】
本明細書に記載する無線ネットワークには、それだけに限らないが、符号分割多元接続（CDMA）ネットワーク、GSM（Group Special Mobile or the Global System for Mobile Communications）ネットワークおよびGPRS（General Packet Radio Service）ネットワーク、EDGE（Enhanced Data-rates for Global Evolution）やUMTS（Universal Mobile Telecommunications Systems）といった第3世代（3G）ネットワーク、モバイルWiMAXやLTE（Long Term Evolution）といった第4世代（4G）ネットワーク、IMT-Advanced（International Mobile Telecommunications-Advanced）ネットワーク、ならびに現在の4G/IMT-Advancedを規格の機能を拡張した将来の第5世代（5G）ネットワークが含まれうる。無線ネットワークの例には、例えば、BLUETOOTHネットワーク、無線パーソナル・エリア・ネットワーク、無線802.11ローカル・エリア・ネットワーク（LAN）、および/または無線電話技術ネットワーク（例えば、セルラ、PCS、またはGSMネットワーク）が含まれる。
【００７０】
関係データベース140は、データ記憶ユニットおよび/またはウェブベースの記憶装置（不図示）といったデータ記憶領域150を含むことができる。例えば、ウェブベースの記憶領域はクラウドベースの記憶領域として知られている。例えば、データベース140は、データベース140のアプリケーションプログラム146に、初期データセットからデータを選択的に取得するコマンドまたは命令を実行するよう命令するクライアントデバイス110からの命令を受け取るようにプログラムされる。データベース140は、クライアントデバイス110から初期データセットを受け取るようにさらにプログラムされる。別の例では、初期データセット122は、代わりに、データベースのデータ記憶領域に、またはクラウドベースの記憶領域（すなわち、クラウド記憶領域）最初に格納される。いくつかの態様では、限定されたデータセット124は、データ記憶領域150またはクラウドベースの記憶領域（不図示）に格納される。
【００７１】
図2は、ある例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するためのシステム200のブロック図である。
【００７２】
図2に示すように、システム200は、概して、複数のクライアントデバイス210、212、214と、データネットワーク230と、データベース240とを含む。クライアントデバイス210、212、214のコンピュータプロセッサは、クライアントデバイス210、212、214に、複数の初期データセット260、262、264、266を関係データベース240へ送信させるようにプログラムされる。一例では、クライアントデバイス（1）210のコンピュータプロセッサは、クライアントデバイス（1）に、限定されたデータセット270を提供するように2つの初期データセット260、262を関係データベース240へ送信させるようにプログラムされる。クライアントデバイス（2）212は、クライアントデバイス（2）に、初期データセット264のデータの少なくとも一部分が、クライアントデバイス（3）214によって送信される別の初期データセット266と結合されるように初期データセット264を関係データベース240へ送信させるようにプログラムされる。初期データセット264のデータと初期データセット266のデータは、限定されたデータセット272を提供するように集約されるか、または組み合わされる。
【００７３】
複数の初期データセット260、262、264、266は、複数の異なるクライアントデバイス210、212、214によって関係データベース240に送信される。いくつかの態様では、システム200は、関係データベース240が、複数の限定されたデータセットを提供するために複数の初期データセットから受け取ったデータの各部分を組み合わせるか、または集約するようにプログラムされていることに対して描かれている。
【００７４】
図2には示されていないが、クライアントデバイス210、212、214の各々は、それだけに限らないが、図1に示したクライアントデバイス110の例示的な構成要素を含む。クライアントデバイス210、212、214は、アプリケーションプログラムと、コンピュータプロセッサと、ランダム・アクセス・メモリと、オペレーティングシステムと、永続的データ記憶領域とを含む。コンピュータプロセッサは、限定されたデータセットを提供し、かつ/または限定されたデータセットをピボットテーブルに組み入れるように初期データセットからデータを選択的に取得するよう求めるアプリケーションプログラムによるコマンドまたは命令を実行するようにプログラムされる。アプリケーションプログラムは、クライアントデバイスのオペレーティングシステムによって実施されてよい。別の例では、アプリケーションプログラムは、非一時的なコンピュータ可読記録媒体に格納されている。別の例では、ソフトウェアアプリケーションは、ウェブベースのアプリケーションであり、外部サーバまたは外部データベース（不図示）に格納されている。
【００７５】
図2に示すように、関係データベースのコンピュータプロセッサ（不図示）は、受け取った複数の別個の受信初期データセット260、262、264、266からデータを選択的に取得するようにプログラムされる。いくつかの態様では、関係データベースは、アプリケーションプログラムに従って複数の受け取った別個の初期データセットからデータを選択的に取得するようにプログラムされる。いくつかの態様では、クライアントデバイス210、212、214は、限定されたデータセット270、272の組み合わせを受け取るようにプログラムされる。一例では、クライアントデバイスのうちの1つまたは複数は限定されたデータセットのいずれも受け取らない。別の例では、クライアントデバイスのうちの1つまたは複数は、限定されたデータセット270、272のうちのいくつかまたは一部分を受け取るようにプログラムされる。別の例では、クライアントデバイスのうちの1つまたは複数は、提供されたすべての限定されたデータセット270、272を受け取るようにプログラムされる。クライアントデバイスが受け取った限定されたデータセットは、ピボットテーブルを提供するようにクライアントデバイスの適切なアプリケーションプログラム、例えばデータベース・アプリケーション・プログラムによってさらにピボットされる。
【００７６】
いくつかの態様では、初期データセット260、262、264、266は、（図1のデータ記憶装置150のような）データ記憶ユニットに格納される。限定されたデータセット270、272は、データ記憶ユニットにさらに格納される。いくつかの態様では、データベース240のデータセットの一部分が、例えば、迅速な取得を可能にするために、データベース240のRAMに提供される。いくつかの態様では、データベース240のデータセットの一部分が、ウェブベースの記憶領域（例えばクラウド）に格納される。
【００７７】
図3は、一例による初期データセットである。図3に示すように、初期データセット300は、1年の異なる月（すなわち、12/13、1/14、および2/14）で表されているグループ化値を含む「月」のグループ化列302を含む。初期データセットは、性別（男性、女性）で表されているパーティション値を含む「性別」のパーティション列304をさらに含む。初期データセットは、異なる値で表されている順序付け値を含む「注文数」の順序付け列306をさらに含む。図3に示すように、各特異な行は、対応するグループ化値、対応するパーティション値、および対応する順序付け値を含む。図3に示すように、グループ化列は別個のグループ化値（例えば、02/14）を含む。図3に示すように、パーティション列は、初期データセットの各行で繰り返されるパーティション値（例えば、男性と女性）を含む。例えば、初期データセットでは、パーティション列が「男性」値の2回の出現および「女性」値の3回の出現を含む図3を参照されたい。
【００７８】
排他的手法
図4は、ある例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するための方法400の流れ図である。この例示的態様は、本開示の排他的手法の一態様を示すものである。ステップ402で、データベースは、例えば、アプリケーションプログラムによって指定された、初期データセットにおけるグループ化列の指定を受け取る。いくつかの態様では、指定のステップに先立ち、データベースは、データベース・アプリケーション・プログラムを実行するためのステップを開始するよう求めるアプリケーションプログラムからのコマンドまたは命令を受け取る。
【００７９】
ステップ404で、データベースは、例えば、アプリケーションプログラムによって指定された、初期データセットにおけるパーティション列の指定を受け取る。ステップ406で、データベースは、例えば、アプリケーションプログラムによって指定された、初期データセットにおける順序付け列の指定を受け取る。
【００８０】
いくつかの態様では、グループ化列、パーティション列、および順序付け列の指定は、クライアントデバイスのアプリケーションプログラムを介してユーザによって手作業で指定される。いくつかの態様では、グループ化列、パーティション列、および順序付け列の指定は、クライアントデバイスおよび/またはデータベースに含まれるデータベース・アプリケーション・プログラムによって自動的に指定される。
【００８１】
その後、ステップ408で、アプリケーションプログラムに応答して、データベースは、初期データセット内の1つまたは複数の行のうちの、共通パーティション値を共有する行を、共有される共通パーティション値に従って別個のパーティションにパーティショニングする。例えば、図9Aを参照すると、前記行は別個のパーティション（p＝1、2、3）にパーティショニングされており、各パーティション内の行は共有される共通パーティション値を含む。
【００８２】
ステップ410で、アプリケーションプログラムに応答して、データベースは、各行の対応する順序付け値に従って各別個のパーティション内の行の各々の順位値を確立する。例えば、図9Bを参照すると、各別個のパーティション（p＝1、2、3）内の行の各々は各行の対応する順序付け値に従って順位付けされている。各行の順位値は列（_r）で指定されている。例えば、行a-1-100は、最高の順序付け値を有するため1という順位値を含み、行c-1-5は、最低の順序付け値を有するため4という順位値を含む。いくつかの態様では、各別個のパーティション内の行は昇順に従って順位付けされる。いくつかの態様では、各別個のパーティション内の行は降順に従って順位付けされる。
【００８３】
その後、ステップ412で、アプリケーションプログラムに応答して、データベースは、各グループ内の、最低の順位値を有する行に対応する、別個のグループ化値グループごとの最小順位値を計算する。別の例では、各グループの順位値は、代わりに、各グループ内の、最高の順位値を有する行に対応する、最高の順位値に対応する。
【００８４】
例えば、図9Cを参照すると、特異なグループ（g＝a）は、1という順位値を有する行を含むため、1という最小順位値を有する。グループ（g＝b）は、このグループ内のすべての行における3という最低の順位値を含むため、3という最小順位値を有する。図9Cに示すように、最小順位値は列min_rank（g-p）として示されている。いくつかの態様では、順位値が最高の順位値を有する各グループ内の行に対応する場合、データベースは、最高の順位値を有する各グループ内の行を識別する。
【００８５】
初期データセット内のグループごとに最小順位値を計算するステップは、SQL問合せで実行される。例えば、以下のとおりである。
0006710224.tif 000004
【００８６】
ステップ414で、アプリケーションプログラムに応答して、データベースは、最小順位値限界を満たさないグループ化値グループを除外するために別個のグループ化値グループの各々に最小順位値限界を適用する。いくつかの態様では、最小順位値限界によって除外されないグループ化値グループは、限定されたデータセットを提供する。データベースは最小順位値限界を適用し、これは、概して、特異なグループ化値グループごとに最小順位値限界を確立することを指す。ある例では、最小順位値限界は、アプリケーションプログラムによって指定されるピボットテーブルの行制限に対応したものである。例えば、データベースは、例えば、アプリケーションプログラムによって行制限が指定されたピボットテーブルを提供するように、初期データセットのどの行を限定されたデータセットに組み入れる必要があるか識別することができる。
【００８７】
例えば、図9Dを参照すると、図9Dは≦2とい最小順位値限界（不図示）が別個のグループ化値グループに適用されたものである。（min_rank）≦2の最小順位値を含まない別個のグループは、限定されたデータセットへの提供から除外されている。
【００８８】
いくつかの態様では、順位値は数である。順位値は、記号、文字、または言葉であってもよい。いくつかの態様では、限界は、限界を超える値を除外するための閾値を表す。いくつかの態様では、限界は、限界を超え、または限界値に等しい値を除外するための閾値を表す。別の例では、限界は、限界値を下回る値を除外するための閾値を表す。別の例では、限界は、限界を下回り、または限界値に等しい値を除外するための閾値を表す。
【００８９】
限定されたデータセットを提供するために初期データセットからデータを選択的に取得する図4に記載されるステップを実施するのに用いられるSQL式の例を以下に示す。
0006710224.tif 000005
【００９０】
いくつかの態様では、限定されたデータセットは、アプリケーションプログラムによって提供されると、その後、クライアントデバイスに送られる。限定されたデータセットをクライアントデバイスに送るかどうか決定する際に考慮すべき要因には、クライアントデバイスにおいて利用できるメモリキャッシュ、進行中のプロセスの数、限定されたデータセットのファイルサイズ、および限定されたデータセットを送信するためのデータネットワークが利用できるかどうかが含まれる。
【００９１】
さらに、図4のステップの一部は、追加の限定されたデータセットを提供するために、追加の初期データセットについて繰り返される。
【００９２】
図5は、一例による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するための方法500の流れ図である。ステップ502で、アプリケーションプログラムは、初期データセットにおけるグループ化列を指定する。ステップ504で、アプリケーションプログラムは、初期データセットにおけるパーティション列を指定する。ステップ506で、アプリケーションプログラムは、初期データセットにおける順序付け列をさらに指定する。いくつかの態様では、指定のステップに先立ちアプリケーションプログラムは、データベース・アプリケーション・プログラムを実行するための命令またはコマンドを送る。
【００９３】
ステップ508で、アプリケーションプログラムに応答して、データベースは、初期データセット内の1つまたは複数の行のうちの、共通パーティション値を共有する行を、共有される共通パーティション値に従って別個のパーティションにパーティショニングする。例えば、図9Aを参照すると、前記行は別個のパーティション（p＝1、2、3）にパーティショニングされており、各パーティション内の行は共有される共通パーティション値を含む。
【００９４】
ステップ510で、アプリケーションプログラムに応答して、データベースは、各行の対応する順序付け値に従って各別個のパーティション内の行の各々の順位値を確立する。例えば、図9Bを参照すると、各別個のパーティション（p＝1、2、3）内の行の各々は各行の対応する順序付け値に従って順位付けされている。各行の順位値は列（_r）で指定されている。例えば、行a-1-100は、最高の順序付け値を有するため1という順位値を含み、行c-1-5は、最低の順序付け値を有するため4という順位値を含む。いくつかの態様では、各別個のパーティション内の行は昇順に従って順位付けされる。いくつかの態様では、各別個のパーティション内の行は降順に従って順位付けされる。
【００９５】
その後、ステップ512で、アプリケーションプログラムに応答して、データベースは、各グループ内の、最低の順位値を有する行に対応する、別個のグループ化値グループごとの最小順位値を計算する。別の例では、各グループの順位値は、代わりに、各グループ内の、最高の順位値を有する行に対応する、最高の順位値に対応する。
【００９６】
例えば、図9Cを参照すると、特異なグループ（g＝a）は、1という順位値を有する行を含むため、1という最小順位値を有する。グループ（g＝b）は、このグループ内のすべての行における3という最低の順位値を含むため、3という最小順位値を有する。図9Cに示すように、最小順位値は列min_rank（g-p）として示されている。いくつかの態様では、順位値が最高の順位値を有する各グループ内の行に対応する場合、データベースは、最高の順位値を有する各グループ内の行を識別する。
【００９７】
その後、ステップ514で、アプリケーションプログラムに応答して、データベースは、最小順位値限界を満たさないグループ化値のグループを除外するために別個のグループ化値グループの各々に最小順位値限界を適用する。いくつかの態様では、最小順位値限界によって除外されないグループ化値グループは、限定されたデータセットを提供する。アプリケーションプログラムに応答して、データベースは最小順位値限界を指定し、これは、概して、特異なグループ化値グループごとに最小順位値限界を確立することを指す。
【００９８】
包含的手法
図6は、一例による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するための方法600の流れ図である。この例示的態様は、本開示の包含的手法の一態様を示すものである。ステップ602で、データベースは、例えば、アプリケーションプログラムによって指定された、初期データセットにおけるグループ化列の指定を受け取る。いくつかの態様では、指定のステップに先立ち、データベースは、データベース・アプリケーション・プログラムを実行するためのステップを開始するよう求めるアプリケーションプログラムからのコマンドまたは命令を受け取る。
【００９９】
ステップ604で、データベースは、例えば、アプリケーションプログラムによって指定された、初期データセットにおけるパーティション列の指定を受け取る。ステップ606で、データベースは、例えば、アプリケーションプログラムによって指定された、初期データセットにおける順序付け列の指定を受け取る。
【０１００】
いくつかの態様では、グループ化列、パーティション列、および順序付け列の指定は、クライアントデバイスのアプリケーションプログラムを介してユーザによって手作業で指定される。いくつかの態様では、グループ化列、パーティション列、および順序付け列の指定は、クライアントデバイスおよび/またはデータベースに含まれるデータベース・アプリケーション・プログラムによって自動的に指定される。
【０１０１】
ステップ608で、アプリケーションプログラムは、特定のパーティション値の指定を受け取る。例えば、図10Aを参照すると、特定のパーティション値（p＝1）は、アプリケーションプログラムによって指定される。いくつかの態様では、アプリケーションプログラムは、初期データセットにおいて繰り返される特定のパーティション値を指定する。しかし、いくつかの態様では、指定されたパーティション値は初期データセットにおいて繰り返されない。そうした例では、データベース・アプリケーション・プログラムは、たとえ指定されたパーティション値が繰り返されない場合でさえも、依然として、指定されたパーティション値に従って行をパーティショニングする。
【０１０２】
その後、ステップ610で、アプリケーションプログラムに応答して、データベースは、初期データセット内の、特定のパーティション値を含む行を識別する。例えば、図10Aを参照すると、特定のパーティション値（p＝1）が指定された場合には、データベースは、特定のパーティション値（p＝1）を含む初期データセット内の行のみを識別する。この例では、図10Aに示すように、（p＝1）というパーティション値を含む4つの行、a-1-100、b-1-22、c-1-5、およびd-1-99がある。
【０１０３】
その後、ステップ612で、アプリケーションプログラムに応答して、データベースは、初期データセット内の、特定のパーティション値を含む行を識別、選択し、限定された行セットを提供するために各選択行の順序付け値に対応する順位に従って選択行を限定する。例えば、アプリケーションプログラムに応答して、データベースは、指定されたパーティション値を含む行のみを選択し、それらの行を対応する順序付け値に従って順位付けする。
【０１０４】
例えば、アプリケーションプログラムは、行制限を指定するようにプログラムされる。行制限を指定することによって、アプリケーションプログラムに応答して、データベースは、指定された行制限に従って特定のパーティション値を含む、限定されたデータセットで提供されるべき行数を制限する。いくつかの態様では、行制限は、限定された行セットに含めるべき最小行数も指定する。例えば、2という行制限は、限定された行セットには2行が含まれなければならないことを指定する。
【０１０５】
ある例では、アプリケーションプログラムは、ピボットテーブルの行制限も指定するようにプログラムされる。ピボットテーブルの行制限の指定を受け取った結果として、データベースは、ピボットテーブルを埋めるためにどの行が必要か決定する。ある例では、初期データセットは、アプリケーションプログラムのメモリの物理的限界内に適合できない。その結果、アプリケーションプログラムは、ピボットテーブルに含められる指定の行数を指定することになり、指定行数はコマンドとしてデータベースに送られる。その後、データベースは、ピボットテーブルが指定の行数を含むことを求めるアプリケーションプログラムの要求を満たすため、限定されたデータセットを提供するために初期データセットからデータを選択的に取得する。
【０１０６】
例えば、図10Bを参照すると、アプリケーションプログラムに応答して、データベースは、特定のパーティション値（p＝1）を含むすべての行を識別し、その後、各行の対応する順序付け値に従ってパーティション（p＝1）に含まれるすべての行に順位付けする。アプリケーションプログラムに応答して、データベースは、各行の順位値に従って特定のパーティション値を含む行数を制限することによって、限定された行セットを提供し、指定された行制限に従って、限定された行セットで提供される行を限定する。例えば、アプリケーションプログラムは、2という行制限を指定する。したがって、行a-1-100と行d-1-99とが、最高の順序付け値を有するこのパーティション内の2行であり、限定された行セットの例を表している。
【０１０７】
アプリケーションプログラムは、ある例によれば、データベースによって受け取られ、処理されるべきSQL式を作成する。例えば、アプリケーションプログラムは行制限を指定し、行制限はデータベースに送られる。一例では、SQL式は、行制限を指定する、LIMIT SQLである。
【０１０８】
いくつかの態様では、行制限を適用した後、データベースは、特定のパーティション値を含みかつ指定された行制限も満たす、十分な行を与えることができない場合がある。そうした例では、アプリケーションプログラムに応答して、データベースは、限定されたデータセットを提供するために特定のパーティション値を含まない追加行を選択的に取得する。いくつかの態様では、アプリケーションプログラムは、この結果を問合せするLEFT JOIN SQL式またはRIGHT JOIN SQL式を指定する。
【０１０９】
さらに、データベースは、行のORDER順位付けに対するSQL式をさらに受け取る。いくつかの態様では、順序順位付けのSQL式は、ORDER BY m DESCである。一例では、ORDER BY m DESCおよびLIMIT 2のSQL式が利用される場合には、データベースプログラムは、上位2つの対応する順序付け値を含む2行のみを含むように、限定されたデータセットに読み込むために初期データセットから選択的に取得される行数を限定する。
【０１１０】
ステップ614で、アプリケーションプログラムに応答して、データベースは、限定されたデータセットを提供するために、限定された行セットのグループ化値と共通のグループ化値を共有するすべての行を含むように限定行セットを拡張する。例えば、図10Cを参照すると、データベースは、限定された行セットに含まれる2行が（a、d）というグループ化値を有することを以前に識別した。したがって、データベースは、aまたはdというグループ化値を含む初期データセット内のすべての行を識別し、図10Cに示すように、限定された行セットと共通のグループ化値を含む行をさらに含むように限定行セットを拡張する。
【０１１１】
図6のステップを実行するための例示的なSQL式を以下に示す。
0006710224.tif 000006
0006710224.tif 000007
【０１１２】
図7は、一例による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するための方法700の流れ図である。
【０１１３】
ステップ702で、アプリケーションプログラムは、初期データセットにおけるグループ化列を指定する。ステップ704で、アプリケーションプログラムは、初期データセットにおけるパーティション列を指定する。ステップ706で、アプリケーションプログラムは、初期データセットにおける順序付け列を指定する。いくつかの態様では、指定のステップに先立ちアプリケーションプログラムは、データベース・アプリケーション・プログラムを実行するための命令またはコマンドを送る。ステップ708で、アプリケーションプログラムは、特定のパーティション値をさらに指定する。
【０１１４】
いくつかの態様では、アプリケーションプログラムは、特定のパーティション値を指定する。しかし、いくつかの態様では、指定されたパーティション値は初期データセットにおいて繰り返されない。そうした例では、データベース・アプリケーション・プログラムは、たとえ指定されたパーティション値が繰り返されない場合でさえも、依然として、指定されたパーティション値に従って行をパーティショニングする。
【０１１５】
その後、ステップ710で、アプリケーションプログラムに応答して、データベースは、初期データセット内の、特定のパーティション値を含む行を識別する。例えば、図10Aを参照すると、特定のパーティション値（p＝1）が指定された場合には、データベースは、特定のパーティション値（p＝1）を含む初期データセット内の行のみを識別する。この例では、図10Aに示すように、（p＝1）というパーティション値を含む4つの行、a-1-100、b-1-22、c-1-5、およびd-1-99がある。
【０１１６】
その後、ステップ712で、アプリケーションプログラムに応答して、データベースは、初期データセット内の、特定のパーティション値を含む行を識別、選択し、限定された行セットを提供するために各選択行の順序付け値に対応する順位に従って選択行を限定する。例えば、アプリケーションプログラムに応答して、データベースは、指定されたパーティション値を含む行のみを選択し、それらの行を対応する順序付け値に従って順位付けする。
【０１１７】
例えば、アプリケーションプログラムは、行制限を指定するようにプログラムされる。アプリケーションプログラムは、行制限を指定することによって、指定された行制限に従って特定のパーティション値を含む限定されたデータセットで提供されるべき行数を制限するようにプログラムされる。いくつかの態様では、行制限は、限定された行セットに含めるべき最小行数も指定する。例えば、2という行制限は、限定された行セットには2行が含まれなければならないことを指定する。
【０１１８】
例えば、図10Bを参照すると、アプリケーションプログラムに応答して、データベースは、特定のパーティション値（p＝1）を含むすべての行を識別し、その後、各行の対応する順序付け値に従ってパーティション（p＝1）に含まれるすべての行に順位付けする。アプリケーションプログラムに応答して、データベースは、各行の順位値に従って特定のパーティション値を含む行数を制限することによって限定された行セットを提供し、指定された行制限に従って限定された行セットで提供される行を限定する。例えば、アプリケーションプログラムは、2という行制限を指定する。したがって、行a-1-100と行d-1-99とが、最高の順序付け値を有するこのパーティション内の2行であり、限定された行セットの例を表している。
【０１１９】
ステップ714で、アプリケーションプログラムに応答して、データベースは、限定されたデータセットを提供するために、限定された行セットのグループ化値と共通のグループ化値を共有するすべての行を含むように限定行セットを拡張する。例えば、図10Cを参照すると、限定された行セットに含まれる2行が（a、d）というグループ化値を有することを、あらかじめ識別した。したがって、データベースは、aまたはdというグループ化値を含む初期データセット内のすべての行を識別し、図10Cに示すように限定された行セットと共通のグループ化値を含む行をさらに含むように限定行セットを拡張する。
【０１２０】
クライアントデバイス上のデータベース・アプリケーション・プログラムは、拡張された行数が限定されたデータセットにおいて取得されると、ピボットテーブルを形成するために限定されたデータセットをピボットし、または再編成するように構成されている。例えば、図10Cに示す限定されたデータセット1012のピボットテーブル1014を示す図10Dを参照されたい。
【０１２１】
いくつかの態様では、初期データセット内の値は限定されたデータセットを提供するには不完全であり、または不十分である場合がある。例えば、初期データセットのグループ化値、パーティション値、または順序付け値のうちの1つまたは複数が不完全な場合がある。そうした値はヌル値または0値で表される。この例では、アプリケーションプログラムは、RIGHT JOINコマンドまたはLEFT JOINコマンドを用いてSQL問合せを実行することによって、データが不完全であることを無視して、初期データセットからデータを選択的に取得するためのステップを行うようにさらに構成される。利用できるSQL式の一例を以下に示す。
0006710224.tif 000008
0006710224.tif 000009
【０１２２】
よって、上記のSQL問合せ式を用いれば、アプリケーションプログラムは、たとえ選択されたグループ化値グループの対応する順序付け値がない場合でさえも、データベースに、2という行制限に従って、限定されたデータセットを埋めさせることができる。
【０１２３】
ピボットテーブルへの限定されたデータセットの読み込み
図8に、一例による、ピボットに読み込むための方法800を示す。限定されたデータセットは、本明細書に記載する方法のうちの1つまたは複数によって提供される。
【０１２４】
ステップ802で、アプリケーションプログラムは、ピボットテーブル内にありかつ限定されたデータセットの特異な行に対応する一意のセルを定義する、特異なグループ化値-パーティション値の対を、各特異なグループ化値および各特異な各パーティション値が形成する、限定されたデータセット内の特異なグループ化値ごとの行と特異なパーティション値ごとの列とを含むテーブルを提供する。ピボットステップの一例が図10Dに示されている。図10Dには、限定されたデータセット1012がピボットテーブル1014を提供するようにピボットされることが示されている。図10Dのこの例では、ピボットテーブルには2行が設けられており、各行は特異なグループ化値（a、d）を表している。さらに、この例では、各特異なパーティション値（1、2、3）を表す3列が設けられている。例えば、グループ化値（g＝a）とパーティション値（p＝1）とは、ピボットテーブル内の一意のセルを定義する特異なグループ化値-パーティション値の対（a-1）を形成している。各特異なグループ化値-パーティション値の対によって定義される各一意のセルには、次いで、特異な行ごとの対応する順序付け値が読み込まれる。この例では、特異なグループ化値-パーティション値の対（a-1）の一意のセルに対応する順序付け値100が読み込まれる。
【０１２５】
ピボットステップの例が図10Dに示す一例に示されている。図10Dに示される、ステップ804において、アプリケーションプログラムは、各特異なグループ化値-パーティション値の対を定義することによってテーブルの各一意のセルに、限定されたデータセット内の各特異な行から対応する順序付け値を読み込む。いくつかの態様では、アプリケーションプログラムは、テーブルのすべてのセルに、限定されたデータセット内の各特異な行から対応する順序付け値が読み込まれるまで、すべての特異なグループ化値-パーティション値の対に対するテーブルの各一意のセルに読み込むようにプログラムされている。
【０１２６】
いくつかの態様では、ピボットテーブルを提供するように、限定されたデータセットをピボットするステップは、限定されたデータセットを提供した直後に行われる。別の例では、限定されたデータセットを提供するステップと、その後の、ピボットテーブルを提供するように限定されたデータセットをピボットするステップとの間に遅延が生じる。図10Dを参照すると、限定されたデータセット1012はピボットテーブル1014を提供するようにピボットされる。ピボットテーブルは、ピボットテーブル内にありかつ限定されたデータセットの特異な行に対応する一意のセルを定義する、特異なグループ化値-パーティション値の対を、各特異なグループ化値および各特異な各パーティション値が形成する、限定されたデータセット内の特異なグループ化値ごとの行と特異なパーティション値ごとの列とを含むテーブルを提供する。
【０１２７】
本明細書で前述したように、図9A〜図9Dには、排他的手法のある例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するための方法のデータセットの例が示されている。
【０１２８】
図9Aには、グループ化列904と、パーティション列906と、順序付け列908とを含む初期データセット902が示されている。グループ化列904はグループ化値を含む。パーティション列906は、特異なパーティション（p＝1、2、または3）で表されるパーティション値を含む。特異なパーティション値は初期データセットにおいて繰り返される場合もある。順序付け列908は順序付け値を含む。グループ化列は、別個のグループ（g＝a、b、c、またはd）として表された、別個のグループ化値グループを含む。
【０１２９】
図9Bには、順位値（_r）を決定するステップが示されている。この例では、順位値（_r）は、各別個のパーティション内に含まれる行の順位を表す。例えば、各パーティションは、共通のパーティション値を共有するすべての行を含む。この例では、各グループはp＝1、2、または3に従ってパーティション値で分けられている。この例では、順位値は、各行の対応する順序付け値に従って各パーティション内に含まれる行ごとに決定される。例えば、パーティション（p＝1）は、a-1-100、b-1-22、c-1-5、およびd-1-99の各行を含む。これとは別に、パーティション（p＝2）は、a-2-15、b-2-8、c-2-12、およびd-2-42の各行を含む。パーティション（p＝3）は、a-3-19、b-3-10、c-3-17、およびd-3-76の各行を含む。
【０１３０】
図9Bに示す例では、順位値は、順序付け値の昇順に基づいて決定される。例えば、各特異なパーティション内に含まれる各行が、それぞれ、同じパーティション内に含まれるその他の行に対して順位付けされる。例えば、行a-1-100は1という順位値を有し、行d-1-99は2という順位値を有し、行b-1-22は3という順位値を有し、行c-1-5は4という順位値を有する。図9Bの初期データセットは、1つまたは複数の順位値を含む、初期データセットに追加された追加の順位値（_r）列910をさらに含んでいてよい。
【０１３１】
図9Cには、min_rankがグループ化値グループ化ごとに確立されることが示されている。例えば、グループ（a）を参照すると、グループ内に含まれるすべての行の最低の最小順位（_r）は_r＝1であるため、グループのmin_rankは1である。別の例では、グループ（b）を参照すると、グループ（b）内に含まれるすべての行の最低の最小順位（_r）は_r＝3であるため、グループ（b）のmin_rankは3である。図9Cには、初期データセットが初期データセットに追加された追加のmin_rank列912をさらに含んでいてよいことが示されており、min_rank列912は1つまたは複数の最小順位値を含む。
【０１３２】
図9Dには、初期データセットからデータを選択的に取得した後の限定されたデータセット914が示されている。この例では、限定されたデータセットを提供する前に、データベースは最小順位値限界を指定する。例えば、データベースは、2以上（すなわち、x≧2）のmin_rank値を有するすべてのグループ化値グループを除外する。したがって、2以上のmin_rank値を有するグループ化値のすべてのグループが、限定されたデータセットで提供されることから除外される。したがって、グループ（a）とグループ（d）のみが2未満のmin_rank値を含むため、それらのグループのみが限定されたデータセットにおいて提供されることになる。さらに、限定されたデータセット914は、次いで、アプリケーションプログラムによって指定された行数だけを含むピボットテーブルを提供するようにアプリケーションプログラムによってピボットされる。例えば、アプリケーションプログラムが2という行制限を指定した場合には、結果として得られるピボットテーブルは2行に制限されることになる。
【０１３３】
本明細書で前述したように、図10A〜図10Dには、包含的手法のある例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するための方法のデータセットの例が示されている。
【０１３４】
図10Aには、グループ化列1004と、パーティション列1006と、順序付け列1008とを含む初期データセット1002が示されている。グループ化列1004はグループ化値を含む。パーティション列1006は、特異なパーティション（p＝1、2、または3）で表される、繰り返すパーティション値を含むパーティション値を含む。順序付け列1008は順序付け値を含む。グループ化列1004は、別個のグループ（g＝a、b、c、またはd）で表された、別個のグループ化値グループを含む。図10Aには示されていないが、アプリケーションプログラムは、特定のパーティション値を指定することができる。この例では、アプリケーションプログラムは、p＝1という特定のパーティション値を指定している。
【０１３５】
図10Bには、初期データセット内の、（p＝1）という特定のパーティション値を含む行の識別および選択が示されている。特定のパーティション値を含む選択行は、指定されたパーティション値を含む限定された行セットを提供するようにさらに限定される。例えば、限定された行セットにおいて提供される行数は、行制限を指定するアプリケーションプログラムによって決定される。所望の行制限を獲得するために、データベースのコンピュータプロセッサは、各行の対応する順序付け値に従って特定のパーティション値を含む選択行を順位付けするようにプログラムされている。したがって、アプリケーションプログラムは、各行の対応する順序付け値に従って選択行の数を制限する。
【０１３６】
例えば、アプリケーションプログラムは、SQL式を用いて、行制限を以下のように指定する。
0006710224.tif 000010
【０１３７】
図10Bに示すように、2という行制限が指定されている。その後、アプリケーションプログラムに応答して、データベースは、2つの最高の順序付け値を有する2行だけを含むように、限定された行セットで提供されるべき行数を限定することによって、限定された行セットa-1-100およびd-1-99を提供している。したがって、a-1-100とd-1-99とは、それら2つの最高の順序付け値を有するため、降順で出力されることになる。図10Bには、ユーザに表示されるべきである場合の、限定された行セットの行を表す仮想または中間的なデータセット1010が表されている。
【０１３８】
図10Cには、データベースが、限定された行セットを、限定された行セットのグループ化値と共通のグループ化値を含む初期データセット内のすべての行を含むように拡張した結果としての、限定されたデータセット1012が示されている。図10Bを参照して説明したように、データベースは2つのグループ（a、g）を識別した。したがって、データベースは、グループ化値（a、g）を含む初期データセット内のすべての行を識別する。
【０１３９】
図10Dを参照すると、限定されたデータセット1012はピボットテーブル1014を提供するようにさらにピボットされる。ピボットテーブルは、ピボットテーブル内にありかつ限定されたデータセットの特異な行に対応する一意のセルを定義する、特異なグループ化値-パーティション値の対を、各特異なグループ化値および各特異な各パーティション値が形成する、限定されたデータセット内の特異なグループ化値ごとの行と特異なパーティション値ごとの列とを含むテーブルを提供する。この例では、ピボットテーブルには2行が設けられており、各行は特異なグループ化値（a、d）を表している。さらに、この例では、各特異なパーティション値（1、2、3）を表す3列が設けられている。例えば、グループ化値（g＝a）とパーティション値（p＝1）とは、ピボットテーブル内の一意のセルを定義する特異なグループ化値-パーティション値の対（a-1）を形成している。各特異なグループ化値-パーティション値の対によって定義される各一意のセルには、次いで、特異な行ごとの対応する順序付け値が読み込まれる。この例では、特異なグループ化値-パーティション値の対（a-1）の一意のセルに対応する順序付け値100が読み込まれる。
【０１４０】
ピボットテーブル1014は、アプリケーションプログラムによって指定された行数だけを含む。例えば、アプリケーションプログラムが2という行制限を指定した場合には、結果として得られるピボットテーブルは2行だけを含む。
【０１４１】
図11に、ピボットテーブルを提供するように限定されたデータセットをピボットする一例を示す。例えば、図11には、ピボットテーブル1104を提供するように限定されたデータセット1102をピボットするステップが示されている。この例では、ピボットテーブルには3行が設けられており、各行は特異なグループ化値（2/14、1/14、12/13）を表している。さらに、この例では、各特異なパーティション値（男性、女性）を表す2列が設けられている。例えば、グループ化値（g＝2/14）とパーティション値（p＝男性）とは、ピボットテーブル内の一意のセルを定義する特異なグループ化値-パーティション値の対（2/14-M）を形成している。各特異なグループ化値-パーティション値の対によって定義される各一意のセルには、次いで、特異な行ごとの対応する順序付け値が読み込まれる。この例では、特異なグループ化値-パーティション値の対（2/14-M）の一意のセルに対応する順序付け値10が読み込まれる。
【０１４２】
図11は、ユーザによる例示的な問合せ、「合計何人の男性顧客が注文を出したか？」に応答した限定されたデータセットを表している。小規模な初期データセットの少量のデータでは、ユーザは、テーブルを見ただけで回答を決定することができる。しかし、初期データセットに大量のデータがある場合には、出された質問への回答を決定することがより困難になる。しかし、限定されたデータセットを用いれば、ユーザは、出された質問への回答、すなわち、8人の男性顧客が12月中に注文を出し、9人の男性顧客が1月中に注文を出し、10人の男性顧客が2月中に注文を出した、をより容易に決定することができる。
【０１４３】
図12に、ある例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するためのSQL実装方法の一例を示す。図12に示すように、データベース・アプリケーション・プログラムは、パーティション列（‘PARTITION BY p’）および順序付け列（‘ORDER BY m DESC’）を指定する。さらに、‘ORDER BY m DESC’は、各パーティション内の行の順位を決定することが、各パーティション内の順序付け値の降順の値に基づいて決定されることを明確にする。さらに、SQL式‘WHERE_min_rank≦2’は、最小順位値限界は最小順位値が2以下の場合であると指定する。例えば、データベースは、2以下の最小順位値を有するパーティションを組み入れない。
【０１４４】
図13に、別の例示的態様による、限定されたデータセットを提供するために初期データセットからデータを選択的に取得するためのSQL実装方法の一例を示す。図13に示すように、指定されたパーティション値は、SQL式‘SELECT p’を用いてアプリケーションプログラムによって指定される。さらに、アプリケーションプログラムは、SQL式‘LIMIT 1’を用いて行制限を指定する。データベース・アプリケーション・プログラムは、パーティション列（‘PARTITION BY p’）および順序付け列（‘ORDER BY m DESC’）を指定する。いくつかの態様では、初期データセット内の値は限定されたデータセットを提供するには不完全であるか、または不十分である場合がある。例えば、初期データセットの順序付け、選別、または順序付け値のうちの1つまたは複数が不完全な場合がある。そうした値はヌル値または0値で表される。この例では、データベースは、RIGHT JOIN式またはLEFT JOIN式を用いてSQL問合せを実行することによって、データが欠如している可能性があることを無視して、初期データセットからデータを選択的に取得するためのステップをさらに実行する。
【０１４５】
前述した発明は理解を明確にするための例としてある程度詳細に説明されているが、本開示の教示に鑑みれば、添付の特許請求の趣旨および範囲を逸脱することなく前述した発明にいくつかの変更および改変が加えられうることが、当業者には容易に明らかになるはずである。
【０１４６】
したがって、以上は単に本発明の原理を例示しているにすぎない。当業者であれば、本明細書には明確に説明、図示されていないが、本発明の原理を具現化し、本発明の趣旨および範囲に含まれる様々な構成を考案することができることが理解されるであろう。さらに、本明細書に記載されるすべての例および条件付きの文言は、主として、読者が、本発明の原理を、そうした具体的に記載される例および条件だけに限定せずに理解する助けとするためのものである。さらに、本発明の原理、局面および態様ならびにそれらの具体例を記載する本明細書のすべての記述は、それらの構造的均等物と機能的均等物の両方を包含すべきことが意図されている。加えて、そうした均等物は、現在公知である均等物と、将来において開発される均等物、すなわち、構造にかかわらず同じ機能を果たす任意の開発される要素の両方を含むものであることも意図されている。したがって、本発明の範囲は、本明細書において図示し、記載した例示的態様だけに限定されるものではない。そうではなく、本発明の範囲および趣旨は、添付の特許請求の範囲によって具現化されるものである。
【図１】
0006710224.tif 000011
【図２】
0006710224.tif 000012
【図３】
0006710224.tif 000013
【図４】
0006710224.tif 000014
【図５】
0006710224.tif 000015
【図６】
0006710224.tif 000016
【図７】
0006710224.tif 000017
【図８】
0006710224.tif 000018
【図９Ａ】
0006710224.tif 000019
【図９Ｂ】
0006710224.tif 000020
【図９Ｃ】
0006710224.tif 000021
【図９Ｄ】
0006710224.tif 000022
【図１０Ａ】
0006710224.tif 000023
【図１０Ｂ】
0006710224.tif 000024
【図１０Ｃ】
0006710224.tif 000025
【図１０Ｄ】
0006710224.tif 000026
【図１１】
0006710224.tif 000027
【図１２】
0006710224.tif 000028
【図１３】
0006710224.tif 000029