データ集計などのデータ操作に使用するプログラム、装置および方法
【課題】効率的な集計処理を実現する集計プログラム、集計装置および集計方法を提供する。
【解決手段】TRIE構造の統計ヒドラを用いて複数のアプリケーションによって蓄積されたファイルを、境界値に関する節と、境界値間を補間して得た値に関する節と、で構成し、集計処理を行う。まず、境界値情報を第1の分割した範囲情報と補間値情報を記憶する第1の記憶手段を用意する。同様に、第2、第3の範囲情報、補間値情報を記憶させた第2、第3の記憶手段を用意して集計処理を実行する。
【解決手段】TRIE構造の統計ヒドラを用いて複数のアプリケーションによって蓄積されたファイルを、境界値に関する節と、境界値間を補間して得た値に関する節と、で構成し、集計処理を行う。まず、境界値情報を第1の分割した範囲情報と補間値情報を記憶する第1の記憶手段を用意する。同様に、第2、第3の範囲情報、補間値情報を記憶させた第2、第3の記憶手段を用意して集計処理を実行する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ集計などのデータ操作に使用するプログラム、装置および方法に関する。
【背景技術】
【0002】
基幹業務を行う基幹業務システムなどのシステムでは、生成・蓄積されるデータの規模が大きいため、データの集計、プロファイリング、クレンジング、名寄せなどの処理の効率化が求められる。
【0003】
上記技術に関連して、TRIE構造の統計ヒドラを用いて、複数のアプリケーションにより蓄積されたファイル(データ)から必要なデータを自動的に取得するための技術が知られている。
【0004】
なお、ここで述べる「統計ヒドラ」は、発明を実施するための最良の形態として後述する「統計ヒドラ」とは異なる従来技術を示すものである。
例えば、図12に示す試験結果データ1200を、図13に示す評価表1300にしたがって「優」、「良」、「可」、「不可」に分類し、その分布や平均を求める場合、以下の様な処理を行う必要がある。
【0005】
(1)試験結果データ1200から図14に示す統計ヒドラ1400を生成し、得点毎に1次集計を実施する。その結果、「得点」毎の集計結果1401を得る。
【0006】
(2)集計結果1401のデータを、例えば、以下の検索式を使用して、評価表1300の「得点範囲」毎に分類する。その結果、図15に示すように、評価表1300の「得点範囲」毎の集計結果1501、1502、1503、1504を得る。
「優」 の集計データ群検索式: 得点 ≧ 45 AND 得点 ≦ 50
「良」 の集計データ群検索式: 得点 ≧ 40 AND 得点 < 45
「可」 の集計データ群検索式: 得点 ≧ 30 AND 得点 < 40
「不可」の集計データ群検索式: 得点 ≧ 0 AND 得点 < 30
【0007】
(3)集計結果1503および1504は、複数の集計結果が得られたので、「得点範囲」毎の集計結果を得るために、2次集計を実施する。その結果、図16に示す所望の集計結果1600を得る。
【特許文献1】特開2006−171800号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかし、上述した集計処理では、所望の集計結果を得るために、1次集計に加えて2次集計も行わなければならないため、処理時間がかかるという問題があった。
本発明は、上述した問題に鑑みてなされたものであり、その解決しようとする課題は、効率的な集計処理を実現する集計プログラム、集計装置および集計方法を提供することである。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本集計プログラムは、コンピュータに、所望の範囲を特定する境界値情報であって前記所望の範囲に属する境界値情報を第1の分割位置で分割した第1の分割情報と前記境界値情報以外の前記所望の範囲の値を補完して得る補間値情報を前記第1の分割位置で分割した第1の補間値分割情報とを記憶する第1の記憶手段と、前
記境界値情報を前記第1の分割位置と一定方向に隣接する第2の分割位置で分割した第2の分割情報と前記補間値情報を前記第2の分割位置で分割した第2の補間値分割情報とを記憶する第2の記憶手段と、前記境界値情報が属する範囲についての集計情報を記憶する集計情報記憶手段に関する情報を記憶する第3の記憶手段と、を備え、前記第1の記憶手段は、前記第1の分割情報と前記第2の記憶手段との関連付け情報と、前記第1の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有し、前記第2の記憶手段は、前記第2の分割情報と前記第3の記憶手段との関連付け情報と、前記第2の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有する集計用記憶手段における前記第1の記憶手段を参照し、集計対象である集計対象情報を前記第1の分割位置で分割した第1の集計分割情報と一致する前記第1の分割情報と関連付けられた前記第2の記憶手段、または前記第1の集計分割情報と一致する前記第1の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第1の特定処理と、前記第2の記憶手段を参照し、前記集計対象情報を前記第2の分割位置で分割した第2の集計分割情報と一致する前記第2の分割情報と関連付けられた前記第3の記憶手段、または前記第2の集計分割情報と一致する前記第2の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第2の特定処理と、前記第1または第2の特定処理により特定された第3の記憶手段が記憶する情報から集計情報記憶手段を特定し、該集計情報記憶手段に前記集計対象情報に関する集計情報を記憶する集計処理と、を実行させる。
【0010】
本集計プログラムによると、集計対象である集計対象情報について、第1の集計分割情報と一致する第1の分割情報と関連付けられた第2の記憶手段、または第1の集計分割情報と一致する第1の補間値分割情報と関連付けられた第3の記憶手段を特定する。
【0011】
そして、第2の集計分割情報と一致する第2の分割情報と関連付けられた第3の記憶手段、または第2の集計分割情報と一致する第2の補間値分割情報と関連付けられた第3の記憶手段を特定する。
【0012】
さらに、特定した第3の記憶手段が記憶する情報から集計情報記憶手段を特定し、集計情報記憶手段に集計対象情報に関する集計情報を記憶する。
したがって、所望の集計結果を得るために、上述した一連の1次集計処理以外の処理、例えば、2次集計処理を行うことなる、所望の集計結果を得ることが可能となる。
【発明の効果】
【0013】
以上に説明したように、本集計プログラムによると、効率的な集計処理を実現する集計プログラム、集計装置および集計方法を提供することが可能となる。
【発明を実施するための最良の形態】
【0014】
以下、本実施形態について、図1〜図11に基づいて説明する。なお、以下の説明では、図12に示した試験結果データ1200を、図13に示す評価表1300にしたがって「優」、「良」、「可」、「不可」に分類し、その分布や平均を求める場合について説明する。
【0015】
図1は、集計装置100の処理の概要を示すフローチャートである。
ステップS101において、集計装置100は、評価表1300から得点範囲の境界値情報201を取得し、境界値情報201についての基本統計ヒドラ200を集計装置100に備わるメモリ1102上に生成する。
【0016】
本実施例では、基本統計ヒドラ200、後述する統計ヒドラ300を、メモリ1102上生成する場合について説明するが、仮想メモリ上に基本統計ヒドラ200および統計ヒドラ300を生成してもよい。
【0017】
以下、このステップで生成される統計ヒドラ200を、後述する統計ヒドラ300と区別するために、「基本統計ヒドラ200」という。
ステップS102において、集計装置100は、ステップS101で生成した基本統計ヒドラ200について、境界値情報201以外の部分を補間する。以下、補間処理が施された基本統計ヒドラ200を「統計ヒドラ300」という。
【0018】
ステップS103において、集計装置100は、ステップS102で生成した統計ヒドラ300にしたがって、試験結果データ1200の集計処理を行う。集計結果は、後述する集計情報記憶領域に記憶される。
【0019】
ステップS104において、集計装置100は、ステップS103で行った集計の結果をメモリ1102、外部記憶装置1105、可搬記憶媒体1107、ネットワークなどに出力する。
また、必要があれば、集計結果から得られる所望の情報、例えば、平均得点などを算出してメモリ1102等に出力する。
【0020】
図2は、ステップS101の処理で生成される基本統計ヒドラ200の概要を説明する図である。
図2に示す基本統計ヒドラ200は、境界値に関する節a〜jで構成される。そして、基本統計ヒドラ200は、階層構造を有する。
「境界値に関する節」は、境界値の一部の情報と、同じ境界値の他の部分の情報を有する節または同じ境界値に関する葉と関連付けるための情報と、を備える。「葉」は、関連付けられた一連の節によって構成される値に関する集計情報である。本実施例に係る葉は、例えば、人数や合計得点などが記憶される集計情報記憶領域のアドレス情報などで構成される。
【0021】
以下、基本統計ヒドラ200の起点となる節aを「先頭節」という。また、他の節と関連付けられた節を「中間節」といい、葉と関連付けられた節を「最終節」という。したがって、節aは先頭節である。節b、c、dおよびeは中間節である。また、節f、g、h、iおよびjは最終節である。そして、k、l、mおよびnは葉である。
【0022】
図2に示す中間節は、境界値情報201の境界値の十の位の値と、同じ境界値の一の位の値を有する節が記憶される記憶領域のアドレス情報と、を備える。また、図2に示す最終節は、境界値情報201の境界値の一の位の値と、関連付けられた一連の節によって構成される境界値に関する集計情報が記憶される集計情報記憶領域のアドレス情報を有する葉が記憶される記憶領域のアドレス情報と、を備える。
【0023】
例えば、境界値「30」に関し、中間節cは、境界値「30」の十の位の値「3」と、境界値「30」の一の位の値「0」を有する最終節gが記憶されている記憶領域のアドレス情報を備える。
【0024】
同様に、境界値「30」に関し、最終節gは、境界値「30」の一の位の値「0」と、関連付けられた一連の節(中間節cと最終節g)が有する値によって構成される境界値「30」に関する集計情報(人数、合計得点)を記憶する集計情報記憶領域のアドレス情報を有する葉が記憶される記憶領域のアドレス情報と、を備える。
【0025】
図2では、中間節からなる層と最終節からなる層との2層構造の場合を示したが、これに限定する趣旨ではない。境界値の分割する数に応じて階層の数が決まることは当然であ
る。
【0026】
図3は、ステップS102の処理で生成される統計ヒドラ300の概要を説明する図である。
図3に示す統計ヒドラ300は、境界値に関する節と、境界値間を補完して得た値に関する節と、で構成される。以下、境界値間を補完して得た値を「補間値」という。そして、基本統計ヒドラ200と同様に、統計ヒドラ300も、階層構造を有する。
【0027】
「補間値に関する節」は、境界値以外の値を補完して得た値の一部または全部の情報と、同じ補間値に関する葉と関連付けるための情報と、を備える。
以下、補間値に関する節を「補間節」という。図3に示す節a’、f’、f’’、g’、h’、i’、j’、j’’は補間節である。
【0028】
例えば、補間節f’、f’’は、境界値「00」と「30」の間の値を補完して得た値に関する補間節である。
補間節f’は、中間節bに続く最終節なので、「00」以上「10」未満の一の位の値「0」〜「9」と、関連付けられた一連の節(中間節bと補間節f’)が有する各値によって構成される値「00」〜「09」に関する集計情報(人数、合計得点)を記憶する集計情報記憶領域のアドレス情報を有する葉kが記憶される記憶領域のアドレス情報と、を備える。
【0029】
補間節f’’は、先頭節に続く中間節なので、「10」以上「30」未満の十の位の値「1」〜「2」を備える。同時に、補間節f’’は、最終節でもあるので、「10」以上「30」未満の値に関する集計情報(人数、合計得点)を記憶する集計情報記憶領域のアドレス情報を有する葉kが記憶される記憶領域のアドレス情報と、を備える。
【0030】
葉kが指し示す集計情報には、「00」以上「30」未満の集計情報が格納される。
図4は、節および葉の具体的な構成の例を示す図である。
本実施例で使用する節は、関連付けたい次の節が記憶されている記憶領域のアドレス情報を記憶する節用記憶領域と、関連付けたい葉が記憶されている記憶領域のアドレス情報を記憶する葉用記憶領域と、を備える。
【0031】
中間節の場合、節用記憶領域のみが使用される。節用記憶領域は、0xFF個の連続した配列(アドレス[0x00]〜アドレス[0xFF])で構成される。以下、この配列を「節用配列」という。そして、節用配列の配列番号と、後述するステップS505の処理によってコード化された分割境界値と、を対応させる。
【0032】
以下、後述するステップS505の処理によってコード化された分割境界値を「分割境界値コード」という。
集計装置100は、分割境界値コードの値と一致する配列番号の節用配列に、関連付けたい次の節または葉が記憶されている記憶領域のアドレスを記憶する。例えば、分割境界値コードが0x30の場合、集計装置100は、節用配列のアドレス[0x30]に、関連付けたい次の節または葉が記憶されている記憶領域のアドレスを記憶する。
【0033】
最終節の場合、葉用記憶領域のみが使用される。集計装置100は、葉用記憶領域に、葉が記憶されている記憶領域のアドレスを記憶する。
補間節の場合、必要に応じて、節用記憶領域と葉用記憶領域が使用される。したがって、補間節は、中間節と同じ構成の場合と、最終節と同じ構成の場合と、が存在することになる。
【0034】
本実施例で使用する葉は、集計情報を管理する管理領域と、集計情報が記憶されている集計情報記憶領域のアドレスを記憶する集計情報用記憶領域と、を備える。
集計情報用記憶領域は、必要に応じて、複数の連続した配列(情報[0x00]、情報[0x01]、・・・)で構成される。また、管理用域は、配列が指し示す領域の集計情報の種類などが記憶される。集計情報の種類とは、例えば、後述するCOUNT情報、SUM情報などである。
【0035】
図5は、基本統計ヒドラ200を生成する処理(ステップS101)の具体的な処理を示すフローチャートである。
ステップS501において、集計装置100は、メモリ1102等に記憶されている境界値情報201を参照する。そして、集計装置100は、未処理の境界値があるか否かを確認する。
【0036】
未処理の境界値がある場合、集計装置100は、処理をステップS502に移行する(ステップS501 YES)。また、未処理の境界値がない場合、集計装置100は、ステップS512に移行し(ステップS501 NO)、基本統計ヒドラ200の生成処理を終了する。
【0037】
ステップS502において、集計装置100は、境界値情報201から境界値を取得する。なお、取得した境界値は、文字列として扱われるデータとする。そして、集計装置100は、境界値を構成する文字列から、未処理の文字のうち最も位の大きい値を表す文字を1つ取り出す。以下、取り出した未処理の文字を「分割境界値」という。
【0038】
ステップS503において、未処理の分割境界値が存在する場合、集計装置100は、処理をステップS504に移行する(ステップS503 YES)。
ステップS504において、分割境界値が境界値の最初の値の場合、集計装置100は、先頭節を参照先の節に設定する。以下、参照先の節を「参照節」という。なお、分割境界値が境界値の最初の値でない場合、集計装置100は、何も行わない。
【0039】
ここで、最初の値とは、境界値を構成する文字列を1文字毎に分割して得る分割境界値のうち、境界値の最上位の値のことをいう。例えば、境界値が「123」の場合、最上位の値を表す文字「1」が最初の値となる。
【0040】
ステップS505において、集計装置100は、分割境界値を所定の規則にしたがってコード化して分割境界値コードを生成する。本実施例では、分割境界値をASCII(American Standard Code for Information Interchange)コード表にしたがって1バイトの16進コードに変換する。
【0041】
例えば、集計装置100は、分割境界値「0」を分割境界値コード「0x30」に変換する。
ステップS506において、集計装置100は、参照節において、分割境界値コードと一致する配列番号の節用配列に、節が記憶されている記憶領域のアドレスが既に設定されているか否かを判断する。
【0042】
分割境界値コードと一致する配列番号の節用配列に、節が記憶されている記憶領域のアドレスが既に設定されている場合、集計装置100は、処理をステップS509に移行する(ステップS506 YES)。
【0043】
分割境界値コードと一致する配列番号の節用配列に、節が記憶されている記憶領域のアドレスが設定されていない場合、集計装置100は、処理をステップS507に移行する
(ステップS506 NO)。
【0044】
ステップS507において、集計装置100は、新たな節をメモリ1102上に生成する。
ステップS508において、集計装置100は、分割境界値コードと一致する配列番号の節用配列に、ステップS507で生成した新たな節が記憶されている記憶領域のアドレスを設定する。
【0045】
ステップS509において、集計装置100は、ステップS507で生成した新たな節を参照節に設定する。設定が完了すると、集計装置100は、処理をステップS502に移行する。そして、集計装置100は、ステップS502〜S59の処理を行う。
【0046】
一方、ステップS503において、未処理の分割境界値が存在しない場合、集計装置100は処理をステップS510に移行する(ステップS503 NO)。
ステップS510において、集計装置100は、葉をメモリ1102上に生成する。
【0047】
ステップS511において、集計装置100は、参照節の葉用記憶領域に、ステップS510で生成した新たな葉が記憶されている記憶領域のアドレスを設定する。
ステップS512において、集計装置100は、集計する内容に応じて、COUNT情報やSUM情報などを記憶する1または2以上の集計用領域を集計情報記憶領域に生成する。本実施例では、集計した人数を記憶するCOUNT用領域と合計得点を記憶するSUM用領域を集計情報記憶領域に生成する。
【0048】
また、集計装置100は、生成した集計用領域が記憶されている集計情報記憶領域のアドレスを、ステップS510で生成した新たな葉に設定する。そして、集計装置100は、処理をステップS501に移行する。
【0049】
なお、本実施例では、ステップS505において、分割境界値をASCIIコードに変換したが、ASCIIコードに変換する場合に限定する趣旨ではない。例えば、Shift_JIS(Japanese Industrial Standards)コードやEUC(Extended Unix Code)など必要に応じて他の文字コードに変換してもよい。また、分割境界値コードは、1バイトで表される文字コードである必要もない。
【0050】
図6は、基本統計ヒドラ200を具体的に説明する図である。なお、図6に示す基本統計ヒドラ200は、図5に示したフローチャートにしたがって生成した評価表1300についての基本統計ヒドラを示している。
【0051】
境界値情報201は、16進のASCIIコード表にしたがって変換される。図6に示すように、境界値「00」、「30」、「40」、「45」、「50」は、「0x3030」、「0x3330」、「0x3430」、「0x3435」、「0x3530」となる。
【0052】
図6に示す基本統計ヒドラ200は、先頭節610と、中間節620〜623と、最終節630〜633と、を備える。
先頭節610、中間節620〜623および最終節630〜633は、それぞれ配列番号0x00〜0xFFの連続した配列で構成される節用記憶領域と、葉用記憶領域と、を備える。
【0053】
先頭節610は、境界値の十の位の値の分割境界値コードに関する節である。先頭節6
10の配列番号は、境界値の十の位の分割境界値コードと対応する。そして、節用記憶領域の各配列には、配列番号と一致する分割境界値コードが表す境界値の十の位の値に続く一の位の値の分割境界値コードに関する節が記憶されている記憶領域の先頭アドレスが記憶される。
【0054】
これにより、先頭節610の配列番号と中間節620〜623とが関連付けられる。
中間節620〜623は、境界値の一の位の値の分割境界値コードに関する節である。中間節620〜623の配列番号は、境界値の一の位の分割境界値コードと対応する。そして、節用記憶領域の各配列には、最終節630〜633を記憶する記憶領域のアドレスが記憶される。
【0055】
これにより、中間節620〜523の配列番号と最終節630〜633とが関連付けられる。
最終節630〜633の葉用記憶領域には、自身に関連付けられた境界値が属する範囲の集計情報、すなわち、最終節と関連付ける中間節の配列の配列番号とその中間節と関連付ける先頭節の配列の配列番号とで構成されるコードで表される境界値が属する範囲の集計情報を記憶する葉が記憶されている記憶領域のアドレスが記憶される。
【0056】
例えば、最終節631に関し、最終節631と関連付ける中間節621の配列の配列番号0x30と、その中間節621と関連付ける先頭節610の配列の配列番号0x33とで構成されるコード0x3330で表される境界値30が属する範囲30以上40未満の集計情報を記憶する葉641が記憶されている記憶領域のアドレスが記憶される。
【0057】
葉640〜643の集計情報用記憶領域には、集計情報650〜653を記憶する集計情報記憶領域のアドレスが記憶される。集計情報650〜653は、人数の集計情報であるCOUNT情報と、合計得点の集計情報であるSUM情報と、で構成されている。
【0058】
なお、必要に応じて、COUNT情報、SUM情報、得点の平均値に関する情報であるAVG情報、得点の最大値に関する情報であるMAX情報、得点の最小値に関する情報であるMIN情報などの1または2以上の情報で構成すればよい。
【0059】
例えば、先頭節610の配列番号0x33は、境界値30の十の位の値の分割境界値コード0x33と対応している。そして、配列番号0x33の配列には、配列番号0x33と一致する分割境界値コードが表す境界値の十の位の値3に続く一の位の値0の分割境界値コードに関する中間節621が記憶されている記憶領域の先頭アドレスが記憶されている。
【0060】
中間節621の配列番号0x30は、境界値30の一の位の値の分割境界値コード0x30と対応している。そして、配列番号0x30の配列には、最終節631を記憶する記憶領域の先頭アドレスが記憶されている。
【0061】
最終節631の葉用記憶領域には、最終節と関連づけられた中間節の配列番号0x30と、その中間節と関連付けられた先頭節の配列番号0x33と、で構成されるコード0x3330で表される境界値30についての集計情報を記憶する葉631が記憶されている記憶領域の先頭アドレスが記憶されている。
葉640〜643と集計情報記憶領域については、図4で説明したので具体的な説明は省略する。
【0062】
図7は、統計ヒドラ300を生成する処理(ステップS102)の具体的な処理を示すフローチャートである。
ステップS701において、集計装置100は、節を記憶する記憶領域のアドレスを一時的に記憶する変数を、例えば値0で初期化する。以下、節を記憶する記憶領域のアドレスを一時的に記憶する変数を「節ポインタ」という。
【0063】
なお、節ポインタに値0が設定されている場合、集計装置100は、節ポインタが設定されていないと判断する。
ステップS702において、集計装置100は、対象外データが集計対象か否かを判断する。「対象外データ」とは、集計対象となる範囲以外のデータのことをいう。例えば、範囲評価表1300の範囲外の得点が対象外データである。
【0064】
なお、対象外データを集計対象とするか否かは、集計装置100の利用者によってあらかじめ設定される。その設定は、集計装置100が備える外部記憶装置1105の所定の記憶領域に保持される。したがって、集計装置100は、その記憶領域を参照して対象外データが集計対象か否かを判断する。
【0065】
対象外データが集計対象であると判断した場合、集計装置100は、処理をステップS703に移行する(ステップS702 YES)。また、対象外データが集計対象でないと判断した場合、集計装置100は、処理をステップS705に移行する(ステップS702 NO)。
【0066】
ステップS703において、集計装置100は、対象外データに関する補間節と、その補間節の葉と、をメモリ1102上に生成する。
そして、集計装置100は、先頭節810の配列番号のうち集計範囲外の配列番号の配列に、本ステップで生成した補間節を記憶する記憶領域の先頭アドレスを記憶する。さらに、集計装置100は、補間節の葉用記憶領域に、本ステップで生成した葉を記憶する記憶領域の先頭アドレスを記憶する。そして、集計装置100は、節ポインタに、補間節を設定する。
【0067】
ステップS704において、集計装置100は、ステップS703で生成した対象外データに関する補間節を、ポインタ節に設定する。そして、集計装置100は、処理をステップS705に移行する。
【0068】
ステップS705において、集計装置100は、参照節を先頭節に設定する。そして、先頭節の0番目の配列を参照する。以下、集計装置100が参照している配列を「参照配列」という。
【0069】
ステップS706において、集計装置100は、ステップS705で参照した参照配列に、次の節が記憶されている記憶領域のアドレスが設定済みか否かを判断する。
アドレスが設定済みでないと判断した場合、集計装置100は、処理をステップS706に移行する(ステップS706 NO)。
【0070】
ステップS707において、集計装置100は、節ポインタに設定されているアドレスを、参照配列に設定する。なお、節ポインタに節が記憶されているアドレスが設定されていない場合、集計装置100は、本ステップの処理を行わない。
【0071】
ステップS708において、集計装置100は、次の配列を参照する。すなわち、集計装置100は、参照配列の配列番号を1だけインクリメントし、その1だけインクリメントした配列番号の配列を参照する。以下、この参照する配列を新たな「参照配列」とする。
【0072】
ステップS709において、集計装置100は、参照配列の配列番号と値「0xFF」とを比較する。そして、参照配列の配列番号が0xFF以下である場合、集計装置100は、処理をステップS706に移行する(ステップS709 NO)。
【0073】
また、ステップS709において、参照配列の配列番号が0xFFより大きい場合、集計装置100は、処理をステップS710に移行する(ステップS709 YES)。
ステップS710において、集計装置100は、参照節を1個前の節に戻す。なお、1個前の節とは、現在の参照節の1つ前に参照節であった節である。
【0074】
ステップS711において、集計装置100は、参照節が先頭節であるか否かを判断する。参照節が先頭節である場合、集計装置100は、ステップS717に移行し(ステップS711 YES)、統計ヒドラ300の生成処理を終了する。
【0075】
また、ステップS711において、参照節が先頭節でない場合、集計装置100は、ステップS706に移行する(ステップS711 NO)。
一方、ステップS706において、アドレスが設定済みと判断した場合、集計装置100は、ステップS712に処理を移行する(ステップS706 YES)。
【0076】
ステップS712において、集計装置100は、参照節を次の節に移動する。なお、次の節とは、参照配列に記憶されているアドレスの節のことである。
ステップS713において、集計装置100は、参照節が最終節か否かを判断する。参照節が最終節でない場合、集計装置100は、処理をステップS706に移行する(ステップS713 NO)。参照節が最終節である場合、集計装置100は、処理をステップS714に移行する(ステップS713 YES)。
【0077】
ステップS714において、集計装置100は、参照節が最後の境界値についての節か否かを判断する。
参照節が最後の境界値についての節か否かは、参照節と関連付けられた節で構成される境界値が最後の境界値であるか否かにより判断する。また、最後の境界値とは、境界値のうち最大値のものをいう。
【0078】
例えば、最終節633と関連付けられた先頭節810と中間節623とで構成される境界値は、先頭節810の配列番号と中間節623の配列番号とで構成される値「0x3530」をデコードした値、すなわち、50となる。
【0079】
境界値情報201を参照すると、境界値50は境界値情報201に含まれる境界値のうち最大のものなので、集計装置100は、最後の境界値と判断する。
ステップS714において、参照節が最後の境界値についての節であると判断した場合、集計装置100は、処理をステップS715に移行する(ステップS714 YES)。
【0080】
ステップS715において、集計装置100は、ステップS703で生成した対象外データに関する補間節を、ポインタ節に設定する。ただし、ステップS702において、対象外データが集計対象でない判断した場合は、本ステップの処理を行わない。
【0081】
一方、ステップS714において、参照節が最後の境界値についての節でないと判断した場合、集計装置100は、処理をステップS716に移行する(ステップS714 NO)。
【0082】
ステップS716において、集計装置100は、節ポインタに参照節を設定する。すなわち、集計装置100は、節ポインタに参照節が記憶されている記憶領域のアドレスを設定する。
ステップS715またはS716の処理が完了すると、集計装置100は、処理をステップS710に移行する。
【0083】
図8は、統計ヒドラ300を具体的に説明する図である。なお、図8に示す統計ヒドラ300は、図6に示した基本統計ヒドラ200について、図7に示したフローチャートにしたがって補間を行うことにより生成した統計ヒドラ300を示している。
【0084】
図8に示す統計ヒドラ300は、先頭節810と、中間節820〜823と、最終節830〜833と、を備える。
先頭節810、中間節820〜823および最終節830〜833は、それぞれ配列番号0x00〜0xFFの連続した配列で構成される節用記憶領域と、葉用記憶領域と、を備える。
【0085】
先頭節810は、境界値の十の位の値の分割境界値コードと、境界値間を補間して得た補間値の十の位の値の分割境界値コードと、に関する節である。
先頭節810の配列番号は、境界値または補間値の十の位の分割境界値コードと対応する。
【0086】
節用記憶領域の各配列には、配列番号と一致する分割境界値コードが表す境界値の十の位の値に続く一の位の値の分割境界値コードに関する中間節、または、補間値が属する境界値に関する最終節、が記憶されている記憶領域の先頭アドレスが記憶される。
【0087】
ここで、「補間値が属する境界値」とは、補間値が属する範囲を特定する2つ境界値のうち、その範囲に属する方の境界値のことをいう。補間値が属する範囲を特定する2つ境界値が何れもその範囲に属する場合には、いずれの境界値を「補間値が属する境界値」とするかあらかじめ決めておけばよい。
【0088】
例えば、境界値00から30の間を補完して得る補間値10は、境界値00以上かつ境界値30未満の範囲に属する。この範囲に属する境界値は00である。したがって、この場合の補間値が属する境界値は00となり、補間値10が属する境界値に関する最終節は、最終節830となる。
【0089】
同様に、補間値11〜19および20〜29が属する境界値に関する最終節は、最終節830となる。
したがって、先頭節810の配列番号0x31の配列には、補間値10〜19に属する境界値に関する最終節830が記憶されている記憶領域の先頭アドレスが記憶される。同様に、先頭節810の配列番号0x32の配列には、補間値20〜29に属する境界値に関する最終節830が記憶されている記憶領域の先頭アドレスが記憶される。
【0090】
これにより、先頭節810の配列番号と、中間節820〜823または最終節830〜833と、が関連付けられる。
中間節820〜823は、境界値の一の位の値の分割境界値コードと、境界値間を補完して得た補間値の一の位の値の分割境界値コードと、に関する補間節である。
【0091】
中間節820〜823の配列番号は、境界値または補間値の一の位の分割境界値コードと対応する。
節用記憶領域の各配列には、配列番号と一致する分割境界値コードが表す境界値の一の
位の値とその配列の属する中間節に関連付けられた先頭節810の配列番号が表す境界値の十の位の値とで構成される境界値が属する範囲の集計情報に関する最終節が記憶される記憶領域の先頭アドレスが記憶される。
【0092】
例えば、中間節821の配列番号0x31と一致する分割境界値コードが表す一の位の値1と、その配列の属する中間節821に関連付けられた先頭節810の配列番号0x33が表す境界値の十の位の値3と、で構成される境界値は、31となる。
【0093】
そして、中間節821の配列番号0x31の配列には、境界値31が属する範囲の集計情報に関する最終節831が記憶されている記憶領域の先頭アドレスが記憶される。
最終節830〜833については、図6に示した最終節630〜633と同様なので説明を省略する。
【0094】
図9は、統計ヒドラ300を用いた集計処理(ステップS103)を示すフローチャートである。
利用者が、集計装置100に備わる入力装置1103を用いて、試験結果データ1200を指定し、かつ集計処理の開始を指示すると、集計装置100は、集計処理を開始する(ステップS900)。なお、参照節は、先頭節に初期化されているものとする。
【0095】
ステップS901において、集計装置100は、試験結果データ1200から1レコードを取得する。なお、本実施例では、試験結果データ1200に登録されている「名前」と「得点」の組み合わせから成る1つのデータを「レコード」という。
【0096】
ステップS902において、集計装置100は、試験結果データ1200に登録されている全てのレコードについて、集計処理を実施したか否かを判断する。
試験結果データ1200に登録されている全てのレコードについて、集計処理を実施したと判断した場合、集計装置100は、ステップS917に移行して集計処理を終了する(ステップS902 YES)。図16に示した集計結果1600が得られる。
【0097】
試験結果データ1200に登録されているレコードに、集計処理を実施していないレコードがあると判断した場合、集計装置100は、処理をステップS903に移行する(ステップS902 NO)。
【0098】
ステップS903において、集計装置100は、ステップS901で取得したレコードの得点を、ASCIIコード表にしたがって16進のコードに変換する。以下、このコードを「得点コード」という。
【0099】
ステップS904において、集計装置100は、得点コードから1バイト分のコードを取得する。なお、ステップS904では、上位から下位の順に1バイト分のコードを取得する。したがって、次回本ステップを実行する場合は、今回本ステップで取得したコードの次に上位の1バイト分のコードを取得する。以下、このコードを「得点分割コード」という。
【0100】
ステップS905において、集計装置100は、得点分割コードが、得点コードから取得される最後の得点分割コード、すなわち最下位バイトの得点分割コードであるか否かを判断する。
【0101】
得点分割コードが得点コードから取得される最後の得点分割コードであると判断した場合、集計装置100は、処理をステップS908に移行する(ステップS905 YES)。
【0102】
得点分割コードが得点コードから取得される最後の得点分割コードでないと判断した場合、集計装置100は、処理をステップS906に移行する(ステップS905 NO)。
【0103】
ステップS906において、集計装置100は、参照節として設定されている統計ヒドラ300の節を参照し、得点分割コードと一致する配列を特定する。なお、得点分割コードが得点コードの最上位バイトのコードである場合、集計装置100は、統計ヒドラ300の先頭節を参照する。
【0104】
ステップS907において、集計装置100は、ステップS906で特定した配列にNULLが設定されているか否かを判断する。
ステップS906で特定した配列にNULLが設定されている場合、集計装置100は、処理をステップS901に移行する。そして、集計装置100は、次のレコードを試験結果データ1200から取得する(ステップS907 YES)。
【0105】
ステップS906で特定した配列にNULLが設定されていない場合、集計装置100は、ステップS906で特定した配列に設定されているアドレスの節を参照節に設定し、処理をステップS904する。そして、集計装置100は、分割境界値コードの次に下位の1バイト分のコードを取得し、この取得したコードを新たな得点分割コードとする(ステップS907 NO)。
【0106】
一方、ステップS908において、集計装置100は、参照節の葉用記憶領域から、葉のアドレスを取得する。そして、集計装置100は、葉を参照する。
ステップS909において、集計装置100は、葉の集計情報用記憶領域に記憶されているアドレスに記憶されている集計情報がCOUNT情報であるか否かを判断する。なお、本実施例では、葉の管理領域に集計情報の種類を特定する情報が設定されているものとする。したがって、集計装置100は、葉の管理領域に設定されている情報から集計情報の種類を判別する。ステップS911、S913およびS915についても同様である。
【0107】
集計情報がCOUNT情報であると判断した場合、集計装置100は、処理をステップS910に移行する(ステップS909 YES)。そして、集計装置100は、集計値を1だけカウントアップする。
【0108】
また、集計情報がCOUNT情報でないと判断した場合、集計装置100は、処理をステップS911に移行する(ステップS909 NO)。
ステップS911において、集計装置100は、葉の集計情報用記憶領域に記憶されているアドレスに記憶されている集計情報がSUM情報であるか否かを判断する。
【0109】
集計情報がSUM情報であると判断した場合、集計装置100は、処理をステップS912に移行する(ステップS911 YES)。そして、集計装置100は、ステップS901で取得したレコードの得点を、SUM情報に加算する。
【0110】
また、集計情報がSUM情報でないと判断した場合、集計装置100は、処理をステップS913に移行する(ステップS911 NO)。
ステップS913において、集計装置100は、葉の集計情報用記憶領域に記憶されているアドレスに記憶されている集計情報がMAX情報であるか否かを判断する。
【0111】
集計情報がMAX情報であると判断した場合、集計装置100は、処理をステップS914に移行する(ステップS913 YES)。そして、集計装置100は、ステップS901で取得した得点と、MAX情報とを比較する。そして、ステップS901で取得した得点がMAX情報より大きい場合、ステップS901で取得した得点を新たにMAX情報として記憶する。
【0112】
また、集計情報がMAX情報でないと判断した場合、集計装置100は、処理をステップS915に移行する(ステップS913 NO)。
ステップS915において、集計装置100は、葉の集計情報用記憶領域に記憶されているアドレスに記憶されている集計情報がMIN情報であるか否かを判断する。
【0113】
集計情報がMIN情報であると判断した場合、集計装置100は、処理をステップS916に移行する(ステップS915 YES)。そして、集計装置100は、ステップS901で取得した得点と、MIN情報とを比較する。そして、ステップS901で取得した得点がMIN情報より小さい場合、ステップS901で取得した得点を新たにMIN情報として記憶する。
また、集計情報がMIN情報でないと判断した場合、集計装置100は、処理をステップS901に移行する(ステップS915 NO)。
【0114】
図10は、集計結果の出力処理(ステップS104)を示すフローチャートである。
図9に示した集計処理が完了すると、集計装置100は、集計結果の出力処理を開始する(ステップS1000)。
ステップS1001において、集計装置100は、境界値情報201から境界値を1つ取得する。なお、ステップS1001では、小さい順に境界値情報201から境界値を取得する。したがって、次回本ステップを実行する場合は、今回本ステップで取得した境界値の次に小さい境界値を取得する。
【0115】
ステップS1002において、集計装置100は、ステップS1001で取得した境界値が最後の境界値か否かを判断する。なお、最後の境界値とは、ステップS1001で取得するべき境界値のうち最後に取得するもの、すなわち、境界値情報201の中で最も大きい境界値である。
【0116】
最後の境界値であると判断した場合、集計装置100は、ステップS1011に移行して集計結果出力処理を終了する(ステップS1002 YES)。
最後の境界値でないと判断した場合、集計装置100は、処理をステップS1003に移行する(ステップS1002 NO)。
【0117】
ステップS1003において、集計装置100は、ステップS1001で取得した境界値を、ASCIIコード表にしたがって16進のコードに変換する。以下、このコードを「境界値コード」という。
【0118】
ステップS1004において、集計装置100は、境界値コードから1バイト分のコード、すなわち、分割境界値コードを取得する。なお、ステップS1004では、上位から下位の順に1バイト分のコードを取得する。したがって、次回本ステップを実行する場合は、今回本ステップで取得したコードの次に上位の1バイト分のコードを取得する。
【0119】
ステップS1005において、集計装置100は、参照節として設定されている統計ヒドラ300の節を参照し、分割境界値コードと一致する配列を特定する。そして、特定した配列に設定されているアドレスの節を参照節に設定する。
【0120】
なお、分割境界値コードが境界値コードの最上位バイトのコードである場合、集計装置
100は、統計ヒドラ300の先頭節を参照する。
ステップS1006において、集計装置100は、分割境界値コードが境界値コードの最後のコード、すなわち、最下位バイトのコードであるか否かを判断する。
【0121】
分割境界値コードが最後のコードでないと判断した場合、集計装置100は、処理をステップS1004に移行する(ステップS1006 NO)。そして、ステップS1004〜S1006の処理が行われる。
【0122】
分割境界値コードが最後のコードであると判断した場合、集計装置100は、処理をステップS1007に移行する(ステップS1006 YES)。
ステップS1007において、集計装置100は、参照節の葉用記憶領域に設定されているアドレスの葉を参照する。そして、葉の集計情報用記憶領域から集計情報が記憶されている1または2以上の領域のアドレスを取得する。
【0123】
ステップS1008において、集計装置100は、ステップS1007で取得したアドレスの領域から、例えば、COUNT情報、SUM情報、MAX情報、MIN情報を取得する。
【0124】
ステップS1009において、集計装置100は、ステップS1008で取得したSUM情報とCOUNT情報とから平均得点(AVG情報=SUM情報/COUNT情報)を算出する。
【0125】
ステップS1010において、集計装置100は、ステップS1008、S1009で取得・算出した情報を表示装置、データファイル、記憶装置などに出力する。そして、集計装置100は、処理をステップS1001に移行する。
【0126】
なお、ステップS1001では、大きい境界値から順に取得しているが、これに限定するものではない。例えば、小さい境界値から順に取得してもよい。この場合、ステップS1002で判断する最後の境界値は、最も大きい境界値となる。
【0127】
図11は、集計装置100の構成例を示す図である。
図11に示す集計装置100は、周辺機器や各種ソフトウェアを実行する他に集計処理を実現するプログラムを実行するCPU1101と、プログラムを実行するために使用される揮発性のメモリ1102(例えば、RAM)と、外部からのデータ入力手段である入力装置1103(例えば、キーボードやマウス)と、データ等を表示する出力装置1104と、集計装置100が動作するために必要なプログラムやデータの他に集計処理を実現するプログラムを記録する外部記録装置1105と、メモリ1102や外部記録装置1105のデータを可搬記録媒体1107(例えば、フロッピイディスク、MOディスク、CD−R、DVD−Rなど)に出力し、あるいは可搬記録媒体1107からプログラムやデータ等を読み出す媒体駆動装置1106と、を有し、これらの装置がバス1100に接続されて相互にデータの受け渡しが行える構成となっている。
【0128】
また、集計装置100は、ネットワークに接続するネットワーク接続装置1108を備え、ネットワークを介して他の情報処理装置や外部記憶装置に集計結果を出力するようにしてもよい。
【0129】
以上の説明において、実装を簡単にするために、基本統計ヒドラ200および統計ヒドラ300において、節用記憶領域を、配列番号0x00〜0xFFの連続した配列で構成しているが、これに限定する趣旨ではない。
【0130】
例えば、配列番号0x00〜0x40の連続した配列で節用記憶領域を構成してもよいし、配列番号0x00〜0x09の連続した配列で節用記憶領域を構成して配列番号と分割境界値と対応させてもよい。
【0131】
また、基本統計ヒドラ200の構成に、葉640〜643および集計情報650〜651を含めてもよい。同様に、統計ヒドラ300の構成に、葉840〜843および集計情報650〜651を含めてもよい。
【0132】
また、先頭節610および中間節620〜623は、葉用記憶領域は使用しない。したがって、先頭節610および中間節620〜623として使用する節の場合、葉用記憶領域を確保しなくてもよい。先頭節810および中間節820〜823についても同様である。
【0133】
また、最終節630〜633は、節用記憶領域を使用しない。したがって、最終節630〜633として使用する節の場合、節用記憶領域を確保しなくてもよい。最終節830〜833についても同様である。
【0134】
また、基本統計ヒドラ200および統計ヒドラ300が階層構造を有するとは、概念的な意味において階層構造を有するということであって、物理的に階層構造を有しなければならないという趣旨ではない。例えば、メモリ1102上に配した基本統計ヒドラ200が階層構造を成さねばならないという趣旨ではない。
【0135】
以上に説明したように、統計ヒドラ300を用いて集計処理を行うと、図9などに示した1次集計処理以外の処理、例えば、2次集計処理などを行うことなく所望の集計結果を得ることが可能となる。
【0136】
その結果、効率的に集計処理が行われるので、処理時間を短縮することが可能となる。
また、1次集計処理以外の処理が必要ないので、例えば、2次集計処理に必要とされるメモリ容量など無駄なメモリ消費を抑えることが可能となる。同様の理由から、ワーク領域として使用するメモリや外部記憶装置の消費を抑えることが可能となる。
【0137】
同様に、1次集計処理以外の処理が必要ないので、2次集計処理などを行うためのバッチファイルやアプリケーションの作成が不要になるので、従来の集計処理を実施するのと比較して、コストを抑えることが可能となる。
【0138】
図6や図8に示したように、基本統計ヒドラ200や統計ヒドラ300を用いて集計することにより、例えば評価表1300などのように所望の分類範囲毎に集計・検索を行うことが可能となる。
【0139】
以上の実施例1〜nを含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
コンピュータに、
所望の範囲を特定する境界値情報であって前記所望の範囲に属する境界値情報を第1の分割位置で分割した第1の分割情報と前記境界値情報以外の前記所望の範囲の値を補完して得る補間値情報を前記第1の分割位置で分割した第1の補間値分割情報とを記憶する第1の記憶手段と、前記境界値情報を前記第1の分割位置と一定方向に隣接する第2の分割位置で分割した第2の分割情報と前記補間値情報を前記第2の分割位置で分割した第2の補間値分割情報とを記憶する第2の記憶手段と、前記境界値情報が属する範囲についての集計情報を記憶する集計情報記憶手段に関する情報を記憶する第3の記憶手段と、を備え、前記第1の記憶手段は、前記第1の分割情報と前記第2の記憶手段との関連付け情報と、前記第1の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有し、前記第2の記憶手段は、前記第2の分割情報と前記第3の記憶手段との関連付け情報と、前記第2の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有する集計用記憶手段における前記第1の記憶手段を参照し、集計対象である集計対象情報を前記第1の分割位置で分割した第1の集計分割情報と一致する前記第1の分割情報と関連付けられた前記第2の記憶手段、または前記第1の集計分割情報と一致する前記第1の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第1の特定処理と、
前記第2の記憶手段を参照し、前記集計対象情報を前記第2の分割位置で分割した第2の集計分割情報と一致する前記第2の分割情報と関連付けられた前記第3の記憶手段、または前記第2の集計分割情報と一致する前記第2の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第2の特定処理と、
前記第1または第2の特定処理により特定された第3の記憶手段が記憶する情報から集計情報記憶手段を特定し、該集計情報記憶手段に前記集計対象情報に関する集計情報を記憶する集計処理と、
を実行させるためのプログラム。
(付記2)
前記第1の分割情報および前記第1の補間値分割情報は、それぞれ前記境界値情報および前記補間値情報を第1の分割位置で分割した情報を16進コードに変換した値であり、
前記第2の分割情報および前記第2の補間値分割情報は、それぞれ前記境界値情報および前記補間値情報を第2の分割位置で分割した情報を16進コードに変換した値である、
ことを特徴とする請求項1に記載のプログラム。
(付記3)
前記第1の分割情報および前記第2の分割情報は、前記境界値情報を所定のサイズで分割した情報であり、
前記第1の補間値分割情報および前記第2の補間値分割情報は、前記補間値を所定のサイズで分割した情報である、
ことを特徴とする請求項1に記載のプログラム。
(付記4)
前記第1の記憶手段は、連続する第1の配列を複数備え、該第1の配列の配列番号が前記第1の分割情報または第1の補間値分割情報を表し、
前記第2の記憶手段は、連続する第2の配列を複数備え、該第2の配列の配列番号が前記第2の分割情報または第2の補間値分割情報を表す、
ことを特徴とする請求項1に記載のプログラム。
(付記5)
前記第1の記憶手段は、連続する第1の配列を複数備え、前記第1の分割情報または前記第1の補間値分割情報と一致する配列番号を持つ前記第1の配列に、前記第1の分割情報と前記第2の記憶手段との関連付け情報、または、前記第1の補間分割情報と前記第2の記憶手段との関連付け情報を記憶し、
前記第2の記憶手段は、連続する第2の配列を複数備え、前記第2の分割情報または前記第2の補間値分割情報と一致する配列番号を持つ前記第2の配列に、前記第2の分割情報と前記第3の記憶手段との関連付け情報、または、前記第2の補間値分割情報と前記第3の記憶手段との関連付け情報を記憶する、
ことを特徴とする請求項1に記載のプログラム。
(付記6)
所望の範囲を特定する境界値情報であって前記所望の範囲に属する境界値情報を第1の分割位置で分割した第1の分割情報と、前記境界値情報以外の前記所望の範囲の値を補完して得る補間値情報を前記第1の分割位置で分割した第1の補間値分割情報と、を記憶する第1の記憶手段と、前記境界値情報を前記第1の分割位置と一定方向に隣接する第2の分割位置で分割した第2の分割情報と、前記補間値情報を前記第2の分割位置で分割した第2の補間値分割情報と、を記憶する第2の記憶手段と、前記境界値情報が属する範囲に
ついての集計情報を記憶する集計情報記憶手段に関する情報を記憶する第3の記憶手段と、を備え、前記第1の記憶手段は、前記第1の分割情報と前記第2の記憶手段との関連付け情報と、前記第1の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有し、前記第2の記憶手段は、前記第2の分割情報と前記第3の記憶手段との関連付け情報と、前記第2の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有する集計用記憶手段における前記第1の記憶手段を参照し、集計対象である集計対象情報を前記第1の分割位置で分割した第1の集計分割情報と一致する前記第1の分割情報と関連付けられた前記第2の記憶手段、または前記第1の集計分割情報と一致する前記第1の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第1の特定手段と、
前記第2の記憶手段を参照し、前記集計対象情報を前記第2の分割位置で分割した第2の集計分割情報と一致する前記第2の分割情報と関連付けられた前記第3の記憶手段、または前記第2の集計分割情報と一致する前記第2の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第2の特定手段と、
前記第1または第2の特定処理により特定された第3の記憶手段が記憶する情報から集計情報記憶手段を特定し、該集計情報記憶手段に前記集計対象情報に関する集計情報を記憶する集計手段と、
を備える集計装置。
(付記7)
所望の範囲を特定する境界値情報であって前記所望の範囲に属する境界値情報を第1の分割位置で分割した第1の分割情報と、前記境界値情報以外の前記所望の範囲の値を補完して得る補間値情報を前記第1の分割位置で分割した第1の補間値分割情報と、を記憶する第1の記憶手段と、前記境界値情報を前記第1の分割位置と一定方向に隣接する第2の分割位置で分割した第2の分割情報と、前記補間値情報を前記第2の分割位置で分割した第2の補間値分割情報と、を記憶する第2の記憶手段と、前記境界値情報が属する範囲についての集計情報を記憶する集計情報記憶手段に関する情報を記憶する第3の記憶手段と、を備え、前記第1の記憶手段は、前記第1の分割情報と前記第2の記憶手段との関連付け情報と、前記第1の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有し、前記第2の記憶手段は、前記第2の分割情報と前記第3の記憶手段との関連付け情報と、前記第2の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有する集計用記憶手段における前記第1の記憶手段を参照し、集計対象である集計対象情報を前記第1の分割位置で分割した第1の集計分割情報と一致する前記第1の分割情報と関連付けられた前記第2の記憶手段、または前記第1の集計分割情報と一致する前記第1の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第1の特定処理と、
前記第2の記憶手段を参照し、前記集計対象情報を前記第2の分割位置で分割した第2の集計分割情報と一致する前記第2の分割情報と関連付けられた前記第3の記憶手段、または前記第2の集計分割情報と一致する前記第2の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第2の特定処理と、
前記第1または第2の特定処理により特定された第3の記憶手段が記憶する情報から集計情報記憶手段を特定し、該集計情報記憶手段に前記集計対象情報に関する集計情報を記憶する集計処理と、
を行う集計方法。
(付記8)
所望の範囲を特定する境界値情報であって前記所望の範囲に属する境界値情報を第1の分割位置で分割した第1の分割情報を記憶する第1の記憶手段と、
前記境界値情報を前記第1の分割位置と一定方向に隣接する第2の分割位置で分割した第2の分割情報を記憶する第2の記憶手段と、
前記境界値情報が属する範囲についての集計情報を記憶する集計情報記憶手段に関する情報を記憶する第3の記憶手段と、
を備え、
前記第1の記憶手段は、前記第1の分割情報と前記第2の記憶手段との関連付け情報
を有し、
前記第2の記憶手段は、前記第2の分割情報と前記第3の記憶手段との関連付け情報を有する、
ことを特徴とするコンピュータに読み取り可能な記憶媒体。
(付記9)
前記第1の記憶手段は、前記境界値情報以外の前記所望の範囲の値を補完した補間値情報を前記第1の分割位置で分割した第1の補間値分割情報を記憶し、該第1の補間値分割情報と前記第3の記憶手段との関連付け情報を有し、
前記第2の記憶手段は、前記補間値情報を前記第2の分割位置で分割した第2の補間値分割情報を記憶し、該第2の補間値分割情報と前記第3の記憶手段との関連付け情報を有する、
ことを特徴とする請求項6に記載の記憶媒体。
(付記10)
前記第1の記憶手段は、前記境界値情報以外の前記所望の範囲の値を補完した補間値情報を前記第1の分割位置で分割した第1の補間値分割情報を記憶し、該第1の補間値分割情報と前記第3の記憶手段との関連付け情報を有する、
ことを特徴とする請求項6に記載の記憶媒体。
(付記11)
前記第2の記憶手段は、前記補間値情報を前記第2の分割位置で分割した第2の補間値分割情報を記憶し、該第2の補間値分割情報と前記第3の記憶手段との関連付け情報を有する、
ことを特徴とする請求項6に記載の記憶媒体。
【図面の簡単な説明】
【0140】
【図1】本実施例に係る集計装置の処理の概要を示すフローチャートである。
【図2】ステップS101の処理で生成される基本統計ヒドラの概要を説明する図である。
【図3】ステップS102の処理で生成される統計ヒドラの概要を説明する図である。
【図4】節および葉の具体的な構成の例を示す図である。
【図5】基本統計ヒドラを生成する処理(ステップS101)の具体的な処理を示すフローチャートである。
【図6】基本統計ヒドラを具体的に説明する図である。
【図7】統計ヒドラを生成する処理(ステップS102)の具体的な処理を示すフローチャートである。
【図8】統計ヒドラを具体的に説明する図である。
【図9】統計ヒドラを用いた集計処理(ステップS103)を示すフローチャートである。
【図10】集計結果の出力処理(ステップS104)を示すフローチャートである。
【図11】集計装置100の構成例を示す図である。
【図12】試験結果データの例を示す図である。
【図13】評価表の例を示す図である。
【図14】従来の統計ヒドラを説明する図である。
【図15】2次集計を説明する図である。
【図16】集計結果の例を示す図である。
【符号の説明】
【0141】
100 集計装置
200 基本統計ヒドラ
201 境界値情報
610 先頭節
620〜623 中間節
630〜633 最終節
640〜643 葉
300 統計ヒドラ
810 先頭節
820〜823 中間節
830〜833 最終節
840〜843 葉
【技術分野】
【0001】
本発明は、データ集計などのデータ操作に使用するプログラム、装置および方法に関する。
【背景技術】
【0002】
基幹業務を行う基幹業務システムなどのシステムでは、生成・蓄積されるデータの規模が大きいため、データの集計、プロファイリング、クレンジング、名寄せなどの処理の効率化が求められる。
【0003】
上記技術に関連して、TRIE構造の統計ヒドラを用いて、複数のアプリケーションにより蓄積されたファイル(データ)から必要なデータを自動的に取得するための技術が知られている。
【0004】
なお、ここで述べる「統計ヒドラ」は、発明を実施するための最良の形態として後述する「統計ヒドラ」とは異なる従来技術を示すものである。
例えば、図12に示す試験結果データ1200を、図13に示す評価表1300にしたがって「優」、「良」、「可」、「不可」に分類し、その分布や平均を求める場合、以下の様な処理を行う必要がある。
【0005】
(1)試験結果データ1200から図14に示す統計ヒドラ1400を生成し、得点毎に1次集計を実施する。その結果、「得点」毎の集計結果1401を得る。
【0006】
(2)集計結果1401のデータを、例えば、以下の検索式を使用して、評価表1300の「得点範囲」毎に分類する。その結果、図15に示すように、評価表1300の「得点範囲」毎の集計結果1501、1502、1503、1504を得る。
「優」 の集計データ群検索式: 得点 ≧ 45 AND 得点 ≦ 50
「良」 の集計データ群検索式: 得点 ≧ 40 AND 得点 < 45
「可」 の集計データ群検索式: 得点 ≧ 30 AND 得点 < 40
「不可」の集計データ群検索式: 得点 ≧ 0 AND 得点 < 30
【0007】
(3)集計結果1503および1504は、複数の集計結果が得られたので、「得点範囲」毎の集計結果を得るために、2次集計を実施する。その結果、図16に示す所望の集計結果1600を得る。
【特許文献1】特開2006−171800号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかし、上述した集計処理では、所望の集計結果を得るために、1次集計に加えて2次集計も行わなければならないため、処理時間がかかるという問題があった。
本発明は、上述した問題に鑑みてなされたものであり、その解決しようとする課題は、効率的な集計処理を実現する集計プログラム、集計装置および集計方法を提供することである。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本集計プログラムは、コンピュータに、所望の範囲を特定する境界値情報であって前記所望の範囲に属する境界値情報を第1の分割位置で分割した第1の分割情報と前記境界値情報以外の前記所望の範囲の値を補完して得る補間値情報を前記第1の分割位置で分割した第1の補間値分割情報とを記憶する第1の記憶手段と、前
記境界値情報を前記第1の分割位置と一定方向に隣接する第2の分割位置で分割した第2の分割情報と前記補間値情報を前記第2の分割位置で分割した第2の補間値分割情報とを記憶する第2の記憶手段と、前記境界値情報が属する範囲についての集計情報を記憶する集計情報記憶手段に関する情報を記憶する第3の記憶手段と、を備え、前記第1の記憶手段は、前記第1の分割情報と前記第2の記憶手段との関連付け情報と、前記第1の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有し、前記第2の記憶手段は、前記第2の分割情報と前記第3の記憶手段との関連付け情報と、前記第2の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有する集計用記憶手段における前記第1の記憶手段を参照し、集計対象である集計対象情報を前記第1の分割位置で分割した第1の集計分割情報と一致する前記第1の分割情報と関連付けられた前記第2の記憶手段、または前記第1の集計分割情報と一致する前記第1の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第1の特定処理と、前記第2の記憶手段を参照し、前記集計対象情報を前記第2の分割位置で分割した第2の集計分割情報と一致する前記第2の分割情報と関連付けられた前記第3の記憶手段、または前記第2の集計分割情報と一致する前記第2の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第2の特定処理と、前記第1または第2の特定処理により特定された第3の記憶手段が記憶する情報から集計情報記憶手段を特定し、該集計情報記憶手段に前記集計対象情報に関する集計情報を記憶する集計処理と、を実行させる。
【0010】
本集計プログラムによると、集計対象である集計対象情報について、第1の集計分割情報と一致する第1の分割情報と関連付けられた第2の記憶手段、または第1の集計分割情報と一致する第1の補間値分割情報と関連付けられた第3の記憶手段を特定する。
【0011】
そして、第2の集計分割情報と一致する第2の分割情報と関連付けられた第3の記憶手段、または第2の集計分割情報と一致する第2の補間値分割情報と関連付けられた第3の記憶手段を特定する。
【0012】
さらに、特定した第3の記憶手段が記憶する情報から集計情報記憶手段を特定し、集計情報記憶手段に集計対象情報に関する集計情報を記憶する。
したがって、所望の集計結果を得るために、上述した一連の1次集計処理以外の処理、例えば、2次集計処理を行うことなる、所望の集計結果を得ることが可能となる。
【発明の効果】
【0013】
以上に説明したように、本集計プログラムによると、効率的な集計処理を実現する集計プログラム、集計装置および集計方法を提供することが可能となる。
【発明を実施するための最良の形態】
【0014】
以下、本実施形態について、図1〜図11に基づいて説明する。なお、以下の説明では、図12に示した試験結果データ1200を、図13に示す評価表1300にしたがって「優」、「良」、「可」、「不可」に分類し、その分布や平均を求める場合について説明する。
【0015】
図1は、集計装置100の処理の概要を示すフローチャートである。
ステップS101において、集計装置100は、評価表1300から得点範囲の境界値情報201を取得し、境界値情報201についての基本統計ヒドラ200を集計装置100に備わるメモリ1102上に生成する。
【0016】
本実施例では、基本統計ヒドラ200、後述する統計ヒドラ300を、メモリ1102上生成する場合について説明するが、仮想メモリ上に基本統計ヒドラ200および統計ヒドラ300を生成してもよい。
【0017】
以下、このステップで生成される統計ヒドラ200を、後述する統計ヒドラ300と区別するために、「基本統計ヒドラ200」という。
ステップS102において、集計装置100は、ステップS101で生成した基本統計ヒドラ200について、境界値情報201以外の部分を補間する。以下、補間処理が施された基本統計ヒドラ200を「統計ヒドラ300」という。
【0018】
ステップS103において、集計装置100は、ステップS102で生成した統計ヒドラ300にしたがって、試験結果データ1200の集計処理を行う。集計結果は、後述する集計情報記憶領域に記憶される。
【0019】
ステップS104において、集計装置100は、ステップS103で行った集計の結果をメモリ1102、外部記憶装置1105、可搬記憶媒体1107、ネットワークなどに出力する。
また、必要があれば、集計結果から得られる所望の情報、例えば、平均得点などを算出してメモリ1102等に出力する。
【0020】
図2は、ステップS101の処理で生成される基本統計ヒドラ200の概要を説明する図である。
図2に示す基本統計ヒドラ200は、境界値に関する節a〜jで構成される。そして、基本統計ヒドラ200は、階層構造を有する。
「境界値に関する節」は、境界値の一部の情報と、同じ境界値の他の部分の情報を有する節または同じ境界値に関する葉と関連付けるための情報と、を備える。「葉」は、関連付けられた一連の節によって構成される値に関する集計情報である。本実施例に係る葉は、例えば、人数や合計得点などが記憶される集計情報記憶領域のアドレス情報などで構成される。
【0021】
以下、基本統計ヒドラ200の起点となる節aを「先頭節」という。また、他の節と関連付けられた節を「中間節」といい、葉と関連付けられた節を「最終節」という。したがって、節aは先頭節である。節b、c、dおよびeは中間節である。また、節f、g、h、iおよびjは最終節である。そして、k、l、mおよびnは葉である。
【0022】
図2に示す中間節は、境界値情報201の境界値の十の位の値と、同じ境界値の一の位の値を有する節が記憶される記憶領域のアドレス情報と、を備える。また、図2に示す最終節は、境界値情報201の境界値の一の位の値と、関連付けられた一連の節によって構成される境界値に関する集計情報が記憶される集計情報記憶領域のアドレス情報を有する葉が記憶される記憶領域のアドレス情報と、を備える。
【0023】
例えば、境界値「30」に関し、中間節cは、境界値「30」の十の位の値「3」と、境界値「30」の一の位の値「0」を有する最終節gが記憶されている記憶領域のアドレス情報を備える。
【0024】
同様に、境界値「30」に関し、最終節gは、境界値「30」の一の位の値「0」と、関連付けられた一連の節(中間節cと最終節g)が有する値によって構成される境界値「30」に関する集計情報(人数、合計得点)を記憶する集計情報記憶領域のアドレス情報を有する葉が記憶される記憶領域のアドレス情報と、を備える。
【0025】
図2では、中間節からなる層と最終節からなる層との2層構造の場合を示したが、これに限定する趣旨ではない。境界値の分割する数に応じて階層の数が決まることは当然であ
る。
【0026】
図3は、ステップS102の処理で生成される統計ヒドラ300の概要を説明する図である。
図3に示す統計ヒドラ300は、境界値に関する節と、境界値間を補完して得た値に関する節と、で構成される。以下、境界値間を補完して得た値を「補間値」という。そして、基本統計ヒドラ200と同様に、統計ヒドラ300も、階層構造を有する。
【0027】
「補間値に関する節」は、境界値以外の値を補完して得た値の一部または全部の情報と、同じ補間値に関する葉と関連付けるための情報と、を備える。
以下、補間値に関する節を「補間節」という。図3に示す節a’、f’、f’’、g’、h’、i’、j’、j’’は補間節である。
【0028】
例えば、補間節f’、f’’は、境界値「00」と「30」の間の値を補完して得た値に関する補間節である。
補間節f’は、中間節bに続く最終節なので、「00」以上「10」未満の一の位の値「0」〜「9」と、関連付けられた一連の節(中間節bと補間節f’)が有する各値によって構成される値「00」〜「09」に関する集計情報(人数、合計得点)を記憶する集計情報記憶領域のアドレス情報を有する葉kが記憶される記憶領域のアドレス情報と、を備える。
【0029】
補間節f’’は、先頭節に続く中間節なので、「10」以上「30」未満の十の位の値「1」〜「2」を備える。同時に、補間節f’’は、最終節でもあるので、「10」以上「30」未満の値に関する集計情報(人数、合計得点)を記憶する集計情報記憶領域のアドレス情報を有する葉kが記憶される記憶領域のアドレス情報と、を備える。
【0030】
葉kが指し示す集計情報には、「00」以上「30」未満の集計情報が格納される。
図4は、節および葉の具体的な構成の例を示す図である。
本実施例で使用する節は、関連付けたい次の節が記憶されている記憶領域のアドレス情報を記憶する節用記憶領域と、関連付けたい葉が記憶されている記憶領域のアドレス情報を記憶する葉用記憶領域と、を備える。
【0031】
中間節の場合、節用記憶領域のみが使用される。節用記憶領域は、0xFF個の連続した配列(アドレス[0x00]〜アドレス[0xFF])で構成される。以下、この配列を「節用配列」という。そして、節用配列の配列番号と、後述するステップS505の処理によってコード化された分割境界値と、を対応させる。
【0032】
以下、後述するステップS505の処理によってコード化された分割境界値を「分割境界値コード」という。
集計装置100は、分割境界値コードの値と一致する配列番号の節用配列に、関連付けたい次の節または葉が記憶されている記憶領域のアドレスを記憶する。例えば、分割境界値コードが0x30の場合、集計装置100は、節用配列のアドレス[0x30]に、関連付けたい次の節または葉が記憶されている記憶領域のアドレスを記憶する。
【0033】
最終節の場合、葉用記憶領域のみが使用される。集計装置100は、葉用記憶領域に、葉が記憶されている記憶領域のアドレスを記憶する。
補間節の場合、必要に応じて、節用記憶領域と葉用記憶領域が使用される。したがって、補間節は、中間節と同じ構成の場合と、最終節と同じ構成の場合と、が存在することになる。
【0034】
本実施例で使用する葉は、集計情報を管理する管理領域と、集計情報が記憶されている集計情報記憶領域のアドレスを記憶する集計情報用記憶領域と、を備える。
集計情報用記憶領域は、必要に応じて、複数の連続した配列(情報[0x00]、情報[0x01]、・・・)で構成される。また、管理用域は、配列が指し示す領域の集計情報の種類などが記憶される。集計情報の種類とは、例えば、後述するCOUNT情報、SUM情報などである。
【0035】
図5は、基本統計ヒドラ200を生成する処理(ステップS101)の具体的な処理を示すフローチャートである。
ステップS501において、集計装置100は、メモリ1102等に記憶されている境界値情報201を参照する。そして、集計装置100は、未処理の境界値があるか否かを確認する。
【0036】
未処理の境界値がある場合、集計装置100は、処理をステップS502に移行する(ステップS501 YES)。また、未処理の境界値がない場合、集計装置100は、ステップS512に移行し(ステップS501 NO)、基本統計ヒドラ200の生成処理を終了する。
【0037】
ステップS502において、集計装置100は、境界値情報201から境界値を取得する。なお、取得した境界値は、文字列として扱われるデータとする。そして、集計装置100は、境界値を構成する文字列から、未処理の文字のうち最も位の大きい値を表す文字を1つ取り出す。以下、取り出した未処理の文字を「分割境界値」という。
【0038】
ステップS503において、未処理の分割境界値が存在する場合、集計装置100は、処理をステップS504に移行する(ステップS503 YES)。
ステップS504において、分割境界値が境界値の最初の値の場合、集計装置100は、先頭節を参照先の節に設定する。以下、参照先の節を「参照節」という。なお、分割境界値が境界値の最初の値でない場合、集計装置100は、何も行わない。
【0039】
ここで、最初の値とは、境界値を構成する文字列を1文字毎に分割して得る分割境界値のうち、境界値の最上位の値のことをいう。例えば、境界値が「123」の場合、最上位の値を表す文字「1」が最初の値となる。
【0040】
ステップS505において、集計装置100は、分割境界値を所定の規則にしたがってコード化して分割境界値コードを生成する。本実施例では、分割境界値をASCII(American Standard Code for Information Interchange)コード表にしたがって1バイトの16進コードに変換する。
【0041】
例えば、集計装置100は、分割境界値「0」を分割境界値コード「0x30」に変換する。
ステップS506において、集計装置100は、参照節において、分割境界値コードと一致する配列番号の節用配列に、節が記憶されている記憶領域のアドレスが既に設定されているか否かを判断する。
【0042】
分割境界値コードと一致する配列番号の節用配列に、節が記憶されている記憶領域のアドレスが既に設定されている場合、集計装置100は、処理をステップS509に移行する(ステップS506 YES)。
【0043】
分割境界値コードと一致する配列番号の節用配列に、節が記憶されている記憶領域のアドレスが設定されていない場合、集計装置100は、処理をステップS507に移行する
(ステップS506 NO)。
【0044】
ステップS507において、集計装置100は、新たな節をメモリ1102上に生成する。
ステップS508において、集計装置100は、分割境界値コードと一致する配列番号の節用配列に、ステップS507で生成した新たな節が記憶されている記憶領域のアドレスを設定する。
【0045】
ステップS509において、集計装置100は、ステップS507で生成した新たな節を参照節に設定する。設定が完了すると、集計装置100は、処理をステップS502に移行する。そして、集計装置100は、ステップS502〜S59の処理を行う。
【0046】
一方、ステップS503において、未処理の分割境界値が存在しない場合、集計装置100は処理をステップS510に移行する(ステップS503 NO)。
ステップS510において、集計装置100は、葉をメモリ1102上に生成する。
【0047】
ステップS511において、集計装置100は、参照節の葉用記憶領域に、ステップS510で生成した新たな葉が記憶されている記憶領域のアドレスを設定する。
ステップS512において、集計装置100は、集計する内容に応じて、COUNT情報やSUM情報などを記憶する1または2以上の集計用領域を集計情報記憶領域に生成する。本実施例では、集計した人数を記憶するCOUNT用領域と合計得点を記憶するSUM用領域を集計情報記憶領域に生成する。
【0048】
また、集計装置100は、生成した集計用領域が記憶されている集計情報記憶領域のアドレスを、ステップS510で生成した新たな葉に設定する。そして、集計装置100は、処理をステップS501に移行する。
【0049】
なお、本実施例では、ステップS505において、分割境界値をASCIIコードに変換したが、ASCIIコードに変換する場合に限定する趣旨ではない。例えば、Shift_JIS(Japanese Industrial Standards)コードやEUC(Extended Unix Code)など必要に応じて他の文字コードに変換してもよい。また、分割境界値コードは、1バイトで表される文字コードである必要もない。
【0050】
図6は、基本統計ヒドラ200を具体的に説明する図である。なお、図6に示す基本統計ヒドラ200は、図5に示したフローチャートにしたがって生成した評価表1300についての基本統計ヒドラを示している。
【0051】
境界値情報201は、16進のASCIIコード表にしたがって変換される。図6に示すように、境界値「00」、「30」、「40」、「45」、「50」は、「0x3030」、「0x3330」、「0x3430」、「0x3435」、「0x3530」となる。
【0052】
図6に示す基本統計ヒドラ200は、先頭節610と、中間節620〜623と、最終節630〜633と、を備える。
先頭節610、中間節620〜623および最終節630〜633は、それぞれ配列番号0x00〜0xFFの連続した配列で構成される節用記憶領域と、葉用記憶領域と、を備える。
【0053】
先頭節610は、境界値の十の位の値の分割境界値コードに関する節である。先頭節6
10の配列番号は、境界値の十の位の分割境界値コードと対応する。そして、節用記憶領域の各配列には、配列番号と一致する分割境界値コードが表す境界値の十の位の値に続く一の位の値の分割境界値コードに関する節が記憶されている記憶領域の先頭アドレスが記憶される。
【0054】
これにより、先頭節610の配列番号と中間節620〜623とが関連付けられる。
中間節620〜623は、境界値の一の位の値の分割境界値コードに関する節である。中間節620〜623の配列番号は、境界値の一の位の分割境界値コードと対応する。そして、節用記憶領域の各配列には、最終節630〜633を記憶する記憶領域のアドレスが記憶される。
【0055】
これにより、中間節620〜523の配列番号と最終節630〜633とが関連付けられる。
最終節630〜633の葉用記憶領域には、自身に関連付けられた境界値が属する範囲の集計情報、すなわち、最終節と関連付ける中間節の配列の配列番号とその中間節と関連付ける先頭節の配列の配列番号とで構成されるコードで表される境界値が属する範囲の集計情報を記憶する葉が記憶されている記憶領域のアドレスが記憶される。
【0056】
例えば、最終節631に関し、最終節631と関連付ける中間節621の配列の配列番号0x30と、その中間節621と関連付ける先頭節610の配列の配列番号0x33とで構成されるコード0x3330で表される境界値30が属する範囲30以上40未満の集計情報を記憶する葉641が記憶されている記憶領域のアドレスが記憶される。
【0057】
葉640〜643の集計情報用記憶領域には、集計情報650〜653を記憶する集計情報記憶領域のアドレスが記憶される。集計情報650〜653は、人数の集計情報であるCOUNT情報と、合計得点の集計情報であるSUM情報と、で構成されている。
【0058】
なお、必要に応じて、COUNT情報、SUM情報、得点の平均値に関する情報であるAVG情報、得点の最大値に関する情報であるMAX情報、得点の最小値に関する情報であるMIN情報などの1または2以上の情報で構成すればよい。
【0059】
例えば、先頭節610の配列番号0x33は、境界値30の十の位の値の分割境界値コード0x33と対応している。そして、配列番号0x33の配列には、配列番号0x33と一致する分割境界値コードが表す境界値の十の位の値3に続く一の位の値0の分割境界値コードに関する中間節621が記憶されている記憶領域の先頭アドレスが記憶されている。
【0060】
中間節621の配列番号0x30は、境界値30の一の位の値の分割境界値コード0x30と対応している。そして、配列番号0x30の配列には、最終節631を記憶する記憶領域の先頭アドレスが記憶されている。
【0061】
最終節631の葉用記憶領域には、最終節と関連づけられた中間節の配列番号0x30と、その中間節と関連付けられた先頭節の配列番号0x33と、で構成されるコード0x3330で表される境界値30についての集計情報を記憶する葉631が記憶されている記憶領域の先頭アドレスが記憶されている。
葉640〜643と集計情報記憶領域については、図4で説明したので具体的な説明は省略する。
【0062】
図7は、統計ヒドラ300を生成する処理(ステップS102)の具体的な処理を示すフローチャートである。
ステップS701において、集計装置100は、節を記憶する記憶領域のアドレスを一時的に記憶する変数を、例えば値0で初期化する。以下、節を記憶する記憶領域のアドレスを一時的に記憶する変数を「節ポインタ」という。
【0063】
なお、節ポインタに値0が設定されている場合、集計装置100は、節ポインタが設定されていないと判断する。
ステップS702において、集計装置100は、対象外データが集計対象か否かを判断する。「対象外データ」とは、集計対象となる範囲以外のデータのことをいう。例えば、範囲評価表1300の範囲外の得点が対象外データである。
【0064】
なお、対象外データを集計対象とするか否かは、集計装置100の利用者によってあらかじめ設定される。その設定は、集計装置100が備える外部記憶装置1105の所定の記憶領域に保持される。したがって、集計装置100は、その記憶領域を参照して対象外データが集計対象か否かを判断する。
【0065】
対象外データが集計対象であると判断した場合、集計装置100は、処理をステップS703に移行する(ステップS702 YES)。また、対象外データが集計対象でないと判断した場合、集計装置100は、処理をステップS705に移行する(ステップS702 NO)。
【0066】
ステップS703において、集計装置100は、対象外データに関する補間節と、その補間節の葉と、をメモリ1102上に生成する。
そして、集計装置100は、先頭節810の配列番号のうち集計範囲外の配列番号の配列に、本ステップで生成した補間節を記憶する記憶領域の先頭アドレスを記憶する。さらに、集計装置100は、補間節の葉用記憶領域に、本ステップで生成した葉を記憶する記憶領域の先頭アドレスを記憶する。そして、集計装置100は、節ポインタに、補間節を設定する。
【0067】
ステップS704において、集計装置100は、ステップS703で生成した対象外データに関する補間節を、ポインタ節に設定する。そして、集計装置100は、処理をステップS705に移行する。
【0068】
ステップS705において、集計装置100は、参照節を先頭節に設定する。そして、先頭節の0番目の配列を参照する。以下、集計装置100が参照している配列を「参照配列」という。
【0069】
ステップS706において、集計装置100は、ステップS705で参照した参照配列に、次の節が記憶されている記憶領域のアドレスが設定済みか否かを判断する。
アドレスが設定済みでないと判断した場合、集計装置100は、処理をステップS706に移行する(ステップS706 NO)。
【0070】
ステップS707において、集計装置100は、節ポインタに設定されているアドレスを、参照配列に設定する。なお、節ポインタに節が記憶されているアドレスが設定されていない場合、集計装置100は、本ステップの処理を行わない。
【0071】
ステップS708において、集計装置100は、次の配列を参照する。すなわち、集計装置100は、参照配列の配列番号を1だけインクリメントし、その1だけインクリメントした配列番号の配列を参照する。以下、この参照する配列を新たな「参照配列」とする。
【0072】
ステップS709において、集計装置100は、参照配列の配列番号と値「0xFF」とを比較する。そして、参照配列の配列番号が0xFF以下である場合、集計装置100は、処理をステップS706に移行する(ステップS709 NO)。
【0073】
また、ステップS709において、参照配列の配列番号が0xFFより大きい場合、集計装置100は、処理をステップS710に移行する(ステップS709 YES)。
ステップS710において、集計装置100は、参照節を1個前の節に戻す。なお、1個前の節とは、現在の参照節の1つ前に参照節であった節である。
【0074】
ステップS711において、集計装置100は、参照節が先頭節であるか否かを判断する。参照節が先頭節である場合、集計装置100は、ステップS717に移行し(ステップS711 YES)、統計ヒドラ300の生成処理を終了する。
【0075】
また、ステップS711において、参照節が先頭節でない場合、集計装置100は、ステップS706に移行する(ステップS711 NO)。
一方、ステップS706において、アドレスが設定済みと判断した場合、集計装置100は、ステップS712に処理を移行する(ステップS706 YES)。
【0076】
ステップS712において、集計装置100は、参照節を次の節に移動する。なお、次の節とは、参照配列に記憶されているアドレスの節のことである。
ステップS713において、集計装置100は、参照節が最終節か否かを判断する。参照節が最終節でない場合、集計装置100は、処理をステップS706に移行する(ステップS713 NO)。参照節が最終節である場合、集計装置100は、処理をステップS714に移行する(ステップS713 YES)。
【0077】
ステップS714において、集計装置100は、参照節が最後の境界値についての節か否かを判断する。
参照節が最後の境界値についての節か否かは、参照節と関連付けられた節で構成される境界値が最後の境界値であるか否かにより判断する。また、最後の境界値とは、境界値のうち最大値のものをいう。
【0078】
例えば、最終節633と関連付けられた先頭節810と中間節623とで構成される境界値は、先頭節810の配列番号と中間節623の配列番号とで構成される値「0x3530」をデコードした値、すなわち、50となる。
【0079】
境界値情報201を参照すると、境界値50は境界値情報201に含まれる境界値のうち最大のものなので、集計装置100は、最後の境界値と判断する。
ステップS714において、参照節が最後の境界値についての節であると判断した場合、集計装置100は、処理をステップS715に移行する(ステップS714 YES)。
【0080】
ステップS715において、集計装置100は、ステップS703で生成した対象外データに関する補間節を、ポインタ節に設定する。ただし、ステップS702において、対象外データが集計対象でない判断した場合は、本ステップの処理を行わない。
【0081】
一方、ステップS714において、参照節が最後の境界値についての節でないと判断した場合、集計装置100は、処理をステップS716に移行する(ステップS714 NO)。
【0082】
ステップS716において、集計装置100は、節ポインタに参照節を設定する。すなわち、集計装置100は、節ポインタに参照節が記憶されている記憶領域のアドレスを設定する。
ステップS715またはS716の処理が完了すると、集計装置100は、処理をステップS710に移行する。
【0083】
図8は、統計ヒドラ300を具体的に説明する図である。なお、図8に示す統計ヒドラ300は、図6に示した基本統計ヒドラ200について、図7に示したフローチャートにしたがって補間を行うことにより生成した統計ヒドラ300を示している。
【0084】
図8に示す統計ヒドラ300は、先頭節810と、中間節820〜823と、最終節830〜833と、を備える。
先頭節810、中間節820〜823および最終節830〜833は、それぞれ配列番号0x00〜0xFFの連続した配列で構成される節用記憶領域と、葉用記憶領域と、を備える。
【0085】
先頭節810は、境界値の十の位の値の分割境界値コードと、境界値間を補間して得た補間値の十の位の値の分割境界値コードと、に関する節である。
先頭節810の配列番号は、境界値または補間値の十の位の分割境界値コードと対応する。
【0086】
節用記憶領域の各配列には、配列番号と一致する分割境界値コードが表す境界値の十の位の値に続く一の位の値の分割境界値コードに関する中間節、または、補間値が属する境界値に関する最終節、が記憶されている記憶領域の先頭アドレスが記憶される。
【0087】
ここで、「補間値が属する境界値」とは、補間値が属する範囲を特定する2つ境界値のうち、その範囲に属する方の境界値のことをいう。補間値が属する範囲を特定する2つ境界値が何れもその範囲に属する場合には、いずれの境界値を「補間値が属する境界値」とするかあらかじめ決めておけばよい。
【0088】
例えば、境界値00から30の間を補完して得る補間値10は、境界値00以上かつ境界値30未満の範囲に属する。この範囲に属する境界値は00である。したがって、この場合の補間値が属する境界値は00となり、補間値10が属する境界値に関する最終節は、最終節830となる。
【0089】
同様に、補間値11〜19および20〜29が属する境界値に関する最終節は、最終節830となる。
したがって、先頭節810の配列番号0x31の配列には、補間値10〜19に属する境界値に関する最終節830が記憶されている記憶領域の先頭アドレスが記憶される。同様に、先頭節810の配列番号0x32の配列には、補間値20〜29に属する境界値に関する最終節830が記憶されている記憶領域の先頭アドレスが記憶される。
【0090】
これにより、先頭節810の配列番号と、中間節820〜823または最終節830〜833と、が関連付けられる。
中間節820〜823は、境界値の一の位の値の分割境界値コードと、境界値間を補完して得た補間値の一の位の値の分割境界値コードと、に関する補間節である。
【0091】
中間節820〜823の配列番号は、境界値または補間値の一の位の分割境界値コードと対応する。
節用記憶領域の各配列には、配列番号と一致する分割境界値コードが表す境界値の一の
位の値とその配列の属する中間節に関連付けられた先頭節810の配列番号が表す境界値の十の位の値とで構成される境界値が属する範囲の集計情報に関する最終節が記憶される記憶領域の先頭アドレスが記憶される。
【0092】
例えば、中間節821の配列番号0x31と一致する分割境界値コードが表す一の位の値1と、その配列の属する中間節821に関連付けられた先頭節810の配列番号0x33が表す境界値の十の位の値3と、で構成される境界値は、31となる。
【0093】
そして、中間節821の配列番号0x31の配列には、境界値31が属する範囲の集計情報に関する最終節831が記憶されている記憶領域の先頭アドレスが記憶される。
最終節830〜833については、図6に示した最終節630〜633と同様なので説明を省略する。
【0094】
図9は、統計ヒドラ300を用いた集計処理(ステップS103)を示すフローチャートである。
利用者が、集計装置100に備わる入力装置1103を用いて、試験結果データ1200を指定し、かつ集計処理の開始を指示すると、集計装置100は、集計処理を開始する(ステップS900)。なお、参照節は、先頭節に初期化されているものとする。
【0095】
ステップS901において、集計装置100は、試験結果データ1200から1レコードを取得する。なお、本実施例では、試験結果データ1200に登録されている「名前」と「得点」の組み合わせから成る1つのデータを「レコード」という。
【0096】
ステップS902において、集計装置100は、試験結果データ1200に登録されている全てのレコードについて、集計処理を実施したか否かを判断する。
試験結果データ1200に登録されている全てのレコードについて、集計処理を実施したと判断した場合、集計装置100は、ステップS917に移行して集計処理を終了する(ステップS902 YES)。図16に示した集計結果1600が得られる。
【0097】
試験結果データ1200に登録されているレコードに、集計処理を実施していないレコードがあると判断した場合、集計装置100は、処理をステップS903に移行する(ステップS902 NO)。
【0098】
ステップS903において、集計装置100は、ステップS901で取得したレコードの得点を、ASCIIコード表にしたがって16進のコードに変換する。以下、このコードを「得点コード」という。
【0099】
ステップS904において、集計装置100は、得点コードから1バイト分のコードを取得する。なお、ステップS904では、上位から下位の順に1バイト分のコードを取得する。したがって、次回本ステップを実行する場合は、今回本ステップで取得したコードの次に上位の1バイト分のコードを取得する。以下、このコードを「得点分割コード」という。
【0100】
ステップS905において、集計装置100は、得点分割コードが、得点コードから取得される最後の得点分割コード、すなわち最下位バイトの得点分割コードであるか否かを判断する。
【0101】
得点分割コードが得点コードから取得される最後の得点分割コードであると判断した場合、集計装置100は、処理をステップS908に移行する(ステップS905 YES)。
【0102】
得点分割コードが得点コードから取得される最後の得点分割コードでないと判断した場合、集計装置100は、処理をステップS906に移行する(ステップS905 NO)。
【0103】
ステップS906において、集計装置100は、参照節として設定されている統計ヒドラ300の節を参照し、得点分割コードと一致する配列を特定する。なお、得点分割コードが得点コードの最上位バイトのコードである場合、集計装置100は、統計ヒドラ300の先頭節を参照する。
【0104】
ステップS907において、集計装置100は、ステップS906で特定した配列にNULLが設定されているか否かを判断する。
ステップS906で特定した配列にNULLが設定されている場合、集計装置100は、処理をステップS901に移行する。そして、集計装置100は、次のレコードを試験結果データ1200から取得する(ステップS907 YES)。
【0105】
ステップS906で特定した配列にNULLが設定されていない場合、集計装置100は、ステップS906で特定した配列に設定されているアドレスの節を参照節に設定し、処理をステップS904する。そして、集計装置100は、分割境界値コードの次に下位の1バイト分のコードを取得し、この取得したコードを新たな得点分割コードとする(ステップS907 NO)。
【0106】
一方、ステップS908において、集計装置100は、参照節の葉用記憶領域から、葉のアドレスを取得する。そして、集計装置100は、葉を参照する。
ステップS909において、集計装置100は、葉の集計情報用記憶領域に記憶されているアドレスに記憶されている集計情報がCOUNT情報であるか否かを判断する。なお、本実施例では、葉の管理領域に集計情報の種類を特定する情報が設定されているものとする。したがって、集計装置100は、葉の管理領域に設定されている情報から集計情報の種類を判別する。ステップS911、S913およびS915についても同様である。
【0107】
集計情報がCOUNT情報であると判断した場合、集計装置100は、処理をステップS910に移行する(ステップS909 YES)。そして、集計装置100は、集計値を1だけカウントアップする。
【0108】
また、集計情報がCOUNT情報でないと判断した場合、集計装置100は、処理をステップS911に移行する(ステップS909 NO)。
ステップS911において、集計装置100は、葉の集計情報用記憶領域に記憶されているアドレスに記憶されている集計情報がSUM情報であるか否かを判断する。
【0109】
集計情報がSUM情報であると判断した場合、集計装置100は、処理をステップS912に移行する(ステップS911 YES)。そして、集計装置100は、ステップS901で取得したレコードの得点を、SUM情報に加算する。
【0110】
また、集計情報がSUM情報でないと判断した場合、集計装置100は、処理をステップS913に移行する(ステップS911 NO)。
ステップS913において、集計装置100は、葉の集計情報用記憶領域に記憶されているアドレスに記憶されている集計情報がMAX情報であるか否かを判断する。
【0111】
集計情報がMAX情報であると判断した場合、集計装置100は、処理をステップS914に移行する(ステップS913 YES)。そして、集計装置100は、ステップS901で取得した得点と、MAX情報とを比較する。そして、ステップS901で取得した得点がMAX情報より大きい場合、ステップS901で取得した得点を新たにMAX情報として記憶する。
【0112】
また、集計情報がMAX情報でないと判断した場合、集計装置100は、処理をステップS915に移行する(ステップS913 NO)。
ステップS915において、集計装置100は、葉の集計情報用記憶領域に記憶されているアドレスに記憶されている集計情報がMIN情報であるか否かを判断する。
【0113】
集計情報がMIN情報であると判断した場合、集計装置100は、処理をステップS916に移行する(ステップS915 YES)。そして、集計装置100は、ステップS901で取得した得点と、MIN情報とを比較する。そして、ステップS901で取得した得点がMIN情報より小さい場合、ステップS901で取得した得点を新たにMIN情報として記憶する。
また、集計情報がMIN情報でないと判断した場合、集計装置100は、処理をステップS901に移行する(ステップS915 NO)。
【0114】
図10は、集計結果の出力処理(ステップS104)を示すフローチャートである。
図9に示した集計処理が完了すると、集計装置100は、集計結果の出力処理を開始する(ステップS1000)。
ステップS1001において、集計装置100は、境界値情報201から境界値を1つ取得する。なお、ステップS1001では、小さい順に境界値情報201から境界値を取得する。したがって、次回本ステップを実行する場合は、今回本ステップで取得した境界値の次に小さい境界値を取得する。
【0115】
ステップS1002において、集計装置100は、ステップS1001で取得した境界値が最後の境界値か否かを判断する。なお、最後の境界値とは、ステップS1001で取得するべき境界値のうち最後に取得するもの、すなわち、境界値情報201の中で最も大きい境界値である。
【0116】
最後の境界値であると判断した場合、集計装置100は、ステップS1011に移行して集計結果出力処理を終了する(ステップS1002 YES)。
最後の境界値でないと判断した場合、集計装置100は、処理をステップS1003に移行する(ステップS1002 NO)。
【0117】
ステップS1003において、集計装置100は、ステップS1001で取得した境界値を、ASCIIコード表にしたがって16進のコードに変換する。以下、このコードを「境界値コード」という。
【0118】
ステップS1004において、集計装置100は、境界値コードから1バイト分のコード、すなわち、分割境界値コードを取得する。なお、ステップS1004では、上位から下位の順に1バイト分のコードを取得する。したがって、次回本ステップを実行する場合は、今回本ステップで取得したコードの次に上位の1バイト分のコードを取得する。
【0119】
ステップS1005において、集計装置100は、参照節として設定されている統計ヒドラ300の節を参照し、分割境界値コードと一致する配列を特定する。そして、特定した配列に設定されているアドレスの節を参照節に設定する。
【0120】
なお、分割境界値コードが境界値コードの最上位バイトのコードである場合、集計装置
100は、統計ヒドラ300の先頭節を参照する。
ステップS1006において、集計装置100は、分割境界値コードが境界値コードの最後のコード、すなわち、最下位バイトのコードであるか否かを判断する。
【0121】
分割境界値コードが最後のコードでないと判断した場合、集計装置100は、処理をステップS1004に移行する(ステップS1006 NO)。そして、ステップS1004〜S1006の処理が行われる。
【0122】
分割境界値コードが最後のコードであると判断した場合、集計装置100は、処理をステップS1007に移行する(ステップS1006 YES)。
ステップS1007において、集計装置100は、参照節の葉用記憶領域に設定されているアドレスの葉を参照する。そして、葉の集計情報用記憶領域から集計情報が記憶されている1または2以上の領域のアドレスを取得する。
【0123】
ステップS1008において、集計装置100は、ステップS1007で取得したアドレスの領域から、例えば、COUNT情報、SUM情報、MAX情報、MIN情報を取得する。
【0124】
ステップS1009において、集計装置100は、ステップS1008で取得したSUM情報とCOUNT情報とから平均得点(AVG情報=SUM情報/COUNT情報)を算出する。
【0125】
ステップS1010において、集計装置100は、ステップS1008、S1009で取得・算出した情報を表示装置、データファイル、記憶装置などに出力する。そして、集計装置100は、処理をステップS1001に移行する。
【0126】
なお、ステップS1001では、大きい境界値から順に取得しているが、これに限定するものではない。例えば、小さい境界値から順に取得してもよい。この場合、ステップS1002で判断する最後の境界値は、最も大きい境界値となる。
【0127】
図11は、集計装置100の構成例を示す図である。
図11に示す集計装置100は、周辺機器や各種ソフトウェアを実行する他に集計処理を実現するプログラムを実行するCPU1101と、プログラムを実行するために使用される揮発性のメモリ1102(例えば、RAM)と、外部からのデータ入力手段である入力装置1103(例えば、キーボードやマウス)と、データ等を表示する出力装置1104と、集計装置100が動作するために必要なプログラムやデータの他に集計処理を実現するプログラムを記録する外部記録装置1105と、メモリ1102や外部記録装置1105のデータを可搬記録媒体1107(例えば、フロッピイディスク、MOディスク、CD−R、DVD−Rなど)に出力し、あるいは可搬記録媒体1107からプログラムやデータ等を読み出す媒体駆動装置1106と、を有し、これらの装置がバス1100に接続されて相互にデータの受け渡しが行える構成となっている。
【0128】
また、集計装置100は、ネットワークに接続するネットワーク接続装置1108を備え、ネットワークを介して他の情報処理装置や外部記憶装置に集計結果を出力するようにしてもよい。
【0129】
以上の説明において、実装を簡単にするために、基本統計ヒドラ200および統計ヒドラ300において、節用記憶領域を、配列番号0x00〜0xFFの連続した配列で構成しているが、これに限定する趣旨ではない。
【0130】
例えば、配列番号0x00〜0x40の連続した配列で節用記憶領域を構成してもよいし、配列番号0x00〜0x09の連続した配列で節用記憶領域を構成して配列番号と分割境界値と対応させてもよい。
【0131】
また、基本統計ヒドラ200の構成に、葉640〜643および集計情報650〜651を含めてもよい。同様に、統計ヒドラ300の構成に、葉840〜843および集計情報650〜651を含めてもよい。
【0132】
また、先頭節610および中間節620〜623は、葉用記憶領域は使用しない。したがって、先頭節610および中間節620〜623として使用する節の場合、葉用記憶領域を確保しなくてもよい。先頭節810および中間節820〜823についても同様である。
【0133】
また、最終節630〜633は、節用記憶領域を使用しない。したがって、最終節630〜633として使用する節の場合、節用記憶領域を確保しなくてもよい。最終節830〜833についても同様である。
【0134】
また、基本統計ヒドラ200および統計ヒドラ300が階層構造を有するとは、概念的な意味において階層構造を有するということであって、物理的に階層構造を有しなければならないという趣旨ではない。例えば、メモリ1102上に配した基本統計ヒドラ200が階層構造を成さねばならないという趣旨ではない。
【0135】
以上に説明したように、統計ヒドラ300を用いて集計処理を行うと、図9などに示した1次集計処理以外の処理、例えば、2次集計処理などを行うことなく所望の集計結果を得ることが可能となる。
【0136】
その結果、効率的に集計処理が行われるので、処理時間を短縮することが可能となる。
また、1次集計処理以外の処理が必要ないので、例えば、2次集計処理に必要とされるメモリ容量など無駄なメモリ消費を抑えることが可能となる。同様の理由から、ワーク領域として使用するメモリや外部記憶装置の消費を抑えることが可能となる。
【0137】
同様に、1次集計処理以外の処理が必要ないので、2次集計処理などを行うためのバッチファイルやアプリケーションの作成が不要になるので、従来の集計処理を実施するのと比較して、コストを抑えることが可能となる。
【0138】
図6や図8に示したように、基本統計ヒドラ200や統計ヒドラ300を用いて集計することにより、例えば評価表1300などのように所望の分類範囲毎に集計・検索を行うことが可能となる。
【0139】
以上の実施例1〜nを含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
コンピュータに、
所望の範囲を特定する境界値情報であって前記所望の範囲に属する境界値情報を第1の分割位置で分割した第1の分割情報と前記境界値情報以外の前記所望の範囲の値を補完して得る補間値情報を前記第1の分割位置で分割した第1の補間値分割情報とを記憶する第1の記憶手段と、前記境界値情報を前記第1の分割位置と一定方向に隣接する第2の分割位置で分割した第2の分割情報と前記補間値情報を前記第2の分割位置で分割した第2の補間値分割情報とを記憶する第2の記憶手段と、前記境界値情報が属する範囲についての集計情報を記憶する集計情報記憶手段に関する情報を記憶する第3の記憶手段と、を備え、前記第1の記憶手段は、前記第1の分割情報と前記第2の記憶手段との関連付け情報と、前記第1の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有し、前記第2の記憶手段は、前記第2の分割情報と前記第3の記憶手段との関連付け情報と、前記第2の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有する集計用記憶手段における前記第1の記憶手段を参照し、集計対象である集計対象情報を前記第1の分割位置で分割した第1の集計分割情報と一致する前記第1の分割情報と関連付けられた前記第2の記憶手段、または前記第1の集計分割情報と一致する前記第1の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第1の特定処理と、
前記第2の記憶手段を参照し、前記集計対象情報を前記第2の分割位置で分割した第2の集計分割情報と一致する前記第2の分割情報と関連付けられた前記第3の記憶手段、または前記第2の集計分割情報と一致する前記第2の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第2の特定処理と、
前記第1または第2の特定処理により特定された第3の記憶手段が記憶する情報から集計情報記憶手段を特定し、該集計情報記憶手段に前記集計対象情報に関する集計情報を記憶する集計処理と、
を実行させるためのプログラム。
(付記2)
前記第1の分割情報および前記第1の補間値分割情報は、それぞれ前記境界値情報および前記補間値情報を第1の分割位置で分割した情報を16進コードに変換した値であり、
前記第2の分割情報および前記第2の補間値分割情報は、それぞれ前記境界値情報および前記補間値情報を第2の分割位置で分割した情報を16進コードに変換した値である、
ことを特徴とする請求項1に記載のプログラム。
(付記3)
前記第1の分割情報および前記第2の分割情報は、前記境界値情報を所定のサイズで分割した情報であり、
前記第1の補間値分割情報および前記第2の補間値分割情報は、前記補間値を所定のサイズで分割した情報である、
ことを特徴とする請求項1に記載のプログラム。
(付記4)
前記第1の記憶手段は、連続する第1の配列を複数備え、該第1の配列の配列番号が前記第1の分割情報または第1の補間値分割情報を表し、
前記第2の記憶手段は、連続する第2の配列を複数備え、該第2の配列の配列番号が前記第2の分割情報または第2の補間値分割情報を表す、
ことを特徴とする請求項1に記載のプログラム。
(付記5)
前記第1の記憶手段は、連続する第1の配列を複数備え、前記第1の分割情報または前記第1の補間値分割情報と一致する配列番号を持つ前記第1の配列に、前記第1の分割情報と前記第2の記憶手段との関連付け情報、または、前記第1の補間分割情報と前記第2の記憶手段との関連付け情報を記憶し、
前記第2の記憶手段は、連続する第2の配列を複数備え、前記第2の分割情報または前記第2の補間値分割情報と一致する配列番号を持つ前記第2の配列に、前記第2の分割情報と前記第3の記憶手段との関連付け情報、または、前記第2の補間値分割情報と前記第3の記憶手段との関連付け情報を記憶する、
ことを特徴とする請求項1に記載のプログラム。
(付記6)
所望の範囲を特定する境界値情報であって前記所望の範囲に属する境界値情報を第1の分割位置で分割した第1の分割情報と、前記境界値情報以外の前記所望の範囲の値を補完して得る補間値情報を前記第1の分割位置で分割した第1の補間値分割情報と、を記憶する第1の記憶手段と、前記境界値情報を前記第1の分割位置と一定方向に隣接する第2の分割位置で分割した第2の分割情報と、前記補間値情報を前記第2の分割位置で分割した第2の補間値分割情報と、を記憶する第2の記憶手段と、前記境界値情報が属する範囲に
ついての集計情報を記憶する集計情報記憶手段に関する情報を記憶する第3の記憶手段と、を備え、前記第1の記憶手段は、前記第1の分割情報と前記第2の記憶手段との関連付け情報と、前記第1の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有し、前記第2の記憶手段は、前記第2の分割情報と前記第3の記憶手段との関連付け情報と、前記第2の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有する集計用記憶手段における前記第1の記憶手段を参照し、集計対象である集計対象情報を前記第1の分割位置で分割した第1の集計分割情報と一致する前記第1の分割情報と関連付けられた前記第2の記憶手段、または前記第1の集計分割情報と一致する前記第1の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第1の特定手段と、
前記第2の記憶手段を参照し、前記集計対象情報を前記第2の分割位置で分割した第2の集計分割情報と一致する前記第2の分割情報と関連付けられた前記第3の記憶手段、または前記第2の集計分割情報と一致する前記第2の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第2の特定手段と、
前記第1または第2の特定処理により特定された第3の記憶手段が記憶する情報から集計情報記憶手段を特定し、該集計情報記憶手段に前記集計対象情報に関する集計情報を記憶する集計手段と、
を備える集計装置。
(付記7)
所望の範囲を特定する境界値情報であって前記所望の範囲に属する境界値情報を第1の分割位置で分割した第1の分割情報と、前記境界値情報以外の前記所望の範囲の値を補完して得る補間値情報を前記第1の分割位置で分割した第1の補間値分割情報と、を記憶する第1の記憶手段と、前記境界値情報を前記第1の分割位置と一定方向に隣接する第2の分割位置で分割した第2の分割情報と、前記補間値情報を前記第2の分割位置で分割した第2の補間値分割情報と、を記憶する第2の記憶手段と、前記境界値情報が属する範囲についての集計情報を記憶する集計情報記憶手段に関する情報を記憶する第3の記憶手段と、を備え、前記第1の記憶手段は、前記第1の分割情報と前記第2の記憶手段との関連付け情報と、前記第1の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有し、前記第2の記憶手段は、前記第2の分割情報と前記第3の記憶手段との関連付け情報と、前記第2の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有する集計用記憶手段における前記第1の記憶手段を参照し、集計対象である集計対象情報を前記第1の分割位置で分割した第1の集計分割情報と一致する前記第1の分割情報と関連付けられた前記第2の記憶手段、または前記第1の集計分割情報と一致する前記第1の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第1の特定処理と、
前記第2の記憶手段を参照し、前記集計対象情報を前記第2の分割位置で分割した第2の集計分割情報と一致する前記第2の分割情報と関連付けられた前記第3の記憶手段、または前記第2の集計分割情報と一致する前記第2の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第2の特定処理と、
前記第1または第2の特定処理により特定された第3の記憶手段が記憶する情報から集計情報記憶手段を特定し、該集計情報記憶手段に前記集計対象情報に関する集計情報を記憶する集計処理と、
を行う集計方法。
(付記8)
所望の範囲を特定する境界値情報であって前記所望の範囲に属する境界値情報を第1の分割位置で分割した第1の分割情報を記憶する第1の記憶手段と、
前記境界値情報を前記第1の分割位置と一定方向に隣接する第2の分割位置で分割した第2の分割情報を記憶する第2の記憶手段と、
前記境界値情報が属する範囲についての集計情報を記憶する集計情報記憶手段に関する情報を記憶する第3の記憶手段と、
を備え、
前記第1の記憶手段は、前記第1の分割情報と前記第2の記憶手段との関連付け情報
を有し、
前記第2の記憶手段は、前記第2の分割情報と前記第3の記憶手段との関連付け情報を有する、
ことを特徴とするコンピュータに読み取り可能な記憶媒体。
(付記9)
前記第1の記憶手段は、前記境界値情報以外の前記所望の範囲の値を補完した補間値情報を前記第1の分割位置で分割した第1の補間値分割情報を記憶し、該第1の補間値分割情報と前記第3の記憶手段との関連付け情報を有し、
前記第2の記憶手段は、前記補間値情報を前記第2の分割位置で分割した第2の補間値分割情報を記憶し、該第2の補間値分割情報と前記第3の記憶手段との関連付け情報を有する、
ことを特徴とする請求項6に記載の記憶媒体。
(付記10)
前記第1の記憶手段は、前記境界値情報以外の前記所望の範囲の値を補完した補間値情報を前記第1の分割位置で分割した第1の補間値分割情報を記憶し、該第1の補間値分割情報と前記第3の記憶手段との関連付け情報を有する、
ことを特徴とする請求項6に記載の記憶媒体。
(付記11)
前記第2の記憶手段は、前記補間値情報を前記第2の分割位置で分割した第2の補間値分割情報を記憶し、該第2の補間値分割情報と前記第3の記憶手段との関連付け情報を有する、
ことを特徴とする請求項6に記載の記憶媒体。
【図面の簡単な説明】
【0140】
【図1】本実施例に係る集計装置の処理の概要を示すフローチャートである。
【図2】ステップS101の処理で生成される基本統計ヒドラの概要を説明する図である。
【図3】ステップS102の処理で生成される統計ヒドラの概要を説明する図である。
【図4】節および葉の具体的な構成の例を示す図である。
【図5】基本統計ヒドラを生成する処理(ステップS101)の具体的な処理を示すフローチャートである。
【図6】基本統計ヒドラを具体的に説明する図である。
【図7】統計ヒドラを生成する処理(ステップS102)の具体的な処理を示すフローチャートである。
【図8】統計ヒドラを具体的に説明する図である。
【図9】統計ヒドラを用いた集計処理(ステップS103)を示すフローチャートである。
【図10】集計結果の出力処理(ステップS104)を示すフローチャートである。
【図11】集計装置100の構成例を示す図である。
【図12】試験結果データの例を示す図である。
【図13】評価表の例を示す図である。
【図14】従来の統計ヒドラを説明する図である。
【図15】2次集計を説明する図である。
【図16】集計結果の例を示す図である。
【符号の説明】
【0141】
100 集計装置
200 基本統計ヒドラ
201 境界値情報
610 先頭節
620〜623 中間節
630〜633 最終節
640〜643 葉
300 統計ヒドラ
810 先頭節
820〜823 中間節
830〜833 最終節
840〜843 葉
【特許請求の範囲】
【請求項1】
コンピュータに、
所望の範囲を特定する境界値情報であって前記所望の範囲に属する境界値情報を第1の分割位置で分割した第1の分割情報と前記境界値情報以外の前記所望の範囲の値を補完して得る補間値情報を前記第1の分割位置で分割した第1の補間値分割情報とを記憶する第1の記憶手段と、前記境界値情報を前記第1の分割位置と一定方向に隣接する第2の分割位置で分割した第2の分割情報と前記補間値情報を前記第2の分割位置で分割した第2の補間値分割情報とを記憶する第2の記憶手段と、前記境界値情報が属する範囲についての集計情報を記憶する集計情報記憶手段に関する情報を記憶する第3の記憶手段と、を備え、前記第1の記憶手段は、前記第1の分割情報と前記第2の記憶手段との関連付け情報と、前記第1の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有し、前記第2の記憶手段は、前記第2の分割情報と前記第3の記憶手段との関連付け情報と、前記第2の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有する集計用記憶手段における前記第1の記憶手段を参照し、集計対象である集計対象情報を前記第1の分割位置で分割した第1の集計分割情報と一致する前記第1の分割情報と関連付けられた前記第2の記憶手段、または前記第1の集計分割情報と一致する前記第1の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第1の特定処理と、
前記第2の記憶手段を参照し、前記集計対象情報を前記第2の分割位置で分割した第2の集計分割情報と一致する前記第2の分割情報と関連付けられた前記第3の記憶手段、または前記第2の集計分割情報と一致する前記第2の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第2の特定処理と、
前記第1または第2の特定処理により特定された第3の記憶手段が記憶する情報から集計情報記憶手段を特定し、該集計情報記憶手段に前記集計対象情報に関する集計情報を記憶する集計処理と、
を実行させるためのプログラム。
【請求項2】
前記第1の記憶手段は、連続する第1の配列を複数備え、該第1の配列の配列番号が前記第1の分割情報または第1の補間値分割情報を表し、
前記第2の記憶手段は、連続する第2の配列を複数備え、該第2の配列の配列番号が前記第2の分割情報または第2の補間値分割情報を表す、
ことを特徴とする請求項1に記載のプログラム。
【請求項3】
前記第1の記憶手段は、連続する第1の配列を複数備え、前記第1の分割情報または前記第1の補間値分割情報と一致する配列番号を持つ前記第1の配列に、前記第1の分割情報と前記第2の記憶手段との関連付け情報、または、前記第1の補間分割情報と前記第2の記憶手段との関連付け情報を記憶し、
前記第2の記憶手段は、連続する第2の配列を複数備え、前記第2の分割情報または前記第2の補間値分割情報と一致する配列番号を持つ前記第2の配列に、前記第2の分割情報と前記第3の記憶手段との関連付け情報、または、前記第2の補間値分割情報と前記第3の記憶手段との関連付け情報を記憶する、
ことを特徴とする請求項1に記載のプログラム。
【請求項4】
所望の範囲を特定する境界値情報であって前記所望の範囲に属する境界値情報を第1の分割位置で分割した第1の分割情報と、前記境界値情報以外の前記所望の範囲の値を補完して得る補間値情報を前記第1の分割位置で分割した第1の補間値分割情報と、を記憶する第1の記憶手段と、前記境界値情報を前記第1の分割位置と一定方向に隣接する第2の分割位置で分割した第2の分割情報と、前記補間値情報を前記第2の分割位置で分割した第2の補間値分割情報と、を記憶する第2の記憶手段と、前記境界値情報が属する範囲についての集計情報を記憶する集計情報記憶手段に関する情報を記憶する第3の記憶手段と
、を備え、前記第1の記憶手段は、前記第1の分割情報と前記第2の記憶手段との関連付け情報と、前記第1の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有し、前記第2の記憶手段は、前記第2の分割情報と前記第3の記憶手段との関連付け情報と、前記第2の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有する集計用記憶手段における前記第1の記憶手段を参照し、集計対象である集計対象情報を前記第1の分割位置で分割した第1の集計分割情報と一致する前記第1の分割情報と関連付けられた前記第2の記憶手段、または前記第1の集計分割情報と一致する前記第1の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第1の特定手段と、
前記第2の記憶手段を参照し、前記集計対象情報を前記第2の分割位置で分割した第2の集計分割情報と一致する前記第2の分割情報と関連付けられた前記第3の記憶手段、または前記第2の集計分割情報と一致する前記第2の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第2の特定手段と、
前記第1または第2の特定処理により特定された第3の記憶手段が記憶する情報から集計情報記憶手段を特定し、該集計情報記憶手段に前記集計対象情報に関する集計情報を記憶する集計手段と、
を備える集計装置。
【請求項5】
所望の範囲を特定する境界値情報であって前記所望の範囲に属する境界値情報を第1の分割位置で分割した第1の分割情報と、前記境界値情報以外の前記所望の範囲の値を補完して得る補間値情報を前記第1の分割位置で分割した第1の補間値分割情報と、を記憶する第1の記憶手段と、前記境界値情報を前記第1の分割位置と一定方向に隣接する第2の分割位置で分割した第2の分割情報と、前記補間値情報を前記第2の分割位置で分割した第2の補間値分割情報と、を記憶する第2の記憶手段と、前記境界値情報が属する範囲についての集計情報を記憶する集計情報記憶手段に関する情報を記憶する第3の記憶手段と、を備え、前記第1の記憶手段は、前記第1の分割情報と前記第2の記憶手段との関連付け情報と、前記第1の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有し、前記第2の記憶手段は、前記第2の分割情報と前記第3の記憶手段との関連付け情報と、前記第2の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有する集計用記憶手段における前記第1の記憶手段を参照し、集計対象である集計対象情報を前記第1の分割位置で分割した第1の集計分割情報と一致する前記第1の分割情報と関連付けられた前記第2の記憶手段、または前記第1の集計分割情報と一致する前記第1の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第1の特定処理と、
前記第2の記憶手段を参照し、前記集計対象情報を前記第2の分割位置で分割した第2の集計分割情報と一致する前記第2の分割情報と関連付けられた前記第3の記憶手段、または前記第2の集計分割情報と一致する前記第2の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第2の特定処理と、
前記第1または第2の特定処理により特定された第3の記憶手段が記憶する情報から集計情報記憶手段を特定し、該集計情報記憶手段に前記集計対象情報に関する集計情報を記憶する集計処理と、
を行う集計方法。
【請求項1】
コンピュータに、
所望の範囲を特定する境界値情報であって前記所望の範囲に属する境界値情報を第1の分割位置で分割した第1の分割情報と前記境界値情報以外の前記所望の範囲の値を補完して得る補間値情報を前記第1の分割位置で分割した第1の補間値分割情報とを記憶する第1の記憶手段と、前記境界値情報を前記第1の分割位置と一定方向に隣接する第2の分割位置で分割した第2の分割情報と前記補間値情報を前記第2の分割位置で分割した第2の補間値分割情報とを記憶する第2の記憶手段と、前記境界値情報が属する範囲についての集計情報を記憶する集計情報記憶手段に関する情報を記憶する第3の記憶手段と、を備え、前記第1の記憶手段は、前記第1の分割情報と前記第2の記憶手段との関連付け情報と、前記第1の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有し、前記第2の記憶手段は、前記第2の分割情報と前記第3の記憶手段との関連付け情報と、前記第2の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有する集計用記憶手段における前記第1の記憶手段を参照し、集計対象である集計対象情報を前記第1の分割位置で分割した第1の集計分割情報と一致する前記第1の分割情報と関連付けられた前記第2の記憶手段、または前記第1の集計分割情報と一致する前記第1の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第1の特定処理と、
前記第2の記憶手段を参照し、前記集計対象情報を前記第2の分割位置で分割した第2の集計分割情報と一致する前記第2の分割情報と関連付けられた前記第3の記憶手段、または前記第2の集計分割情報と一致する前記第2の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第2の特定処理と、
前記第1または第2の特定処理により特定された第3の記憶手段が記憶する情報から集計情報記憶手段を特定し、該集計情報記憶手段に前記集計対象情報に関する集計情報を記憶する集計処理と、
を実行させるためのプログラム。
【請求項2】
前記第1の記憶手段は、連続する第1の配列を複数備え、該第1の配列の配列番号が前記第1の分割情報または第1の補間値分割情報を表し、
前記第2の記憶手段は、連続する第2の配列を複数備え、該第2の配列の配列番号が前記第2の分割情報または第2の補間値分割情報を表す、
ことを特徴とする請求項1に記載のプログラム。
【請求項3】
前記第1の記憶手段は、連続する第1の配列を複数備え、前記第1の分割情報または前記第1の補間値分割情報と一致する配列番号を持つ前記第1の配列に、前記第1の分割情報と前記第2の記憶手段との関連付け情報、または、前記第1の補間分割情報と前記第2の記憶手段との関連付け情報を記憶し、
前記第2の記憶手段は、連続する第2の配列を複数備え、前記第2の分割情報または前記第2の補間値分割情報と一致する配列番号を持つ前記第2の配列に、前記第2の分割情報と前記第3の記憶手段との関連付け情報、または、前記第2の補間値分割情報と前記第3の記憶手段との関連付け情報を記憶する、
ことを特徴とする請求項1に記載のプログラム。
【請求項4】
所望の範囲を特定する境界値情報であって前記所望の範囲に属する境界値情報を第1の分割位置で分割した第1の分割情報と、前記境界値情報以外の前記所望の範囲の値を補完して得る補間値情報を前記第1の分割位置で分割した第1の補間値分割情報と、を記憶する第1の記憶手段と、前記境界値情報を前記第1の分割位置と一定方向に隣接する第2の分割位置で分割した第2の分割情報と、前記補間値情報を前記第2の分割位置で分割した第2の補間値分割情報と、を記憶する第2の記憶手段と、前記境界値情報が属する範囲についての集計情報を記憶する集計情報記憶手段に関する情報を記憶する第3の記憶手段と
、を備え、前記第1の記憶手段は、前記第1の分割情報と前記第2の記憶手段との関連付け情報と、前記第1の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有し、前記第2の記憶手段は、前記第2の分割情報と前記第3の記憶手段との関連付け情報と、前記第2の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有する集計用記憶手段における前記第1の記憶手段を参照し、集計対象である集計対象情報を前記第1の分割位置で分割した第1の集計分割情報と一致する前記第1の分割情報と関連付けられた前記第2の記憶手段、または前記第1の集計分割情報と一致する前記第1の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第1の特定手段と、
前記第2の記憶手段を参照し、前記集計対象情報を前記第2の分割位置で分割した第2の集計分割情報と一致する前記第2の分割情報と関連付けられた前記第3の記憶手段、または前記第2の集計分割情報と一致する前記第2の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第2の特定手段と、
前記第1または第2の特定処理により特定された第3の記憶手段が記憶する情報から集計情報記憶手段を特定し、該集計情報記憶手段に前記集計対象情報に関する集計情報を記憶する集計手段と、
を備える集計装置。
【請求項5】
所望の範囲を特定する境界値情報であって前記所望の範囲に属する境界値情報を第1の分割位置で分割した第1の分割情報と、前記境界値情報以外の前記所望の範囲の値を補完して得る補間値情報を前記第1の分割位置で分割した第1の補間値分割情報と、を記憶する第1の記憶手段と、前記境界値情報を前記第1の分割位置と一定方向に隣接する第2の分割位置で分割した第2の分割情報と、前記補間値情報を前記第2の分割位置で分割した第2の補間値分割情報と、を記憶する第2の記憶手段と、前記境界値情報が属する範囲についての集計情報を記憶する集計情報記憶手段に関する情報を記憶する第3の記憶手段と、を備え、前記第1の記憶手段は、前記第1の分割情報と前記第2の記憶手段との関連付け情報と、前記第1の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有し、前記第2の記憶手段は、前記第2の分割情報と前記第3の記憶手段との関連付け情報と、前記第2の補間値分割情報と前記第3の記憶手段との関連付け情報と、を有する集計用記憶手段における前記第1の記憶手段を参照し、集計対象である集計対象情報を前記第1の分割位置で分割した第1の集計分割情報と一致する前記第1の分割情報と関連付けられた前記第2の記憶手段、または前記第1の集計分割情報と一致する前記第1の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第1の特定処理と、
前記第2の記憶手段を参照し、前記集計対象情報を前記第2の分割位置で分割した第2の集計分割情報と一致する前記第2の分割情報と関連付けられた前記第3の記憶手段、または前記第2の集計分割情報と一致する前記第2の補間値分割情報と関連付けられた前記第3の記憶手段を特定する第2の特定処理と、
前記第1または第2の特定処理により特定された第3の記憶手段が記憶する情報から集計情報記憶手段を特定し、該集計情報記憶手段に前記集計対象情報に関する集計情報を記憶する集計処理と、
を行う集計方法。
【図1】
【図2】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図3】
【図2】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図3】
【公開番号】特開2010−108093(P2010−108093A)
【公開日】平成22年5月13日(2010.5.13)
【国際特許分類】
【出願番号】特願2008−277181(P2008−277181)
【出願日】平成20年10月28日(2008.10.28)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.UNIX
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成22年5月13日(2010.5.13)
【国際特許分類】
【出願日】平成20年10月28日(2008.10.28)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.UNIX
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]