【課題を解決するための手段】
【0009】
上記の目的を実現するために、本発明は、1つまたは複数のデータ記憶手段と、データ記憶手段に結合された1つまたは複数の処理装置とを含むデータウェアハウスから、統計データを提供する方法について説明する。
【0010】
本発明について説明するために使用される用語集および参考文献については、図面の簡単な説明の前に示す。
【0011】
この方法は、
・ 複数の索引フィールドを定義するステップであって、各索引フィールドが複数の索引フィールド値を受け入れる、定義するステップと、
・ 複数の索引ファイルを作成し、これらのファイルを索引の木として階層的に索引付けるステップであって、各木に対して、
- 索引フィールドを階層的に順序付けるステップ、
- それぞれ索引フィールドに関連付けられ、その索引フィールドに対する1つまたは複数の索引フィールド値を収集するビンを定義するステップ、
- 階層的に順序付けられた索引フィールドの階層に従って1つまたは複数のビンを連結してビンのシーケンスを形成することによって、索引フィールドごとに1つのビンのみを含む索引を作成するステップ、ならびに
- ファイルを索引の木として階層的に索引付けるステップを含み、各索引が、0以上の子索引および/または最大で1つの親索引を有し、各子索引が、その親索引の索引と同じビンのシーケンスと、追加の索引フィールドに関連付けられた少なくとも1つの追加のビンとを含む、索引付けるステップと、
・ 統計データを記憶するように構成されたデータコンテナを各索引に提供するステップであって、各データコンテナが索引付けられ、階層的に索引付けられたファイル内から直接アドレス指定可能である、提供するステップと、
・ 生データから構成された1つまたは複数の入力ファイルを受け取り、それらの入力ファイルでデータコンテナを更新するステップであって、各入力ファイルに対して1つまたは複数の処理装置を使用することを含み、これらの処理装置が、
- 統計によって分析すべき少なくとも1つの属性、およびその属性を特徴付ける1つまたは複数の入力ファイルパラメータを、生データから識別および抽出するステップ、
- それぞれ少なくとも1つの属性、および前記属性を特徴付ける1つまたは複数の入力ファイルパラメータを含む少なくとも1つの個別記録(individual record)を、入力ファイルから作成するステップ、
- 各入力ファイルパラメータを少なくとも1つの索引フィールドに関連付けるステップ、
- 各入力ファイルパラメータと、その入力ファイルパラメータに関連付けられた少なくとも1つの索引フィールドのビンとの間で対応関係を確立するステップ、
- すべて前記個別記録の入力ファイルパラメータに対応する1つまたは複数のビンで索引付けられたデータコンテナを識別するステップ、ならびに
- 識別されたデータコンテナを、前記個別記録の少なくとも1つの属性でインクリメンタルに更新して、属性を記述する統計データを得るステップを、実行するように構成される、更新するステップと
を含むことを特徴とする。
【0012】
好ましくは、この方法は、照会を受け取り、各照会に対して1つまたは複数の処理装置を使用する追加の任意選択のステップを含み、これらの処理装置は、
- 照会内で、1つまたは複数の照会フィールド、およびその照会フィールドに関連付けられた少なくとも1つの照会フィールド値を識別し、
- 各照会フィールドと索引フィールドとの間で対応関係を確立し、
- 各照会フィールド値と、前記1つまたは複数の識別された照会フィールドに対応する各索引フィールドのビンとの間で対応関係を確立し、それによって照会に対応する1組のビンを定義し、
- 照会に対応する1組のビンを含む索引で索引付けられた関連するデータコンテナを探索および識別し、
- 識別された関連するコンテナの統計データを検索してユーザへ送るようにプログラムされる。
【0013】
統計データは、頻度分布、または分布の代表値(measures of central tendency)、または分布の分散の測定に関することが有利である。有利な例によれば、統計データは、輸送サービスに対して旅行者によって実際に支払われた価格に関する統計データに基づく。
【0014】
輸送、より具体的には乗客輸送に関する特定の実施形態では、本発明は、任意選択の以下の特徴のいずれか1つを含むことができる。
【0015】
- 索引フィールドは、最初の出発都市(city of origin)、最初の出発国(country of origin)、最初の出発地域(geographical area of origin)、目的都市(city of destination)、目的国(country of origin)、目的地域(geographical area of destination)、文化的目的地(cultural destination)、スポーツ活動(sport activity)、美食(gastronomy)、野生生物の観察(wildlife observation)、娯楽(entertainment)、正確な出発日別の出発日(departure date by exact departure date)、月別の出発期間(departure period by month)、週別の出発期間(departure week by month)、正確な日付別の帰着日(return date by exact date)、月別の帰着期間(return period by month)、週別の帰着期間(return period by week)、到着後の旅行期間(duration of the trip after arrival)、事前購入カテゴリ(advance purchase category)のうちの少なくとも1つである。
【0016】
- 一実施形態によれば、少なくとも2つのビンを連結することによって、親索引をもたない少なくとも1つの索引が作成される。たとえば、親索引をもたない索引は、最初の出発都市に関する索引フィールドに関連付けられたビンと、出発前の旅行期間に関する索引フィールドに関連付けられたビンと、航空便の出発週に関する索引フィールドに関連付けられたビンとを含む。特有のユースケースによれば、ビンは、最初の出発都市、出発都市、出発日、出発週、帰着日、帰着週、旅行期間の日数、事前購入の日数のうちの1つに関するいくつかの索引フィールド値を収集する。
【0017】
- 別の実施形態によれば、親索引をもたない少なくとも1つの索引は、1つのビンのみを含む。
【0018】
- 入力ファイルは、輸送サービスの電子チケットであり、輸送の一区分に対するすべての情報を組み入れる少なくとも1つのクーポンを含む。
【0019】
- 属性は、各チケットまたはクーポンに対して実際に支払われた価格である。入力ファイルパラメータは、最初の出発都市、出発都市、出発日、帰着日、出発日、帰着日、旅行期間、予約から出発までの日数というフィールドのうちの少なくとも1つを記述する。
【0020】
- 照会フィールドは、最初の出発都市、最初の出発国、最初の出発地域、目的都市、目的国、目的地域、文化的目的地、スポーツの目的地、美食、野生生物の観察、娯楽、正確な出発日別の出発日、月別の出発期間、週別の出発期間、正確な日付別の帰着日、月別の帰着期間、週別の帰着期間、到着後の旅行期間、予約から出発までの日数というフィールドのうちの少なくとも1つに関する。
【0021】
- 単一の索引フィールド値を、複数の索引フィールドに関連付けることができる。たとえば、目的都市を記述する索引フィールド値は、最初の出発都市、最初の出発国、最初の出発地域、文化的目的地、スポーツ活動、美食、野生生物の観察、娯楽という索引フィールドのうちの少なくとも2つに関連付けられる。
【0022】
任意選択で、本発明による方法は、次の特徴およびステップのいずれか1つを含むことができる。
【0023】
- 個別記録を作成するステップは、日付または週または月または学期または年を各個別記録に割り当てるステップであって、この日付が入力ファイルの受け取りに対応する、割り当てるステップと、この個別記録をデータ記憶手段内に記憶するステップとを含む。
【0024】
- 個別記録でデータコンテナを更新するステップは、同じ日付を有するまたは同じ日付期間を有する個別記録のバッチを作成するステップと、個別記録のバッチごとにデータコンテナを更新するステップとを含む。
【0025】
- 更新するステップは、すべての以前の記録の演算を必要とするわけではない。したがって、最小の演算が必要とされる。通常、統計は、すべての入力ファイルを受け取った後の毎日の終わりの更新である。これにより、前日までに行われた演算を取り消すことなく、翌日に、毎日のトランザクションデータを、使用可能なはずのデータ範囲内へシームレスに組み込むことを可能にする。
【0026】
- 好ましくは、索引フィールド値および属性は、整数、10進数、または区間であり、適当なカウントまたは新しい値で更新される。
【0027】
コンテナへの新しい個別記録の追加は、最小の変更しか伴わず、それぞれの頻度のビン内のカウント値のみが変更される。したがって、個別記録の総数の大幅な増大にもかかわらず、コンテナのサイズおよびファイルのサイズは、使用される頻度分布表現およびインクリメンタル機構のため、それほど増大しない。他のデータは追加されない。
【0028】
- 正確な統計データを維持するために、本発明は、記憶された個別記録の日付を読み取るステップと、所与の日付より古い日付に割り当てられた以前の個別記録を識別するステップと、これらの識別された以前の個別記録の入力ファイルパラメータを通じて、これらの識別された以前の個別記録で更新されたデータコンテナを位置決めするステップと、これらの識別された以前の個別記録を削除することによって、位置決めされたデータコンテナを更新するステップとを含むことができる。より正確には、データコンテナは、識別された以前の個別記録の属性を有する位置決めされたデータコンテナをインクリメンタルに削除することによって更新される。記録を削除することは、すべての以前の記録の演算を必要とするわけではない。したがって、過去の演算を破棄することなく過去のデータを破棄して関連する統計データを維持するには、最小の演算しか必要とされない。
【0029】
- 識別されたデータコンテナをインクリメンタルに更新するステップは、以前に演算された統計データおよび前記個別記録の少なくとも1つの属性から、更新された統計データをインクリメンタルに演算するステップを含む。
【0030】
- データコンテナが入力ファイルパラメータの数以下の複数のビンで索引付けられた場合、これらの1つまたは複数のビンのそれぞれが前記入力ファイルの入力ファイルパラメータに対応するという条件で、データコンテナが入力ファイルによって更新のために識別される。
【0031】
- 個別記録の入力ファイルパラメータが既存の索引フィールドに関連付けられているが、この関連付けられた既存の索引フィールドのいずれのビンにも対応しない場合、この関連付けられた既存の索引フィールドに対して追加のビンを作成し、この追加のビンで索引付けられた追加のデータコンテナを作成し、追加のデータコンテナを前記個別記録で更新する。
【0032】
たとえば、索引NBOおよびNBO05で索引付けられたデータコンテナが存在する場合で、かつ個別記録の入力ファイルパラメータがビンNBO、05、および40に対応する場合、データコンテナNBO0540が作成される。その個別記録の属性は、索引NBO、NBO05、および新しく作成されたNBO0540で索引付けられたデータコンテナを更新する。NBO0532およびNBO0540で索引付けられたデータコンテナは、この索引の木の同じレベルに位置する。
【0033】
- 個別記録の各入力ファイルパラメータがビンに対応するが、索引に対応しない前記入力ファイルパラメータに対応する1つまたは複数のビンの組合せが存在する場合、1つまたは複数の対応するビンのこの組合せで索引付けられた追加のデータコンテナを作成し、追加のデータコンテナを前記個別記録で更新する。
【0034】
たとえば、索引NBOおよびNBO05で索引付けられたデータコンテナが存在する場合で、かつ個別記録の入力ファイルパラメータがビンNBO、05、および32に対応する場合、ビンのNBO 05 32の組合せは既存の索引に対応しない。次いで、データコンテナNBO0532が作成される。その個別記録の属性は、索引NBO、NBO05、および新しく作成されたNBO0532で索引付けられたデータコンテナを更新する。
【0035】
- GDS、航空会社、旅行代理店などの異なる実体(Entity)が、同じまたは部分的に重複するデータに対して異なる索引を必要とする場合、各企業実体に対する索引が作成され、別個の事前演算により異なるファイルが作成され、これらのファイル全体で照会を行うことができる。
【0036】
- データコンテナ内に記憶されているすべてのデータは、フラットファイルの形式で記憶される。
【0037】
- 照会は、1つまたは複数の照会フィールドに対する照会フィールド値としてワイルドカードを認める。本発明では、ワイルドカードを「*」で示す。ワイルドカードは、その照会フィールドに対応する索引フィールドの*またはワイルドカードビンのみが探索されることを意味する。したがって、照会フィールド値NBO、*、32による照会の場合、本発明は、第1および第3の索引フィールドに対してビンNBOおよび32の索引ならびに第2の索引が*またはワイルドカードビンを有するすべてのコンテナを位置決めする。これは、照会が高速化される理由の1つである。すべてのビンを探索すると、応答は遅くなったはずである。データ変換時に探索の組合せを集約することによって、参照時間中の莫大な演算時間が節約される。
【0038】
- 照会は、1つまたは複数の照会フィールドに対するワイルドカード照会フィールド値を認め、ワイルドカード照会フィールド値は、その索引フィールドに対するワイルドカードビンに対応する統計が探索されることを意味する。より正確には、この方法は、1つまたは複数のビンのシーケンスを形成することによって索引を作成するステップを含み、これらのビンの少なくとも1つは、索引フィールドに対するすべての索引フィールド値を受け入れる。そのようなビンは、ワイルドカードビンと呼ばれる。したがって、本発明は、追加の索引を自動的に作成し、データコンテナはそれほど具体的でない索引を有する。
【0039】
本発明者らのシステムからの1つの索引、たとえばNCE 01 52を検討してみる。これは、NCEから旅行タイプ01でその年の第52週に予約されたすべての旅行のグループ化された詳細に対する索引である。同様に、NCE 06 02は、NCEから旅行タイプ6でその年の第2週に予約されたすべての旅行のグループ化された詳細に対する索引である。本発明は、索引付けプロセス中にワイルドカード索引を作成する。たとえば、以下の索引NCE*52が作成され、NCEからその年の第52週に予約された任意の旅行タイプのすべての旅行のグループ化された詳細に対する索引であり、NCE2**は、NCEからその年の52週のうちの任意の週に予約されたタイプ2のすべての旅行のグループ化された詳細に対する索引であり、NCE***は、NCEからその年の52週のうちの任意の週に予約された任意の旅行タイプのすべての旅行のグループ化された詳細に対する索引である。ワイルドカードとも呼ばれる星印は、すべての索引フィールド値が受け入れられることを示す。ワイルドカードはまた、索引値「all」によって表すこともできる。意味論的に、ワイルドカードは、NCE***が各NCE xx DDに対する記録のすべてを含むことを意味し、ここで、xxは、第2の索引フィールド(たとえば、旅行タイプ)に対する任意の所与の値であり、DDは、第3の索引フィールド(たとえば、その年の週数)に対する任意の所与の値である。この特徴により、一定の時間内で大規模な照会に対する応答を検索することができる。
【0040】
本発明の別の主題は、前述の方法に従って格納されたデータウェアハウスから、統計データを検索する方法であり、1つまたは複数の処理装置を含み、
- 照会内で、1つまたは複数の照会フィールド、およびその照会フィールドに関連付けられた少なくとも1つの照会フィールド値を識別するステップと、
- 各照会フィールドと索引フィールドとの間で対応関係を確立するステップと、
- 各照会フィールド値と、前記1つまたは複数の識別された照会フィールドに対応する各索引フィールドのビンとの間で対応関係を確立し、それによって照会に対応する1組のビンを定義するステップと、
- 照会に対応する1組のビンを含む索引で索引付けられた関連するデータコンテナを探索および識別するステップと、
- 識別された関連するコンテナの統計データを検索してユーザへ送るステップと
を含むことを特徴とする。
【0041】
本発明の別の目的は、1つまたは複数のデータベースを含むデータウェアハウスから、統計データを収集する方法およびシステムであり、収集された統計データは、複数の索引付きのフラットファイル内で保持され、この方法は、統計データをカテゴリビン内へ収集するステップと、カテゴリビンをインクリメンタルに更新するステップと、フラットファイルを索引の木として階層的に索引付けるステップと、索引の各木の根で1次索引を定義するステップと、統計データまたは別の索引のコンテナのどちらかを索引から直接アドレス指定するステップとを含むことを特徴とする。
【0042】
任意選択で、この方法およびシステムは、次の随意の特徴およびステップの少なくともいずれか1つを含む。
【0043】
- 索引付きのフラットファイルは、コンピュータ化されたサービスプラットフォームの主メモリ内へインポートされ、引き続き常駐する。
【0044】
- エンドユーザからの照会は、コンピュータ化されたサービスプラットフォームの主メモリ内に引き続き常駐している複数の索引付きのフラットファイルから包括的に供される。
【0045】
- 統計データは、データウェアハウスから予定の間隔で収集される。
【0046】
- 統計データは、航空会社の航空便で輸送すべき旅行者によって支払われた実際の運賃価格である。
【0047】
- カテゴリビンは、航空便の出発地、航空便の目的地、旅行タイプ、開始週、および事前購入カテゴリである。
【0048】
- 1次索引は、航空便の出発地、旅行タイプ、および開始週を含む。
【0049】
- フラットファイル索引は、航空便の目的地および事前購入カテゴリを含む。
【0050】
- 索引は、少なくとも1つのワイルドカード文字を含む。
【0051】
本発明の別の目的は、前述のステップのいずれか1つによる統計データを提供する方法を少なくとも1つのマイクロプロセッサに実行させるように指示されたコンピュータ可読コード手段を含む、非一時的コンピュータ可読記憶媒体上に記憶されたコンピュータプログラム製品である。
【0052】
好ましくは、コンピュータプログラム製品は、オンラインウェブサイトを通じて提供される。
【0053】
本発明の別の目的は、データウェアハウス内に統計データを作成するシステムに関し、このシステムは、処理手段と、処理手段に結合された1つまたは複数のデータ記憶手段とを備える。このシステムは、データ記憶手段および処理手段が、
・ 複数の索引フィールドを定義するステップであって、各索引フィールドが複数の索引フィールド値を受け入れる、定義するステップと、
・ 複数の索引ファイルを作成し、これらのファイルを索引の木として階層的に索引付けるステップであって、各木に対して、索引フィールドを階層的に順序付けるステップ、それぞれ索引フィールドに関連付けられ、その索引フィールドに対する1つまたは複数の索引フィールド値を収集するビンを定義するステップ、階層的に順序付けられた索引フィールドの階層に従って1つまたは複数のビンを連結してビンのシーケンスを形成することによって、索引フィールドごとに1つのビンのみを含む索引を作成するステップ、ならびにファイルを索引の木として階層的に索引付けるステップを含み、各索引が、0以上の子索引および/または最大で1つの親索引を有し、各子索引が、その親索引の索引と同じビンのシーケンスと、追加の索引フィールドに関連付けられた少なくとも1つの追加のビンとを含む、索引付けるステップと、
・ 統計データを記憶するように構成されたデータコンテナを各索引に提供するステップであって、各データコンテナが索引付けられ、階層的に索引付けられたファイル内から直接アドレス指定可能である、提供するステップと、
・ 生データから構成された1つまたは複数の入力ファイルを受け取り、それらの入力ファイルでデータコンテナを更新するステップであって、各入力ファイルに対して1つまたは複数の処理装置を使用することを含み、これらの処理装置が、統計によって分析すべき少なくとも1つの属性、およびその属性を特徴付ける1つまたは複数の入力ファイルパラメータを、生データから識別および抽出するステップ、それぞれ少なくとも1つの属性、および前記属性を特徴付ける1つまたは複数の入力ファイルパラメータを含む少なくとも1つの個別記録を、入力ファイルから作成するステップ、各入力ファイルパラメータを少なくとも1つの索引フィールドに関連付けるステップ、各入力ファイルパラメータと、その入力ファイルパラメータに関連付けられた少なくとも1つの索引フィールドのビンとの間で対応関係を確立するステップ、すべて前記個別記録の入力ファイルパラメータに対応する1つまたは複数のビンで索引付けられたデータコンテナを識別するステップ、ならびに識別されたデータコンテナを、前記個別記録の少なくとも1つの属性でインクリメンタルに更新して、属性を記述する統計データを得るステップを、実行するように構成される、更新するステップと
を実行するように構成されることを特徴とする。
【0054】
好ましくは、このシステムはまた、照会を受け取る手段を備え、この手段は、1つまたは複数の処理装置を使用することによって各照会に対して以下のステップを実行するように構成され、これらの処理装置は、照会内で、1つまたは複数の照会フィールド、およびその照会フィールドに関連付けられた少なくとも1つの照会フィールド値を識別し、各照会フィールドと索引フィールドとの間で対応関係を確立し、各照会フィールド値と、前記1つまたは複数の識別された照会フィールドに対応する各索引フィールドのビンとの間で対応関係を確立し、それによって照会に対応する1組のビンを定義し、照会に対応する1組のビンを含む索引で索引付けられた関連するデータコンテナを探索および識別し、識別された関連するコンテナの統計データを検索してユーザへ送り、それによって、含まれるデータの量とは独立して、数ミリ秒程度の経過時間内で、エンドユーザ照会に応答して統計データの検索を可能にするようにプログラムされる。
【0055】
本発明はそれによって、高度な照会、すなわち毎日の統計データの収集および演算のような膨大な量の情報のフェッチを含む照会に、非常に短い時間で応答することを可能にする。
【0056】
本発明の別の目的は、前述のステップのいずれか1つによる統計データを提供する方法を少なくとも1つのマイクロプロセッサに実行させるように指示されたコンピュータ可読コード手段を含む、非一時的コンピュータ可読記憶媒体上に記憶されたコンピュータプログラム製品である。
【0057】
本発明の様々な特徴について、説明および定義により以下に詳述する。
【0058】
統計データ
本発明は、多数の生データから演算された統計データを作成し、記憶し、インクリメンタルに更新し、かつ検索するシステムを提供する。所与の変数に対して、これらの統計データは、たとえば、頻度分布、分布の代表値、たとえば平均値または中央値、分布の分散、たとえば標準偏差の測定、百分位数/四分位数によって識別される分布自体の性質などに関することができる。
【0059】
そのような統計データは、限定的ではない。統計によって調査されるデータの性質もまた、限定的ではない。
【0060】
典型的な例は、販売中の、または顧客によって支払われた、任意の所与の製品またはサービスの価格に関する統計に関する。本発明の特に有利な用途は、乗客によって実際に支払われた輸送チケットの価格に関する統計データに関する。
【0061】
索引、索引フィールド、索引フィールド値、およびビン
索引フィールド(IF)とは、分析すべき別のパラメータの統計を特徴付けることに関するパラメータである。たとえば、旅行の価格に関する統計データの場合、索引フィールドは、旅行の出発地(たとえば、索引フィールド=「都市」、「国」、「地域」など)、旅行の位置的な目的地(たとえば、索引フィールド=「都市」、「国」、「地域」)および/もしくはテーマ別の目的地(たとえば、索引フィールド=「文化的目的地」、「スポーツの目的地」、「美食の目的地」、「野生生物の観察」、「娯楽」など)、出発日(たとえば、索引フィールド=「正確な出発日」)もしくは「出発期間」(たとえば、索引フィールド=「正確な出発日」、「出発月」、「出発週」)、帰着日(たとえば、索引フィールド=「正確な帰着日」)もしくは「帰着期間」(特有の月または週または週末)、あるいは「旅行タイプカテゴリ」(到着後の旅行期間)、「予約日」もしくは「予約期間」、「事前購入カテゴリ」(予約から出発までの期間)に関することができる。記載の例で以下に挙げる索引フィールドは、理解のために選択されたものであり、限定的ではない。
【0062】
索引フィールドの値(IFV)とは、事前定義された値領域内から索引フィールドを割り当てることができる値である。この値は、特定の実体または実体の集まり(たとえば、空港または都市または目的地のテーマ)を表す数字(日数)または英数字コードとすることができる。索引フィールド値は通常、事前に決定された指定の固定の長さである。たとえば、旅行クーポンの価格に関する統計を分析するとき、
- 索引フィールド「出発地」に対する索引フィールド値は、ナイロビ(最初の出発都市)、ケニア(最初の出発国)、アフリカ(地域)の1つとすることができる。
- 旅行の目的に関する索引フィールド「目的都市」、「地域」、「野生生物の観察」、「鉄道博物館」に対する索引フィールド値は、たとえば「ナイロビ」とすることができる。したがって、1つの単一の索引フィールド値を複数の索引フィールドに関連付けることができることが明らかである。
- 出発日に関する索引フィールド「正確な出発日」、「出発週」、「出発月」に対する索引フィールド値は、「2007年6月14日」とすることができる。
- 索引フィールド「旅行タイプカテゴリ」または「旅行期間」に対する索引フィールド値は、1日間、3日間、2週間、1ヶ月間および3日間などの1つとすることができる。
- 索引フィールド「事前購入カテゴリ」に対する索引フィールド値は、1日間、3日間、2週間、1ヶ月間などの1つとすることができる。
- 索引フィールド値は、適当な固定の長さの*を繰り返すことによって指定されるワイルドカードとすることができる。これは、キャッチオール型の索引値のようなものであり、その意味は、演算で典型的に見られるドントケア(don't-care)記号に対応する。
【0063】
ビンは、索引フィールドの値がその中で割り当てられることが保証される領域を数学的に表す。ビンに割り当てられるラベルは、索引フィールドに対する索引フィールド値と考えられ、この長さに対応する。これは、索引フィールド値が集まりに対応する場合でも当てはまるが、そのラベルの意味は単一の実体ではなく、数字範囲の両端(extremities)によって示すことができる値の個別の集まりまたは連続する集合を表す。たとえば、索引フィールド「月別の出発期間」の領域は、1〜12の範囲の12個のビン内で整数として個別に定義することができ、これにより、1から12までの間に位置する1つのビンラベルにその年のすべての日付を大まかに分類する。
【0064】
同様に、索引フィールド「野生生物の観察」または「テーマ別の目的地」は、狩猟旅行にとって良好な開始点である都市に対応するビン「狩猟旅行(safari)」を有することができる。ビン「狩猟旅行」は、索引フィールド値「ナイロビ」、「マラセレナ(Mara Serena)」、「ハボローネ(Gaborone)」、および狩猟旅行で有名な国立公園付近に位置する他の都市などを収集することができる。
【0065】
入力ファイル、記録、属性、データコンテナ
入力ファイルとは、システムによって分析すべき元のデータセット、生データを含む、システムによって受け取られるファイルである。システムは、入力ファイルを分析し、入力ファイル内の記録の属性を保持し、削除し、または関連する事前定義された索引フィールドの集まりに対応する適当な索引フィールド値に変換し、照会に応答して結果としてシステムによって統計を提供すべきパラメータに関連付ける。入力ファイル内のすべてのデータは、分析される前は生データと呼ばれる。
【0066】
元のデータセット(生データ)では、記録は属性のタプル(tuple)にすぎず、そこから、統計が求められている1組の索引フィールド値またはパラメータを定義し、次いで演算することができる。たとえば、航空便価格と呼ばれるパラメータに影響を与える唯一の索引フィールドとして出発地および目的地をモデル化することに決めた場合、入力データソースファイルをクーポンまたはチケットのどちらかとすることができる。各クーポンは、ちょうど表またはスプレッドシート内の1つの行のような記録であると考えることができ、表の列ヘッダは、出発地、目的地、出発日、発券日、PNR日、客室クラス、運賃クラスなどのような多くの属性に対応し、これらの属性のいくつかは、統計に関心のある索引フィールド、たとえば出発地、所与のパラメータ、たとえば価格に索引付けるための当該目的地になるように選択される。変換プロセスは、選択された索引フィールドの変換された索引フィールド値に到達するように、元のデータセット上の属性値全体で実行される。たとえば、出発までの日数が索引フィールドとして選択された場合、変換プロセスは、出発日およびPNR日(または発券日)と呼ばれる元のデータセット属性を利用して、出発日-PNR日または出発日-発券日として、「出発までの日数」という索引フィールドの値に到達する。
【0067】
変換されたデータセットでは、記録の概念が異なることに留意されたい。変換された記録のリポジトリでは、各記録は、索引の木における経路である。元のデータセット内の多くの記録は、変換されたデータセット内の単一の記録にマッピングされる。一例として、主要な調査パラメータとして価格統計に関心があり、価格の主要な決定要因として出発地および目的地をモデル化することに決めた場合を検討してみる。ここで、第1のレベル索引フィールドが出発地空港である場合、クーポンが解析されるたびに遭遇するいくつかの出発地空港の数が膨大であるため、複数の索引値は、各出発地空港の索引フィールド値として分岐する。第2のレベルが目的地空港である場合、所与の出発地空港に対する各目的地空港に対して複数の索引フィールド値が分岐し、その結果、2レベルの木が生じる。最終的に、各出発地-目的地索引の対に対して、複数の価格が存在可能である。したがって、複数の価格は各目的地ノードから分岐し、その結果、その木の第3のレベルが生じる。すべての固有の出発地-目的地-価格のトリプルまたはこの木における経路それぞれに対して、頻度カウントの結果、木において第4のレベルが生じる。しかし、その木のより高いレベル内の1対多の関係とは異なり、第3のレベル内の各木ノードと第4のレベル内の各ノードとの間の関係は1対1であることに注意されたい。その木における索引経路に対する価格-頻度カウントの対は、「データコンテナ」と呼ばれ、実際には、同じ索引フィールド値、たとえばNCE-NYCを有するすべての元の記録の異なる価格の分布を、出発地-目的地都市として記憶する。(出発地、目的地の集まり)の対および(目的地、価格の集まり)の対を、「索引コンテナ」と呼ぶ。通常、根から開始する木における完全(葉まで)または不完全(葉に届かない)な任意の経路が、通常、コンテナと呼ばれる。
【0068】
照会、照会フィールド、および照会フィールド値
照会は、データに関する統計を入手してそれを統計的に分析するために、ユーザによって充填されて送られる。照会は、本発明で「照会フィールド値」と呼ぶ1つまたは複数の探索基準を含むことができる。照会は、多数の照会フィールド値を含むときは非常に複雑になることがあり、または1つもしくは少数の照会フィールド値を含むときは基本的なものになることがある。
【0069】
照会フィールドとは、照会を特徴付けるパラメータである。各照会フィールド値は、照会フィールドに関する。各照会フィールドは、索引フィールドに対応する。照会フィールド値に対応する索引フィールドがないとき、任意選択のステップが実行される。これらの任意選択のステップについては、以下に詳述する。
【0070】
所与の照会フィールド値は、所与の照会フィールド値の照会フィールドに対応する索引フィールドのビンに対応する。「対応する」とは、照会フィールド値が索引フィールド値(本当の値もしくは記述値)に類似している、索引フィールドのビン内に含まれている、または索引フィールドのビンに等しいことがあることを意味する。照会インターフェースがユーザ入力を受け入れることができる形式または形状がどのようなものであっても、第1にそのままの入力を変換して、変換されたデータセット自体を作成するために使用された索引とまったく同じ順序の索引フィールドの適当なビン値にすることによって、その入力を照会フィールド値のストリングに変換しなければならない。
【0071】
たとえば、変換されたデータリポジトリが2つの索引フィールド値によって索引付けられており、第1の索引フィールド値が出発地、旅行タイプ、および開始週の連結を含む複合タイプであり、第2のレベルの索引が目的都市である場合、「ドバイからナイロビまで、出発日が8月4日であり、旅行期間が25日間である旅行に対して、旅行者によって実際に支払われた価格の頻度分布はどのようなものか?」という照会は、まず第1の索引に対する索引フィールド値としてユーザ入力をDBX532のようなストリングに変換し、次の索引に対応するコンテナを入手し、検索された索引内で第2の索引NBOを累進的に探索して、最終的なデータコンテナを入手することによって答えられる。
【0072】
したがって、本発明の有利な特徴は次の通りである。
【0073】
- 個別記録ではなく記録のグループ(すなわち、ビジネス関連コンテナ)について記憶し、索引付けし、理由付けする。従来のデータベースで行われるものとは異なり、本発明は、個々の微小な記録を記憶する必要なく、記録のグループについて記憶し、索引付けし、検索し、かつ理由付ける能力を有する。
【0074】
- コンテナ索引またはコンテンツの演算は、照会時には実行されない。すべては事前に演算されている。照会時には、関連する記録のみが探索され、発見される場合も、発見されない場合もある。すべての索引、各コンテナに対する再帰的および非再帰的コンテンツは、特定のビジネスの必要に対して個別記録のどのフィールドが重要であるかに基づいて事前に演算されている。照会時には、正しい記録に対応する統計データコンテナのみが検索される。
【0075】
- 異なるビジネスユーザが、同じデータまたは部分的に重複するデータに対して異なる索引を必要とする場合、別個の事前演算により、異なるファイルを作成し、次いでリポジトリの異なる索引付けが行われ、これらのリポジトリについて照会を行うことができる。
【0076】
- 索引は、高速検索のための莫大なメモリ内の索引付きの表にアドレス指定するためのキーとして働き、RAM(ランダムアクセスメモリ)常駐グループ記録データにより、高速検索が可能になり、したがってRAM機械に比べて低速の現在のI/O機械に打ち勝つ。これを実現するために、ファイルサイズは、本発明の以下の説明で述べるように、許容できる制限内で維持される。
【0077】
- 索引は、所与の索引付き変数の値の1つと組み合わせられてワイルドカード文字*になり、その意味は「ドントケア」である。リレーショナルデータベース用語では、これは、関連する表のすべての可能な結合に対する結果を事前に演算することを意味する。
【0078】
- 過去の演算を破棄することなく新しい個別記録を追加する必要があるとき、または古い個別記録を削除する必要があるときに、コンテナを更新するインクリメンタル機構。新しい個別記録を追加する必要があるとき、その対応する索引が作成され、探索される。そのような索引が発見された場合、パラメータに対応する統計が更新される。順序値または区間値のみが、適当なカウントまたは新しい値で更新される。新しい個別記録が、対応する索引付きのコンテナをもたない場合、その対応する索引が作成され、コンテンツが更新される。
【0079】
- 上記の機構を使用してビジネスの必要に関連するすべての基準によって統計的な価格分布を作成し、記憶し、かつ漸インクリメンタルに更新する機構。個別記録の総数の大幅な増大にもかかわらず、コンテナサイズおよびファイルサイズは、使用される頻度分布表現のため、それほど増大しない。新しい個別記録をコンテナに追加することで、変更が最小ですみ、それぞれの頻度ビン内のカウント値のみが変更される。他のデータは追加されない。これにより、ファイルサイズを制御下で維持する。