(57)【要約】【課題】検索処理を高速化することを課題とする。【解決手段】複数の商品名ａ，ｂ，ｃ，ｄ（関係項目）の中から指定された商品名に関連付けられた顧客識別番号１，２，３，・・・（検索対象項目）を、複数の顧客識別番号の中からコンピュータによって検索するためのデータベースのデータ構造であって、前記複数の商品名のうちの２つ以上の商品名に同一の上位項目Ｗ，Ｘ，Ｙ，Ｚを関連づけた第一データと、前記複数の顧客識別番号のうち、前記同一の上位項目が関連づけられた商品名に関係する顧客識別番号に、該上位項目を関連づけた第二データと、前記第一データ及び前記第二データでは関連づけられない商品名と顧客識別番号とを関連づけた第三データと、を有する。【選択図】図８
2018195165.tif 000002
【特許請求の範囲】
【請求項１】
複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を、複数の検索対象項目の中からコンピュータによって検索するためのデータベースのデータ構造であって、
前記複数の関係項目のうちの２つ以上の関係項目に同一の上位項目を関連づけた第一データと、
前記複数の検索対象項目のうち、前記同一の上位項目が関連づけられた関係項目に関係する検索対象項目に、該上位項目を関連づけた第二データと、
前記第一データ及び前記第二データでは関連づけられない関係項目と検索対象項目とを関連づけた第三データと、を有することを特徴とするデータ構造。
【請求項２】
請求項１に記載のデータ構造において、
前記第一データは、所定の上位項目作成条件を満たす２以上の関係項目に同一の上位項目を関連づけたものであることを特徴とするデータ構造。
【請求項３】
請求項１又は２に記載のデータ構造において、
複数の前記上位項目のうちの２つ以上の上位項目に同一の第二上位項目を関連づけた第四データと、
前記複数の検索対象項目のうち、前記同一の第二上位項目が前記上位項目を介して関連づけられた関係項目に関係する検索対象項目に、該第二上位項目を関連づけた第五データとを有することを特徴とするデータ構造。
【請求項４】
複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を、複数の検索対象項目の中からコンピュータによって検索するためのデータベースのデータ構造であって、
前記複数の検索対象項目のうちの２つ以上の検索対象項目に関連づけられた上位項目を、該２つ以上の検索対象項目に関係する関係項目に関連づけた第六データと、
前記第六データには含まれない関係項目と該関係項目に関係する検索対象項目とを関連づけた第七データと、を有することを特徴とするデータ構造。
【請求項５】
複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を、複数の検索対象項目の中からコンピュータによって検索する情報検索装置であって、
請求項１乃至４のいずれか１項に記載のデータ構造をもつデータベースを用いて検索を行うことを特徴とする情報検索装置。
【請求項６】
請求項５に記載の情報検索装置において、
請求項１乃至３のいずれか１項に記載のデータ構造をもつデータベースを用い、
前記複数の関係項目の中から２つ以上の関係項目が指定された所定の検索条件での検索を行う場合、前記第一データを参照して、該所定の検索条件に一致する２以上の関係項目が関連づけられた上位項目が存在するときは前記第二データを検索し、該所定の検索条件に一致する２以上の関係項目が関連づけられた上位項目が存在しないときは前記第三データを検索することを特徴とする情報検索装置。
【請求項７】
請求項５又は６に記載の情報検索装置において、
請求項３に記載のデータ構造をもつデータベースを用い、
前記複数の関係項目の中から２つ以上の関係項目が指定された所定の検索条件での検索を行う場合、前記第四データを参照して、該所定の検索条件に一致する２以上の関係項目が上位項目を介して関連づけられた第二上位項目が存在するときは前記第五データを検索することを特徴とする情報検索装置。
【請求項８】
複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を複数の検索対象項目の中から検索する工程をコンピュータに実行させるための検索用プログラムであって、
前記工程では、請求項１乃至４のいずれか１項に記載のデータ構造をもつデータベースを用いて検索を行うことを特徴とする検索用プログラム。
【請求項９】
請求項１乃至４のいずれか１項に記載のデータ構造をもつデータベースの製造方法であって、
検索対象項目とこれに関係する関係項目とを追加する追加工程と、
所定の上位項目作成条件を満たす２以上の関係項目又は２以上の検索対象項目に同一の上位項目を関連づけて前記データベースを更新する更新工程とを有することを特徴とするデータベースの製造方法。
【請求項１０】
請求項１乃至４のいずれか１項に記載のデータ構造をもつデータベースの製造装置であって、
検索対象項目とこれに関係する関係項目とを追加する追加手段と、
所定の上位項目作成条件を満たす２以上の関係項目又は２以上の検索対象項目に同一の上位項目を関連づけて前記データベースを更新する更新手段とを有することを特徴とするデータベースの製造装置。
【請求項１１】
請求項１乃至４のいずれか１項に記載のデータ構造をもつデータベースを製造する工程をコンピュータに実行させるためのデータベース製造用プログラムであって、
検索対象項目とこれに関係する関係項目とを追加する追加工程と、
所定の上位項目作成条件を満たす２以上の関係項目又は２以上の検索対象項目に同一の上位項目を関連づけて前記データベースを更新する更新工程とを、前記コンピュータに実行させることを特徴とするデータベース製造用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を、複数の検索対象項目の中からコンピュータによって検索するためのデータベースのデータ構造、当該データベースを用いる情報検索装置及び検索用プログラム、並びに、当該データベースの製造方法、当該データベースの製造装置及び当該データベース製造用のプログラムに関する。
【背景技術】
【０００２】
従来、例えばネットスーパーで商品を検索するにあたり、顧客はまず先の選択カテゴリー（肉の種類）からいずれかの先選択項目（関係項目：「牛肉」、「豚肉」、「鶏肉」）を選択（指定）した後に、後の選択カテゴリー（部位の種類）からいずれかの後選択項目（関係項目：「サーロイン」、「タン」、「ヒレ」、「モモ」、「肩」、「ササミ」、「レバー」）を選択（指定）することで、選択された選択項目に該当する商品（検索対象項目：例えば牛のモモ肉）が表示される絞り込み商品検索システムが知られている。
【０００３】
特許文献１には、先選択項目に対して重複して関連づけられる後選択項目の重複を減らすために、いくつかの先選択項目（関係項目）を上位の分類（上位項目）でグループ化したデータテーブルを含むデータ構造が開示されている。このデータ構造には、後選択項目（関係項目）を先選択項目や上位分類と関連づけたデータテーブルも含まれている。
【０００４】
例えば、先の選択カテゴリー（肉の種類）について、「牛肉」及び「豚肉」の先選択項目を、「哺乳類」という上位分類でグループ化する。更に、「哺乳類」の上位分類及び「鶏肉」の先選択項目を、「動物（肉）」という上位分類でグループ化する。この場合、下記の表１に示すようなデータテーブルが作成される。一方で、後の選択カテゴリー（部位の種類）については、上述した上位分類（「哺乳類」、「動物（肉）」）や先選択項目（「牛肉」、「豚肉」、「鶏肉」）と関連づけた下記の表２に示すようなデータテーブルを作成する。これらのデータテーブルを用いることで、例えば、先選択項目として「牛肉」が選択された場合、下記の表１のデータテーブルから、「牛肉」に関連づけられた「哺乳類」と、その「哺乳類」に関連付けられた「動物（肉）」とが選択される。その後、その選択結果である「哺乳類」、「動物（肉）」、更には選択された「牛肉」のいずれかに関連付けられた肉の部位を、下記の表２のデータテーブルから抽出し、後の選択カテゴリーとして顧客に提示される。これを受けて、顧客が後選択項目として「モモ」を選択した場合、下記の表３に示すようなデータテーブルから、「牛肉・モモ」に関連付けられた商品番号（検索対象項目）が検索され、商品番号４に対応する「牛のモモ肉」の商品が顧客に提示される。
【０００５】
【表１】
2018195165.tif 000003
【０００６】
【表２】
2018195165.tif 000004
【０００７】
【表３】
2018195165.tif 000005
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第４８５３７９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
近年、複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を、複数の検索対象項目の中からコンピュータによって検索する検索処理において、処理の高速化が重要性を増している。特に、近年のコンピュータの処理能力の向上や記憶容量の向上に応じて、様々なデータベースは、蓄積される検索対象項目の数や関係項目の数が膨大になる一方、コンピュータの処理能力の向上スピードが従来と比べて鈍化していることから、より効率的な検索方法によって検索処理の高速化を実現することが望まれる。
【００１０】
前記特許文献１で示された例における最終目的は、商品分類の区分けを記録するだけの表１や表２に示すようなデータテーブルよりもレコード数が圧倒的に多い前記表３に示すようなデータテーブルから、目的とする商品番号を検索することである。すなわち、前記特許文献１に開示のデータ構造において、指定された関係項目（選択された先選択項目（例えば「牛肉」）及び選択された後選択項目（例えば「モモ」））に関連づけられた検索対象項目（例えば「牛のモモ肉」の商品番号）を検索するために用いられるデータテーブルは、前記表３に示すように、各検索対象項目とその検索対象項目に関係する関係項目（先選択項目及び後選択項目）とが関連づけられた一般的なデータ構造と変わらない。したがって、前記特許文献１に開示のデータ構造を用いた検索処理では、検索処理の高速化を図ることはできない。
【００１１】
本発明は、上述した課題に鑑みてなされたものであり、その目的とするところは、検索処理を高速化できるデータ構造、情報検索装置、検索用プログラム、データベースの製造方法、データベースの製造装置、データベース製造用プログラムを提供することである。
【課題を解決するための手段】
【００１２】
前記目的を達成するために、請求項１の発明は、複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を、複数の検索対象項目の中からコンピュータによって検索するためのデータベースのデータ構造であって、前記複数の関係項目のうちの２つ以上の関係項目に同一の上位項目を関連づけた第一データと、前記複数の検索対象項目のうち、前記同一の上位項目が関連づけられた関係項目に関係する検索対象項目に、該上位項目を関連づけた第二データと、前記第一データ及び前記第二データでは関連づけられない関係項目と検索対象項目とを関連づけた第三データと、を有することを特徴とするものである。
本発明は、検索に用いられるデータベースが、上述した第一データ、第二データ及び第三データを含むデータ構造をもつことで、検索処理の高速化を実現するものである。
詳しくは、本発明に係るデータ構造をもったデータベースでは、第一データを参照して、２つ以上の関係項目が関連づけられた上位項目と検索対象項目とが関連づけられた第二データと、第一データ及び第二データでは関連づけられない関係項目と検索対象項目とが関連づけられた第三データとから、指定された関係項目（指定関係項目）に関係する検索対象項目を検索する。
第二データは、２つ以上の関係項目が上位項目にまとめられて検索対象項目と関連づけされたものであるため、第二データ及び第三データの両方を足し合わせたレコード数は、関係項目と検索対象項目との関連のすべてを両者の直接的な対応関係のみで記録した一般的なデータ構造をもつデータベースのレコード数よりも少ない。したがって、本発明に係るデータ構造をもったデータベースを用いた場合、第二データ及び第三データの両方から指定関係項目に関係する検索対象項目を検索するときの検索処理速度は、上述した一般的なデータ構造をもつデータベースを用いた場合よりも高速化できる。
ここで、本発明において特筆すべきは、２つ以上の関係項目が指定された所定の検索条件の検索処理を行う場合に飛躍的な高速化が望める点である。
例えば、第一データにおいて同一の上位項目に関連づけられた２つ以上の関係項目の全部に関係する検索対象項目を第二データに含めた場合、指定された２つ以上の関係項目をＡＮＤ条件で検索する際には、その指定された２つ以上の関係項目が当該同一の上位項目に関連づけられた２つ以上の関係項目と一致するときは、第三データに対する検索を行わずに、その上位項目に関連づけられた検索対象項目を第二データから検索するだけで、検索処理を完了できる。この場合の第二データは、上位項目が関連づけられた２以上の関係項目の全部に関係する検索対象項目しか含まないので、そのレコード数が少なく、その検索処理速度は、一般的なデータ構造をもつデータベースを用いた場合よりも大幅に高速化できる。また、この場合、指定された２つ以上の関係項目が当該同一の上位項目に関連づけられた２つ以上の関係項目と一致しない場合には、第二データに対する検索を行わずに、その指定された２つ以上の関係項目に関連づけられた検索対象項目を第三データからＡＮＤ条件で検索するだけで、検索処理を完了できる。第三データは、第一データ及び第二データでは関連づけられない関係項目と検索対象項目とを関連づけるレコードしか含まないので、そのレコード数は少なく、その検索処理速度は、一般的なデータ構造をもつデータベースを用いた場合よりも、大幅に高速化できる。
また、例えば、第一データにおいて同一の上位項目に関連づけられた２つ以上の関係項目の少なくとも１つに関係する検索対象項目を第二データに含めた場合、指定された２つ以上の関係項目をＯＲ条件で検索する際には、その指定された２つ以上の関係項目が当該同一の上位項目に関連づけられた２つ以上の関係項目に含まれているときは、第三データに対する検索を行わずに、その上位項目に関連づけられた検索対象項目を第二データから検索するだけで、検索処理を完了できる。この場合の第二データは、上位項目が関連づけられた２以上の関係項目の少なくとも１つに関係する検索対象項目しか含まないので、そのレコード数が少なく、その検索処理速度は、一般的なデータ構造をもつデータベースを用いた場合よりも大幅に高速化できる。また、この場合、指定された２つ以上の関係項目のいずれも当該同一の上位項目に関連づけられた２つ以上の関係項目に含まれていない場合には、第二データに対する検索を行わずに、その指定された２つ以上の関係項目に関連づけられた検索対象項目を第三データからＯＲ条件で検索するだけで、検索処理を完了できる。第三データは、第一データ及び第二データでは関連づけられない関係項目と検索対象項目とを関連づけるレコードを含まないので、そのレコード数は少なく、その検索処理速度は、一般的なデータ構造をもつデータベースを用いた場合よりも、大幅に高速化できる。ただし、第一データにおいて同一の上位項目に関連づけられた２つ以上の関係項目の少なくとも１つに関係する検索対象項目をその上位項目と関連づけて記録する第二データのテーブル（以下「テーブルＢ」という。）は、第一データにおいて同一の上位項目に関連づけられた２つ以上の関係項目の全部に関係する検索対象項目をその上位項目と関連づけて記録する第二データのテーブル（以下「テーブルＡ」という。）とは別のテーブルで記録することが望ましい。両者の関連は内容的に異なるにもかかわらず、両者を同一のテーブルに記録するとその差異が区別できなくなるからである。また、第一データにおいて同一の上位項目に関連づけられた２つ以上の関係項目の少なくとも１つに関係する検索対象項目は、当然に第一データにおいて同一の上位項目に関連づけられた２つ以上の関係項目の全部に関係する検索対象項目を包含する。したがって、テーブルＡに記録したレコードはテーブルＢには記録しないようにすることが、データの重複記録防止の観点から望ましい。
このように、上述したような所定の検索条件での検索処理が高速化する結果、本発明に係るデータ構造をもったデータベースを用いた場合の検索処理速度の期待値は、一般的なデータ構造をもつデータベースを用いた場合よりも大幅に向上する。
そして、本発明によれば、このような所定の検索条件を見込んで、上位項目に関連づける２つ以上の関係項目を適切に設計すれば、単一条件での検索が可能な第二データに対する検索処理を行う頻度を高めることができる。単一条件での検索が可能な第二データに対する検索処理は、レコード数が同じ場合、ＡＮＤ条件やＯＲ条件での検索を行う第三データに対する検索処理よりも高速な検索が可能である。したがって、検索処理速度の期待値は、より一層向上する。
【００１３】
また、請求項２の発明は、請求項１に記載のデータ構造において、前記第一データは、所定の上位項目作成条件を満たす２以上の関係項目に同一の上位項目を関連づけたものであることを特徴とするものである。
本発明において、同一の上位項目が関連づけられる２以上の関係項目を選ぶための上位項目作成条件は適宜設定されるが、例えば、レコード数を効率よく削減して検索処理速度の高速化を図る場合には、２以上の関係項目の全部に関係する検索対象項目の数が所定数以上であるという条件を満たしたときに、当該２以上の関係項目に同一の上位項目を関連づけるようにしてもよい。また、所定の検索条件での検索処理速度の高速化を図る場合には、例えば、過去の検索処理における指定された関係項目の履歴などから、今後に所定の検索条件で指定される２つ以上の関係項目を見込んで、この条件を満たす２つ以上の関係項目に同一の上位項目を関連づける条件としてもよい。
【００１４】
また、請求項３の発明は、請求項１又は２に記載のデータ構造において、複数の前記上位項目のうちの２つ以上の上位項目に同一の第二上位項目を関連づけた第四データと、前記複数の検索対象項目のうち、前記同一の第二上位項目が前記上位項目を介して関連づけられた関係項目に関係する検索対象項目に、該第二上位項目を関連づけた第五データとを有することを特徴とするものである。
本発明によれば、検索に用いられるデータベースが、上述した第一データ、第二データ及び第三データのほかに、第四データ及び第五データも含むデータ構造をもつことで、更なる検索処理の高速化を実現することが可能となる。特に、指定された関係項目が第四データにおいて同一の第二上位項目に関連づけられた上位項目に関連づけられている２つ以上の関係項目と一致する場合、第二データ及び第三データに対する検索を行わずに、第四データを参照してその第二上位項目に関連づけられた検索対象項目を第五データから検索するだけで、検索処理を完了できる。第五データのレコード数は、第二データのレコード数よりも更に少ないものであり、検索処理速度の更なる高速化を図ることができる。そして、本発明によれば、指定される関係項目の所定の検索条件を見込んで、第二上位項目に関連づける関係項目を適切に設計することで、検索処理速度のより一層の高速化を図ることができる。
【００１５】
また、請求項４の発明は、複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を、複数の検索対象項目の中からコンピュータによって検索するためのデータベースのデータ構造であって、前記複数の検索対象項目のうちの２つ以上の検索対象項目に関連づけられた上位項目を、該２つ以上の検索対象項目に関係する関係項目に関連づけた第六データと、前記第六データには含まれない関係項目と、該関係項目に関係する検索対象項目とを関連づけた第七データと、を有することを特徴とする。
本発明は、検索に用いられるデータベースが、上述した第六データ及び第七データを含むデータ構造をもつことで、検索処理の高速化を実現するものである。
詳しくは、本発明に係るデータ構造をもったデータベースでは、２つ以上の検索対象項目に関連づけられた上位項目と該２つ以上の検索対象項目に関係する関係項目に関連づけた第六データと、前記第六データには含まれない関係項目と検索対象項目とを関連づけた第七データとから、指定された関係項目（指定関係項目）に関係する検索対象項目を検索する。
第六データは、２つ以上の検索対象項目が上位項目にまとめられて関係項目に関連づけされたものであるため、第六データ及び第七データの両方を足し合わせたレコード数は、関係項目と検索対象項目との関連のすべてを両者の直接的な対応関係のみで記録した一般的なデータ構造をもつデータベースのレコード数よりも少ない。したがって、本発明に係るデータ構造をもったデータベースを用いた場合、第六データ及び第七データの両方から指定関係項目に関係する検索対象項目を検索するときの検索処理速度は、上述した一般的なデータ構造をもつデータベースを用いた場合よりも高速化できる。
更に、本発明においては、単一の関係項目を指定して検索対象項目を検索する場合等において、検索処理速度の高速化が望める。これは、第六データに含まれる関係項目と第七データに含まれる関係項目とが排他的な関係になっているため、第六データ及び第七データのうち、関係項目が指定された際、その関係項目を含むいずれか一方のデータだけを検索するだけで、検索処理を完了できるからである。特に、第六データは、上位項目が関連づけられた２以上の検索対象項目の全部に関係する検索対象項目しか含まないので、そのレコード数が少なく、その検索処理速度は、一般的なデータ構造をもつデータベースを用いた場合よりも大幅に高速化できる。
このように、上述したような特定の検索条件（単一の関係項目を指定して検索対象項目を検索する場合など）での検索処理が高速化する結果、本発明に係るデータ構造をもったデータベースを用いた場合の検索処理速度の期待値は、一般的なデータ構造をもつデータベースを用いた場合よりも向上する。
【００１６】
また、請求項５の発明は、複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を、複数の検索対象項目の中からコンピュータによって検索する情報検索装置であって、請求項１乃至４のいずれか１項に記載のデータ構造をもつデータベースを用いて検索を行うことを特徴とするものである。
本発明によれば、高速な検索処理を実施することが可能となる。
【００１７】
また、請求項６の発明は、請求項５に記載の情報検索装置において、請求項１乃至３のいずれか１項に記載のデータ構造をもつデータベースを用い、前記複数の関係項目の中から２つ以上の関係項目が指定された所定の検索条件での検索を行う場合、前記第一データを参照して、該所定の検索条件に一致する２以上の関係項目が関連づけられた上位項目が存在するときは前記第二データを検索し、該所定の検索条件に一致する２以上の関係項目が関連づけられた上位項目が存在しないときは前記第三データを検索することを特徴とするものである。
本発明によれば、２つ以上の関係項目が指定された所定の検索条件での検索を行う場合の検索処理が高速化できる。
【００１８】
また、請求項７の発明は、請求項５又は６に記載の情報検索装置において、請求項３に記載のデータ構造をもつデータベースを用い、前記複数の関係項目の中から２つ以上の関係項目が指定された所定の検索条件での検索を行う場合、前記第四データを参照して、該所定の検索条件に一致する２以上の関係項目が上位項目を介して関連づけられた第二上位項目が存在するときは前記第五データを検索することを特徴とするものである。
本発明によれば、２つ以上の関係項目が指定された所定の検索条件での検索を行う場合の検索処理が更に高速化できる。
【００１９】
また、請求項８の発明は、複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を複数の検索対象項目の中から検索する工程をコンピュータに実行させるための検索用プログラムであって、前記工程では、請求項１乃至４のいずれか１項に記載のデータ構造をもつデータベースを用いて検索を行うことを特徴とするものである。
本発明によれば、高速な検索処理を実施することが可能となる。
【００２０】
また、請求項９の発明は、請求項１乃至４のいずれか１項に記載のデータ構造をもつデータベースの製造方法であって、検索対象項目とこれに関係する関係項目とを追加する追加工程と、所定の上位項目作成条件を満たす２以上の関係項目又は２以上の検索対象項目に同一の上位項目を関連づけて前記データベースを更新する更新工程とを有することを特徴とするものである。
また、請求項１０の発明は、請求項１乃至４のいずれか１項に記載のデータ構造をもつデータベースの製造装置であって、検索対象項目とこれに関係する関係項目とを追加する追加手段と、所定の上位項目作成条件を満たす２以上の関係項目又は２以上の検索対象項目に同一の上位項目を関連づけて前記データベースを更新する更新手段とを有することを特徴とするものである。
また、請求項１１の発明は、請求項１乃至４のいずれか１項に記載のデータ構造をもつデータベースを製造する工程をコンピュータに実行させるためのデータベース製造用プログラムであって、検索対象項目とこれに関係する関係項目とを追加する追加工程と、所定の上位項目作成条件を満たす２以上の関係項目又は２以上の検索対象項目に同一の上位項目を関連づけて前記データベースを更新する更新工程とを、前記コンピュータに実行させることを特徴とするものである。
これらの発明では、検索対象項目とこれに関係する関係項目の追加により所定の上位項目作成条件を満たすこととなった２以上の関係項目又は２以上の検索対象項目に対し、同一の上位項目を関連づけて、データベースの更新を行う。所定の上位項目作成条件は、適宜設定される。例えば、レコード数を効率よく削減して検索処理速度の高速化を図る場合には、２以上の関係項目又は２以上の検索対象項目の全部に関係する検索対象項目の数が所定数以上になったという条件を満たしたときに、当該２以上の関係項目に同一の上位項目を関連づけるようにしてもよい。また、請求項１乃至４のいずれか１項に記載のデータ構造をもつデータベースについて、所定の検索条件での検索処理速度の高速化を図る場合には、例えば、過去の検索処理における指定された関係項目の履歴などから、今後に所定の検索条件で指定される２つ以上の関係項目を見込んで、この条件を満たす２つ以上の関係項目に同一の上位項目を関連づけるようにしてもよい。
【００２１】
なお、上述したプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録された状態で配布したり、入手したりすることができる。また、上述したプログラムを乗せ、所定の送信装置により送信された信号を、公衆電話回線や専用線、その他の通信網等の伝送媒体を介して配信したり、受信したりすることでも、配布、入手が可能である。この配信の際、伝送媒体中には、コンピュータプログラムの少なくとも一部が伝送されていればよい。すなわち、コンピュータプログラムを構成するすべてのデータが、一時に伝送媒体上に存在している必要はない。上述したプログラムを乗せた信号とは、コンピュータプログラムを含む所定の搬送波に具現化されたコンピュータデータ信号である。また、所定の送信装置からコンピュータプログラムを送信する送信方法には、プログラムを構成するデータを連続的に送信する場合も、断続的に送信する場合も含まれる。
【発明の効果】
【００２２】
本発明によれば、検索処理を高速化することができるという優れた効果が奏される。
【図面の簡単な説明】
【００２３】
【図１】実施形態１における情報検索装置を模式的に示す外観図である。
【図２】同情報検索装置の構成を示すブロック図である。
【図３】同情報検索装置が用いるデータベースで管理する、顧客識別番号１，２，３，４，５，・・・と、その顧客が過去に購入した商品の商品名ａ，ｂ，ｃ，ｄとの関係をまとめた表の一例である。
【図４】同情報検索装置が用いるデータベースで管理される商品名と上位項目との関係をまとめた表の一例である。
【図５】同情報検索装置が用いるデータベースで管理される、顧客識別番号１，２，３，４，５，・・・と、商品名ａ，ｂ，ｃ，ｄ又は上位項目Ｗ，Ｘ，Ｙ，Ｚとの関係をまとめた表の一例である。
【図６】同情報検索装置が用いるデータベースの第二データテーブルのデータ構造を示す説明図である。
【図７】同情報検索装置が用いるデータベースの第三データテーブルのデータ構造を示す説明図である。
【図８】実施形態１におけるＡＮＤ条件での検索処理の流れを示すフローチャートである。
【図９】実施形態１における単一条件での検索処理の流れを示すフローチャートである。
【図１０】実施形態１におけるＯＲ条件での検索処理の流れを示すフローチャートである。
【図１１】実施形態１におけるデータベースの更新処理の流れを示すフローチャートである。
【図１２】変形例における情報検索装置が用いるデータベースの第四データテーブルのデータ構造を示す説明図である。
【図１３】同情報検索装置が用いるデータベースの第五データテーブルのデータ構造を示す説明図である。
【図１４】同情報検索装置が用いるデータベースの第一データテーブルのデータ構造を示す説明図である。
【図１５】同情報検索装置が用いるデータベースの第二データテーブルのデータ構造を示す説明図である。
【図１６】検索されるデータテーブルと階層とを関連づけたデータテーブルのデータ構造を示す説明図である。
【図１７】効果確認試験における、顧客識別番号と、その顧客が過去に購入した商品の商品名との関係をまとめた表の一例である。
【図１８】効果確認試験における商品名ａ，ｂと上位項目Ｗとを関連づけた第一データテーブルを示す説明図である。
【図１９】効果確認試験における、顧客識別番号１〜６００００と、商品名ａ，ｂ又は上位項目Ｗとの関係をまとめたデータテーブルを示す説明図である。
【図２０】効果確認試験における、顧客識別番号１〜６００００のうち、上位項目Ｗが関連づけられた２つの商品名ａ，ｂに共通して関係する顧客識別番号２０００１〜４００００に、当該上位項目Ｗを関連づけたデータテーブルを示す説明図である。
【図２１】効果確認試験における、顧客識別番号１〜６００００のうち、上位項目Ｗが関連づけられていない商品名ａ，ｂに関係する顧客識別番号１〜２００００，４０００１〜６００００に、当該商品名ａ，ｂを関連づけたデータテーブルを示す説明図である。
【図２２】実施形態２における単一条件での検索処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２４】
〔実施形態１〕
以下、本発明の一実施形態（以下、本実施形態を「実施形態１」という。）を、添付図面を参照しながら説明する。
なお、本実施形態１は、スーパーや百貨店などの店舗において顧客の商品購入履歴を管理するためのデータベースを用い、複数の商品名（関係項目）の中から指定された商品名に関連付けられた顧客（当該商品名の商品を購入した顧客）の識別番号（検索対象項目）を、複数の顧客識別番号の中からコンピュータによって検索する検索処理を行う例について説明する。なお、複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を複数の検索対象項目の中からコンピュータによって検索するためのデータベースを用いるのであれば、どのようなものであってもよい。
【００２５】
また、以下の説明では、リレーショナルデータベースの例で説明するが、ＮｏＳＱＬデータベースなどの他のデータベースにも適用可能である。なお、ＮｏＳＱＬデータベースでいえば、以下で述べるデータテーブルはバケットやコレクションなどに対応する。
【００２６】
図１は、本実施形態１における情報検索装置１００を模式的に示す外観図である。
図２は、本実施形態１における情報検索装置１００の構成を示すブロック図である。
本実施形態１における情報検索装置１００は、汎用のパーソナルコンピュータあるいはサーバ装置（以下「コンピュータ装置」という。）に、所定のデータベースソフト（検索用プログラム、データベース製造用プログラム）をインストールしたものである。なお、情報検索装置１００は、このような汎用のコンピュータ装置に限らず、情報検索専用の装置であってもよい。
【００２７】
本実施形態１の情報検索装置１００は、主に、装置本体１０１と、表示手段としてのモニター１０２と、キーボード１０３やポインティングデバイス１０４等の操作受付手段としての入力装置とから構成される。装置本体１０１は、主に、ＣＰＵ（Central Processing Unit）等からなる演算部１０１ａと、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）あるいはＨＤＤ（Hard Disk Drive）等の記憶装置からなる記憶部１０１ｂとから構成されるが、そのほか、通信インターフェース等からなる通信部など、汎用のコンピュータ装置が備える一般的な機能も備えている。
【００２８】
装置本体１０１の記憶部１０１ｂには、情報検索装置１００の機能を発揮させるためのデータベースソフトを含む各種コンピュータプログラムが記憶されている。また、記憶部１０１ｂは、データ記憶手段として機能し、後述するデータ構造をもつデータベースも記憶される。装置本体１０１の演算部１０１ａは、記憶部１０１ｂに記憶されている各種コンピュータプログラムをＣＰＵで実行することにより、本実施形態１の情報検索装置１００としての動作に必要な各種機能を実現する。
【００２９】
特に、本実施形態１の演算部１０１ａは、データベースソフトに含まれる検索用プログラムをＣＰＵで実行することにより、記憶部１０１ｂに記憶されたデータベースを用いて、指示された商品名（関係項目）に関連付けられた顧客識別番号（検索対象項目）を検索する検索処理を行う。また、本実施形態１の演算部１０１ａは、データベースソフトに含まれるデータベース製造用プログラムをＣＰＵで実行することにより、追加入力された顧客識別番号（検索対象項目）とこれに関係する商品名（関係項目）に応じて所定の上位項目作成条件を満たすこととなった２以上の商品名（関係項目）に対し、同一の上位項目を関連づけてデータベースを更新し、新たなデータベースを作成（製造）する処理を行う。
【００３０】
図３は、本実施形態１における情報検索装置１００が用いるデータベースで管理する、顧客識別番号１，２，３，４，５，・・・（検索対象項目）と、その顧客が過去に購入した商品の商品名ａ，ｂ，ｃ，ｄ（関係項目）との関係をまとめた表の一例である。この表によれば、顧客識別番号１の顧客は商品名ａ，ｂ，ｃ，ｄの商品を購入し、顧客識別番号２の顧客は商品名ａ，ｃの商品を購入し、顧客識別番号３の顧客は商品名ｃの商品を購入し、顧客識別番号４の顧客は商品名ａ，ｃの商品を購入し、顧客識別番号５の顧客は商品名ａの商品を購入し、顧客識別番号１０の顧客は商品名ｄの商品を購入したことが管理されている。
【００３１】
従来の一般的なデータベースでは、図３に示す表のようなデータテーブルを作成し、そのデータテーブルに対して検索処理を行っていた。この場合、顧客識別番号１〜５の顧客の購入商品分だけでも、レコード数は９個であり、例えば、商品名ａの商品を購入した顧客の識別番号を検索するときは、９個のレコード数を検索する必要がある。
【００３２】
図４は、本実施形態１における情報検索装置１００が用いるデータベースで管理される商品名（関係項目）と上位項目との関係をまとめた表の一例である。
本実施形態１においては、所定の２つ以上の商品名（関係項目）を上位項目にグループ化する。図４の表の例では、商品名ａと商品名ｂを上位項目Ｗにグループ化し、商品名ａと商品名ｃを上位項目Ｘにグループ化し、商品名ｂと商品名ｃを上位項目Ｙにグループ化し、商品名ａと商品名ｂと商品名ｃを上位項目Ｚにグループ化している。
【００３３】
図５は、本実施形態１における情報検索装置１００が用いるデータベースで管理される、顧客識別番号１，２，３，４，５，・・・（検索対象項目）と、商品名ａ，ｂ，ｃ，ｄ（関係項目）又は上位項目Ｗ，Ｘ，Ｙ，Ｚとの関係をまとめた表の一例である。
仮に図５に示す表のようなデータテーブルを作成し、そのデータテーブルに対して検索処理を行った場合、顧客識別番号１〜５の顧客の購入商品分だけで見ると、レコード数は５個であり、図３に示す表のようなデータテーブルを用いる従来の一般的なデータベースよりも、検索するレコード数が少なくて済む。このように検索するレコード数を少なくできれば、１つの商品名（関係項目）を指定して顧客識別番号を検索する場合でも、２つ以上の商品名（関係項目）を指定してＯＲ条件やＡＮＤ条件の検索処理を行う場合でも、検索処理の高速化を図ることができる。
【００３４】
ただし、図５に示す表のようなデータテーブルに対する検索処理の場合、１つの商品名（関係項目）を指定して顧客識別番号（検索対象項目）を検索するときでも、２つ以上の商品名をＡＮＤ条件で顧客識別番号を検索するときでも、２つ以上の商品名をＯＲ条件で顧客識別番号を検索するときでも、検索するレコード数は同じである。
【００３５】
本実施形態１においては、以下のようなデータ構造をもつデータベースを用いることで、２つ以上の商品名（関係項目）をＡＮＤ条件で顧客識別番号を検索する場合の検索処理速度の期待値を向上させる。
【００３６】
図６は、本実施形態１における情報検索装置１００が用いるデータベースの第二データとしての第二データテーブルのデータ構造を示す説明図である。
図６に示す第二データテーブルは、複数の顧客識別番号１，２，３，４，５，・・・（検索対象項目）のうち、同一の上位項目Ｗ，Ｘ，Ｙ，Ｚが関連づけられた商品名ａ，ｂ，ｃ（関係項目）の全部に関係する顧客識別番号１，２，４，６，７，・・・に、当該上位項目Ｗ，Ｘ，Ｙ，Ｚを関連づけたデータである。第二データテーブルは記憶部１０１ｂに記憶されており、演算部１０１ａは、検索用プログラムを実行して第二データテーブルから検索を行うことができる。
【００３７】
図７は、本実施形態１における情報検索装置１００が用いるデータベースの第三データとしての第三データテーブルのデータ構造を示す説明図である。
図７に示す第三データテーブルは、複数の顧客識別番号１，２，３，４，５，・・・（検索対象項目）のうち、同一の上位項目Ｗ，Ｘ，Ｙ，Ｚが関連づけられた商品名ａ，ｂ，ｃ（関係項目）の一部のみに関係する顧客識別番号３，５，８，・・・、及び、同一の上位項目Ｗ，Ｘ，Ｙ，Ｚが関連づけられた商品名ａ，ｂ，ｃ（関係項目）のいずれにも関係しない顧客識別番号１０に、当該商品名ｄ（関係項目）を関連づけたデータである。第三データテーブルは記憶部１０１ｂに記憶されており、演算部１０１ａは、検索用プログラムを実行して第三データテーブルから検索を行うことができる。
【００３８】
図８は、本実施形態１におけるＡＮＤ条件での検索処理の流れを示すフローチャートである。
例えば、商品名ａと商品名ｂのＡＮＤ条件で両商品を購入したことのある顧客識別番号を検索する場合を考える。入力装置１０３，１０４をユーザーが操作するなどして、ＡＮＤ条件で検索する商品名ａと商品名ｂが入力された場合（Ｓ１）、演算部１０１ａは、検索用プログラムを実行し、まず、図４に示す表のような関連づけがなされた第一データとしての第一データテーブルを参照し（Ｓ２）、商品名ａと商品名ｂの２つの商品名をグループ化した上位項目が存在するか否かを判断する（Ｓ３）。この第一データテーブルは、記憶部１０１ｂに記憶されている。
【００３９】
ここでは、商品名ａと商品名ｂの２つの商品名をグループ化した上位項目Ｗが存在するので（Ｓ３のＹｅｓ）、演算部１０１ａは、図６に示す第二データテーブルの全体から、当該上位項目Ｗに関連づけられた顧客識別番号を検索する（Ｓ４）。そして、その検索結果に係る顧客識別番号６を出力する（Ｓ６）。この出力は、検索結果に係る顧客識別番号そのものをモニター１０２に表示させるものでもよいが、例えば、顧客識別番号６に関連づけれた各種顧客情報（性別、年齢層など）を別のデータテーブルから読み出しあるいはそれらの読み出した結果に様々な分析や加工を加えてうえでモニター１０２に表示させるなど、検索結果に関連づけられた他の情報を出力するものであってもよい。また、出力方法は、モニター１０２に表示する方法に限らず、例えば、通信部からネットワークを通じて外部装置へ送信する方法や、コンピュータ内部の記憶装置に記録させる方法などの他の出力方法であってもよい。
【００４０】
一方で、もし商品名ａと商品名ｂの２つの商品名をグループ化した上位項目が存在しない場合には（Ｓ３のＮｏ）、演算部１０１ａは、図７に示す第三データテーブルの全体から、当該２つの商品名ａと商品名ｂに関連づけられた顧客識別番号をＡＮＤ条件で検索し（Ｓ５）、その検索結果を出力することになる（Ｓ６）。
【００４１】
本実施形態１によれば、指定された２つの商品名ａと商品名ｂ（関係項目）の全部が上位項目Ｗに関連づけられた２つの商品名ａ，ｂと一致する場合には、図６に示す第二データテーブルに対し、その上位項目Ｗに関連づけられた顧客識別番号（検索対象項目）を検索するだけで（第三データテーブルに対する検索処理を行わずに）、検索処理を完了する。第二データテーブルは、上位項目Ｗ，Ｘ，Ｙ，Ｚが関連づけられた２以上の商品名の全部に関係する顧客識別番号しか含まない。したがって、図３に示す表のようなデータテーブルに対して検索処理を行う従来の場合はもとより、図５に示す表のようなデータテーブルに対して検索処理を行う場合よりも、検索するレコード数が少なくて済み、検索処理速度を高速化できる。
【００４２】
また、指定された２つの商品名ａと商品名ｂ（関係項目）の全部が上位項目Ｗに関連づけられた２つの商品名ａ，ｂと一致しない場合には、図７に示す第三データテーブルに対し、その２つの商品名ａと商品名ｂに関連づけられた顧客識別番号（検索対象項目）を検索するだけで（第二データテーブルに対する検索処理を行わずに）、検索処理を完了する。第三データテーブルは、第二データテーブルに含まれている関連性をもった顧客識別番号（検索対象項目）と商品名（関係項目）とが関連づけられたレコードを含まないので、そのレコード数は少なく、検索処理速度を高速化できる。
【００４３】
このように、いずれの場合であってもＡＮＤ条件の検索処理が高速化するので、本実施形態１に係るデータ構造をもったデータベースを用いた場合の検索処理速度の期待値を向上させることができる。
【００４４】
特に、本実施形態１によれば、検索の際にＡＮＤ条件で指定される頻度が高いと見込まれる２つ以上の商品名（関係項目）を上位項目に適切に関連づけることで、第二データテーブルに対する検索処理の実行頻度を高めることができる。第二データテーブルに対する検索処理（Ｓ４）は、単一条件での検索処理であるため、レコード数が同じである場合でさえも、ＡＮＤ条件での検索を行う第三データテーブルに対する検索処理（Ｓ５）よりも高速な検索が可能である。したがって、検索処理速度の期待値は、より一層向上する。
【００４５】
また、本実施形態１においては、上述したデータ構造をもつデータベースを用いることで、１つの商品名（関係項目）に関係する顧客識別番号を単一条件で検索する検索処理についても、同様に、検索処理速度が向上する。
【００４６】
図９は、本実施形態１における単一条件での検索処理の流れを示すフローチャートである。
例えば、商品名ａの単一条件で、その商品を購入したことのある顧客識別番号を検索する場合を考える。入力装置１０３，１０４をユーザーが操作するなどして商品名ａが入力された場合（Ｓ１１）、演算部１０１ａは、検索用プログラムを実行し、まず、図４に示す記憶部１０１ｂ内の第一データテーブルを参照し（Ｓ１２）、商品名ａに関連づけられた上位項目が存在するか否かを判断する（Ｓ１３）。
【００４７】
ここでは、商品名ａに関連づけられている上位項目Ｗ，Ｘ，Ｚが存在するので（Ｓ１３のＹｅｓ）、演算部１０１ａは、図６に示す第二データテーブルの全体から、これらの上位項目Ｗ，Ｘ，Ｚに関連づけられた顧客識別番号をＯＲ条件で検索する（Ｓ１４）。ただし、商品名ａが関連づけられている上位項目が１つだけしか存在しない場合には、演算部１０１ａは、第二データテーブルの全体から、当該１つの上位項目に関連づけられた顧客識別番号を単一条件で検索することになる。更に、演算部１０１ａは、図７に示す第三データテーブルについても、商品名ａに関連づけられた顧客識別番号を単一条件で検索する（Ｓ１５）。そして、これらの検索結果に係る顧客識別番号１，２，４，５，６を出力する（Ｓ１６）。
【００４８】
一方で、もし商品名ａに関連づけられた上位項目が存在しない場合には（Ｓ１３のＮｏ）、演算部１０１ａは、図７に示す第三データテーブルの全体から、商品名ａに関連づけられた顧客識別番号を単一条件で検索し（Ｓ１５）、その検索結果に係る顧客識別番号を出力する（Ｓ１６）。
【００４９】
本実施形態１によれば、指定された１つの商品名ａ（関係項目）に関連づけられた上位項目が存在しない場合には、図７に示す第三データテーブルに対し、その１つの商品名ａに関連づけられた顧客識別番号（検索対象項目）を単一条件で検索するだけで（第二データテーブルに対する検索処理を行わずに）、検索処理を完了する。第三データテーブルは、上述したように、第二データテーブルに含まれている関連性をもった顧客識別番号（検索対象項目）と商品名（関係項目）とが関連づけられたレコードを含まないので、図３に示す表のようなデータテーブルに対して検索処理を行う従来の場合はもとより、図５に示す表のようなデータテーブルに対して検索処理を行う場合よりも、検索するレコード数が少なくて済み、検索処理速度を高速化できる。
【００５０】
また、指定された１つの商品名ａ（関係項目）に関連づけられた上位項目が存在する場合には、図６に示す第二データテーブルと図７に示す第三データテーブルの両方に対して検索処理を行うことになる。このときのレコード数の合計は、図３に示す表のようなデータテーブルに対して検索処理を行う従来の場合と比較すると少ないので検索処理速度を高速化できるが、図５に示す表のようなデータテーブルに対して検索処理を行う場合と比較すると、レコード数は同じであり、レコード数の減少による検索処理速度の高速化を図ることはできない。
【００５１】
ただし、図５に示す表のようなデータテーブルに対して検索処理を行う場合には、ＯＲ条件の項目数が、上位項目Ｗ，Ｘ，Ｚと商品名ａの合計４つであるのに対し、本実施形態１の場合のＯＲ条件の項目数は、図６に示す第二データテーブルに対する検索処理の際の上位項目Ｗ，Ｘ，Ｚの３つである。したがって、本実施形態１の場合に必要となるＯＲ条件での検索処理（図６に示す第二データテーブルに対する検索処理）は、図５に示す表のようなデータテーブルに対するＯＲ条件での検索処理と比べて、ＯＲ条件の項目数が少なく、かつ、ＯＲ条件で検索するレコード数も少ない。ＯＲ条件の項目数が少ないほどＯＲ条件での検索処理時間の増加（オーバーヘッド）が少なくて済み、また、ＯＲ条件で検索するレコード数が少ないほどＯＲ条件でのオーバーヘッドが少なくて済む。よって、本実施形態１によれば、図５に示す表のようなデータテーブルに対して検索処理を行う場合と比較しても、検索処理速度を高速化できる。
【００５２】
更に、本実施形態１においては、上述したデータ構造をもつデータベースを用いることで、２つ以上の商品名（関係項目）に関係する顧客識別番号をＯＲ条件で検索する検索処理についても、同様に、検索処理速度が向上する。
【００５３】
図１０は、本実施形態１におけるＯＲ条件での検索処理の流れを示すフローチャートである。
例えば、商品名ａと商品名ｂのＯＲ条件でいずれかの商品を購入したことのある顧客識別番号を検索する場合を考える。入力装置１０３，１０４をユーザーが操作するなどして、ＯＲ条件で検索する商品名ａと商品名ｂが入力された場合（Ｓ２１）、演算部１０１ａは、検索用プログラムを実行し、まず、図４に示す記憶部１０１ｂ内の第一データテーブルを参照して（Ｓ２２）、商品名ａ又は商品名ｂに関連づけられた上位項目が存在するか否かを判断する（Ｓ２３）。
【００５４】
ここでは、商品名ａに関連づけられている上位項目としてＷ，Ｘ，Ｚが存在し、商品名ｂに関連づけられている上位項目としてＷ，Ｙ，Ｚが存在するので（Ｓ２３のＹｅｓ）、演算部１０１ａは、図６に示す第二データテーブルの全体から、これらの上位項目Ｗ，Ｘ，Ｙ，Ｚに関連づけられた顧客識別番号をＯＲ条件で検索する（Ｓ２４）。ただし、商品名ａ又は商品名ｂが関連づけられている上位項目が１つだけしか存在しない場合には、演算部１０１ａは、第二データテーブルの全体から、当該１つの上位項目に関連づけられた顧客識別番号を単一条件で検索することになる。更に、演算部１０１ａは、図７に示す第三データテーブルについても、商品名ａと商品名ｂに関連づけられた顧客識別番号をＯＲ条件で検索する（Ｓ２５）。そして、これらの検索結果に係る顧客識別番号を出力する（Ｓ２６）。
【００５５】
一方で、もし商品名ａ又は商品名ｂに関連づけられた上位項目が存在しない場合には（Ｓ２３のＮｏ）、演算部１０１ａは、図７に示す第三データテーブルの全体から、商品名ａと商品名ｂに関連づけられた顧客識別番号をＯＲ条件で検索する（Ｓ２５）。そして、これらの検索結果に係る顧客識別番号を出力する（Ｓ２６）。
【００５６】
本実施形態１によれば、指定された２つの商品名ａ又は商品名ｂ（関係項目）に関連づけられた上位項目が存在しない場合には、図７に示す第三データテーブルに対し、その２つの商品名ａと商品名ｂに関連づけられた顧客識別番号（検索対象項目）をＯＲ条件で検索するだけで（第二データテーブルに対する検索処理を行わずに）、検索処理を完了する。第三データテーブルは、上述したように、第二データテーブルに含まれている関連性をもった顧客識別番号（検索対象項目）と商品名（関係項目）とが関連づけられたレコードを含まないので、図３に示す表のようなデータテーブルに対して検索処理を行う従来の場合はもとより、図５に示す表のようなデータテーブルに対して検索処理を行う場合よりも、検索するレコード数が少なくて済み、また、ＯＲ条件の項目数も少なくて済むので、検索処理速度を高速化できる。
【００５７】
また、指定された２つの商品名ａ又は商品名ｂ（関係項目）に関連づけられた上位項目が存在する場合には、図６に示す第二データテーブルと図７に示す第三データテーブルの両方に対して検索処理を行うことになる。このときのレコード数の合計は、図３に示す表のようなデータテーブルに対して検索処理を行う従来の場合と比較すると少ないので検索処理速度を高速化できるが、図５に示す表のようなデータテーブルに対して検索処理を行う場合と比較すると、レコード数は同じであり、レコード数の減少による検索処理速度の高速化を図ることはできない。
【００５８】
ただし、図５に示す表のようなデータテーブルに対して検索処理を行う場合には、ＯＲ条件の項目数が、上位項目Ｗ，Ｘ，Ｙ，Ｚと商品名ａ，ｂの合計６つであるのに対し、本実施形態１の場合のＯＲ条件の項目数は、図６に示す第二データテーブルに対する検索処理の際の上位項目Ｗ，Ｘ，Ｙ，Ｚの４つと、図７に示す第三データテーブルに対する検索処理の際の商品名ａ，ｂの２つである。本実施形態１の場合に必要となるＯＲ条件での検索処理は、図５に示す表のようなデータテーブルに対するＯＲ条件での検索処理と比べて、個々の検索処理におけるＯＲ条件の項目数が少なく、かつ、個々の検索処理でＯＲ条件で検索するレコード数も少ない。ＯＲ条件の項目数が少ないほどＯＲ条件での検索処理時間の増加（オーバーヘッド）が少なくて済み、また、ＯＲ条件で検索するレコード数が少ないほどＯＲ条件でのオーバーヘッドが少なくて済むので、本実施形態１によれば、図５に示す表のようなデータテーブルに対して検索処理を行う場合と比較しても、検索処理速度を高速化できる。
【００５９】
以上のように、本実施形態１によれば、図３に示す表のようなデータテーブルに対して検索処理を行う従来の場合はもとより、図５に示す表のようなデータテーブルに対して検索処理を行う場合と比較しても、単一条件、ＡＮＤ条件、ＯＲ条件のいずれの条件での検索処理速度についても高速化することが可能である。
【００６０】
なお、本実施形態１においては、図４で示したように、所定の２つ以上の商品名（関係項目）を上位項目にグループ化するが、そのグループ化の条件（上位項目作成条件）は適宜設定することができる。例えば、２つ以上の商品名（関係項目）の全部に関係している顧客識別番号（検索対象項目）の数が所定数以上存在する場合に（あるいはデータ蓄積の進行に伴って一定数以上になった時点で）、当該２つ以上の商品名（関係項目）を上位項目にグループ化するという条件としてもよい。この場合、図６に示す第二データテーブルに登録されるレコード数が、図７に示す第三データテーブルに登録されるレコード数に対して相対的に増えることで、より高速な検索処理が実現可能となる。また、例えば、過去の検索処理における指定された商品名（関係項目）の履歴などから、今後に指定される２つ以上の商品名（関係項目）のＡＮＤ条件を見込み（推定し）、今後ＡＮＤ条件で検索される頻度が高いと推定される２つ以上の商品名（関係項目）を上位項目にグループ化するという条件としてもよい。この場合、図６に示す第二データテーブルのみを用いた検索処理（図７に示す第三データテーブルを用いない検索処理）の頻度が増える結果、ＡＮＤ条件での検索処理速度の高速化を図ることができる。
【００６１】
また、本実施形態１は、指定される２つ以上の商品名（関係項目）がＡＮＤ条件で検索されるときの検索処理速度を高速化する例であったが、指定される２つ以上の商品名（関係項目）がＯＲ条件で検索されるときの検索処理速度を高速化することも可能である。この場合、第二データテーブルは、例えば、第一データテーブルにおいて同一の上位項目に関連づけられた２つ以上の商品名（関係項目）の少なくとも１つに関係する検索対象項目を含むように構築すればよい。
【００６２】
次に、本実施形態１におけるデータ構造をもったデータベースの更新方法（製造方法）について説明する。
本実施形態１のようにスーパーや百貨店などの店舗において顧客の商品購入履歴を管理するためのデータベースは、新たなデータが日々追加されていき、また必要に応じて古いデータが日々削除されていく。本実施形態１では、ユーザーが入力装置１０３，１０４を用いた手入力により顧客識別番号とその顧客が購入した商品名とを入力することで、図６に示す第二データテーブルや図７に示す第三データテーブルが更新される。新たなデータの入力方法は、このような手入力に限らず、例えば、顧客識別番号とその顧客が購入した商品名とのデータを店舗のレジシステムから送信し、これを情報検索装置１００の通信部で受信することで、入力する方法であってもよい。なお、入力タイミングは、例えば、１件の新規データが発生するたびに入力するようにしてもよいし、複数件の新規データを定期的に入力するようにしてもよい。
【００６３】
図１１は、本実施形態１におけるデータベースの更新処理の流れを示すフローチャートである。
データベースの製造装置として機能する情報検索装置１００に対し、新規のデータが入力されると（Ｓ３１）、演算部１０１ａは、データベース製造用プログラムを実行して、追加手段として機能し、新規のデータを記憶部１０１ｂ内のデータベースに追加する追加工程を実施する。そして、所定の２つ以上の商品名（関係項目）を上位項目にグループ化するための上位項目作成条件を満たすことになったか否かを判断する（Ｓ３２）。この上位項目作成条件は、上述したように、適宜設定することができる。このとき、新規のデータ入力によって上位項目作成条件を満たすことにはならなかった場合には（Ｓ３２のＮｏ）、演算部１０１ａは、更新手段として機能し、新規のデータ入力によって新たに既存の上位項目に関連付けられることになった顧客識別番号のレコードを新たに図６に示す第二データテーブルに追加する更新処理（更新工程）を行うとともに（Ｓ３５）、第二データテーブルに追加した分を図７に示す第三データテーブルから削除する更新処理（更新工程）を行う（Ｓ３６）。また、新規のデータ入力によって新たに既存の上位項目に関連付けられない顧客識別番号のレコードについては、図７に示す第三データテーブルに追加する更新処理（更新工程）を行う（Ｓ３６）。
【００６４】
一方、新規のデータ入力によって上位項目作成条件を満たすことになった場合（Ｓ３２のＹｅｓ）、当該上位項目作成条件に対応する新たな上位項目を作成する（Ｓ３３）。例えば、上位項目作成条件が、２つ以上の商品名（関係項目）の全部に関係している顧客識別番号（検索対象項目）の数が所定数以上存在するという条件であった場合、新規のデータ入力によって当該顧客識別番号（検索対象項目）の数が所定数以上に達したら、新たな上位項目を作成して、当該２つ以上の商品名（関係項目）を当該新たな上位項目でグループ化する。そして、当該２つ以上の商品名（関係項目）に対し、当該新たな上位項目を関連づけたレコードを、図４に示す第一データベースに追加する更新処理（更新工程）を実行する（Ｓ３４）。
【００６５】
続いて、新規のデータ入力によって新たに既存の上位項目又は前記新たな上位項目に関連付けられることになった顧客識別番号のレコードを新たに図６に示す第二データテーブルに追加する更新処理を行うとともに（Ｓ３５）、第二データテーブルに追加した分を図７に示す第三データテーブルから削除する更新処理を行う（Ｓ３６）。また、新規のデータ入力によって新たに既存の上位項目又は前記新たな上位項目に関連付けられない顧客識別番号のレコードについては、図７に示す第三データテーブルに追加する更新処理を行う（Ｓ３６）。
【００６６】
以上のようなデータベースの更新処理を実行することにより、上位項目に適切をグループ化された最新のデータを上述したデータテーブル別で管理されたデータベースを用いて、検索処理を行うことができる。しかも、本実施形態１では、新規のデータ入力によって上位項目作成条件を満たすことになった場合には、新たな上位項目が作成され、当該新たな上位項目を含むデータベースに更新される。これにより、最新のデータを適切な上位項目でグループ化し、上述したデータテーブル別で管理されたデータベースを用いた検索処理が実現される。
【００６７】
〔変形例〕
次に、上述した実施形態１におけるデータベースのデータ構造の一変形例について説明する。
図１２は、本変形例における情報検索装置１００が用いるデータベースの第四データとしての第四データテーブルのデータ構造を示す説明図である。
本変形例では、２つ以上の上位項目Ｗ，Ｘ，Ｙを同一の第二上位項目αでグループ化し、これらの上位項目Ｗ，Ｘ，Ｙと第二上位項目αとを関連づけた第四データテーブルを作成して記憶部１０１ｂに記憶している。なお、第二上位項目αが上位項目Ｗ，Ｘ，Ｙを介して関連づけられる商品名はａ，ｂ，ｃであり、上述した実施形態１における上位項目Ｚと同じである。本変形例では、上位項目Ｚは作成されていない。
【００６８】
図１３は、本変形例における情報検索装置１００が用いるデータベースの第五データとしての第五データテーブルのデータ構造を示す説明図である。
図１３に示す第五データテーブルは、第二上位項目αが上位項目Ｗ，Ｘ，Ｙを介して関連づけられた商品名ａ，ｂ，ｃ（関係項目）に関係する顧客識別番号１，９に、当該第二上位項目αを関連づけたデータである。第五データテーブルは記憶部１０１ｂに記憶されており、演算部１０１ａは、検索用プログラムを実行して第五データテーブルから検索を行うことができる。
【００６９】
図１４は、本変形例における情報検索装置１００が用いるデータベースの第一データテーブルのデータ構造を示す説明図である。
図１４に示す第一データテーブルは、上位項目Ｗ，Ｘ，Ｙが関連づけられた商品名ａ，ｂ，ｃ（関係項目）に、当該上位項目Ｗ，Ｘ，Ｙを関連づけたデータである。本変形例の第一データテーブルは、上述した実施形態１の図４に示した第一データテーブルから上位項目Ｚに対応するレコードが除外されたものに相当する。
【００７０】
図１５は、本変形例における情報検索装置１００が用いるデータベースの第二データテーブルのデータ構造を示す説明図である。
図１５に示す第二データテーブルは、上位項目Ｗ，Ｘ，Ｙが関連づけられた商品名ａ，ｂ，ｃ（関係項目）に関係する顧客識別番号２，４，６，７，・・・に、当該上位項目Ｗ，Ｘ，Ｙを関連づけたデータである。本変形例の第二データテーブルは、上述した実施形態１の図６に示した第二データテーブルから上位項目Ｚに対応するレコードが除外されたものに相当する。
【００７１】
本変形例における検索処理の基本的な流れは上述した実施形態１と同様である。つまり、検索する商品名が入力された場合、演算部１０１ａは、検索用プログラムを実行し、まず、図１４に示す第一データテーブルを参照し、指定された商品名に対応する上位項目が存在するか否かを判断する。ただし、指定された商品名に対応する上位項目が存在する場合には、更に、図１２に示す第四データテーブルを参照し、指定された商品名に対応する上位項目についての第二上位項目が存在するか否かを判断することになる。そして、この判断で第二上位項目が存在するとされた場合には、演算部１０１ａは、図１３に示す第五データテーブルの全体から、当該第二上位項目に関連づけられた顧客識別番号を検索することになる。
【００７２】
本変形例のデータベースでは、上述した実施形態１よりも更にデータテーブルを細分化（階層化）して管理することにより、個々のデータテーブルのレコード数を削減して、検索処理を高速化できる。また、本変形例によれば、上述した実施形態１よりも検索時のＯＲ条件の項目数を更に削減して、検索処理を高速化することが可能となる。更に、本変形例によれば、ＡＮＤ条件での検索処理において、指定されたすべての商品名が第二上位項目に関連づけられている場合、図１３に示す第五データテーブルに対して、当該第二上位項目に関連づけられた顧客識別番号（検索対象項目）を単一条件で検索するだけで、検索処理を完了することができ、特に高速な検索処理が実現される。
【００７３】
なお、本変形例のようにグループ化の階層が複数段にわたる場合には、検索処理においては、図１６に示すようなデータテーブルを利用するようにしてもよい。図１６に示すデータテーブルは、検索されるデータテーブルと階層とを関連づけたものであり、階層の数字が大きいほど、より上の上位項目と検索対象項目とを関連づけたデータテーブルであることを示している。
【００７４】
図１６のようなデータテーブルを利用することは、特に新規データの追加によるデータベースの更新時に特にメリットがある。具体的には、新規データの追加により上位項目作成条件に応じて新たな上位項目あるいは新たな第二上位項目が増えていくと、上位項目と検索対象項目とを関連づけた第二データテーブルや、第二上位項目と検索対象項目とを関連づけた第五データテーブルのレコード数が増大してく。その結果、これらのデータテーブルに対する検索処理時のレコード数が増えて検索処理の時間がかかるようになってくる。このような場合には、２つ以上の第二上位項目を更に第三の上位項目でグループ化し、これらの第二上位項目と第三上位項目とを関連づけた新たなデータテーブル（第六テーブル）を作成するとともに、第三上位項目が第二上位項目を介して関連づけられた関係項目に関係する検索対象項目に、当該第三上位項目を関連づけた新たなデータテーブル（第六テーブル）を作成するのが有効である。
【００７５】
このように新たなデータテーブルを増やす場合、通常は、これに対応して検索用プログラムの内容を変更することが必要になるが、図１６に示すようなデータテーブルを利用することで、検索用プログラムの内容変更を伴わずに、新たなデータテーブルを増やすことが可能となる。すなわち、検索用プログラムが図１６に示すようなデータテーブルを参照してデータベースのデータ構造を特定するプログラム内容とすることで、新たなデータテーブルが増えたときに図１６に示すデータテーブルを更新するようにすれば、検索用プログラムの内容を変えずに、新たに増えたデータテーブルも利用した検索処理が可能となる。
【００７６】
次に、本実施形態１における効果確認試験について説明する。
図１７は、本効果確認試験における、顧客識別番号（検索対象項目）と、その顧客が過去に購入した商品の商品名（関係項目）との関係をまとめた表の一例である。
本効果確認試験は、商品名（関係項目）が商品名ａと商品名ｂの２つであり、顧客識別番号（検索対象項目）が１〜６００００の６万個であり、商品名ａは顧客識別番号１〜４００００の４万個に関連づけられており、商品名ｂは顧客識別番号２０００１〜６００００の４万個に関連づけられている例で行った。また、本効果確認試験では、２つの商品名ａ，ｂ（関係項目）を上位項目Ｗにグループ化した。
【００７７】
図１８は、本効果確認試験における商品名ａ，ｂ（関係項目）と上位項目Ｗとを関連づけた第一データテーブルであり、上述した実施形態１における図４に示す第一データテーブルに相当する。
図１９は、本効果確認試験における、顧客識別番号１〜６００００（検索対象項目）と、商品名ａ，ｂ（関係項目）又は上位項目Ｗとの関係をまとめたデータテーブルであり、図５に示す表のデータテーブルに相当する。
図２０は、顧客識別番号１〜６００００（検索対象項目）のうち、上位項目Ｗが関連づけられた２つの商品名ａ，ｂ（関係項目）の全部に関係する顧客識別番号２０００１〜４００００に、当該上位項目Ｗを関連づけたデータであり、上述した実施形態１における図６に示す第二データテーブルに相当する。
図２１は、顧客識別番号１〜６００００（検索対象項目）のうち、同一の上位項目Ｗに関連づけられている商品名ａ，ｂ（関係項目）の一部のみに関係する顧客識別番号１〜２００００，４０００１〜６００００、及び、同一の上位項目Ｗが関連づけられた商品名ａ，ｂ（関係項目）のいずれにも関係しない顧客識別番号に、ａ，ｂ以外の商品名（関係項目）を関連づけたデータ（ただし、本例ではそのようなデータは存在しない。）であり、上述した実施形態１における図７に示す第三データテーブルに相当する。
【００７８】
本効果確認試験では、図１７に示す表のようなデータテーブルに対して検索処理を行うケース１と、図１９に示すデータテーブルに対して検索処理を行うケース２と、図２０及び図２１に示す２つのデータテーブルに対して検索処理を行うケース３（実施形態１）との比較試験を行った。
本効果確認試験では、商品名ａに関係する顧客識別番号を検索し、その件数を出力する単一条件の検索条件（１）と、商品名ａ又は商品名ｂに関係する顧客識別番号を検索し、その件数を出力するＯＲ条件の検索条件（２）と、商品名ａ及び商品名ｂに関係する顧客識別番号を検索し、その件数を出力するＡＮＤ条件の検索条件（３）とを行った。そして、いずれの検索条件（１）〜（３）も、それぞれ１００回連続で繰り返し行ったときの時間を検索時間として計測した。
【００７９】
なお、本効果確認試験のその他の主な条件は以下のとおりである。
情報検索装置：富士通SELSIUS W510
ＯＳ：Windows10
ＤＢＭＳ：MySQL Server 5.1.40-community
【００８０】
本効果確認試験の結果は、下記の表４に示すとおりである。
【表４】
2018195165.tif 000006
【００８１】
いずれの検索条件（１）〜（３）であっても、ケース２及びケース３では、ケース１よりも検索時間が短縮されている。これは、ケース１では図１７に示すデータテーブルのレコード数の８万個であるのに対し、ケース２では図１９に示すデータテーブルのレコード数の６万個、ケース３では図２０及び図２１に示す２つのデータテーブルのレコード数を合わせても６万個であり、主に、検索するレコード数の削減による効果であると言える。
【００８２】
また、検索条件（１）の場合、ケース２では、図１８に示す第一データテーブルを参照して、図１９に示すデータテーブルに対して商品名ａと上位項目ＸのＯＲ条件での検索処理を行う。これに対し、ケース３では、図１８に示す第一データテーブルを参照して、図２０に示す第二データテーブルに対して上位項目Ｘの単一条件での検索処理を行うとともに、図２１に示す第三データテーブルに対して商品名ａの単一条件での検索処理を行う。
【００８３】
このように、検索条件（１）の場合、ケース２とケース３とでは、検索するレコード数はいずれも６万個であるが、ケース２ではＯＲ条件での検索処理を行う結果、ＯＲ条件のオーバーヘッドが生じるのに対し、ケース３ではＯＲ条件のオーバーヘッドが生じない。これがケース２よりもケース３の方が検索時間を短縮できている理由の１つであると考えられる。
【００８４】
また、検索条件（２）の場合、ケース２では、図１８に示す第一データテーブルを参照して、図１９に示すデータテーブルに対して商品名ａと商品名ｂと上位項目ＸのＯＲ条件での検索処理を行う。これに対し、ケース３では、図１８に示す第一データテーブルを参照して、図２０に示す第二データテーブルに対して上位項目Ｘの単一条件での検索処理を行うとともに、図２１に示す第三データテーブルに対して商品名ａと商品名ｂのＯＲ条件での検索処理を行う。
【００８５】
このように、検索条件（２）の場合、ケース２とケース３とでは、検索するレコード数はいずれも６万個であり、ともにＯＲ条件での検索処理を行うため、ＯＲ条件のオーバーヘッドが生じる。ただし、ケース３では、ＯＲ条件の検索処理を行う第三データテーブルのレコード数が４万個であり、ケース２がＯＲ条件の検索処理を行うデータテーブルのレコード数（６万個）よりも少ない。更に、ケース３では、ＯＲ条件の項目数が商品名ａと商品名ｂの２項目であり、ＯＲ条件の項目数が商品名ａと商品名ｂと上位項目Ｘの３項目であるケース２よりも少ない。これらの理由から、ケース２よりもケース３の方が検索時間を短縮できていると考えられる。
【００８６】
また、検索条件（３）の場合、ケース２では、図１８に示す第一データテーブルを参照して、図１９に示すデータテーブルに対して上位項目Ｘの単一条件での検索処理を行う。これに対し、ケース３では、図１８に示す第一データテーブルを参照して、図２０に示す第二データテーブルに対して上位項目Ｘの単一条件での検索処理を行い、図２１に示す第三データテーブルに対する検索処理は行わない。
【００８７】
このように、検索条件（３）の場合、ケース２では、単一条件で検索するレコード数が６万個であるが、ケース３では、単一条件で検索するレコード数が２万個で済む。これがケース２よりもケース３の方が検索時間を大幅に短縮できている理由の１つであると考えられる。
【００８８】
上述したケース２によれば、ケース１と比べて、検索するレコード数が常に３／４（＝６００００／８００００）と少ないものとなる。したがって、ケース２は、ケース１と比べて、理論的には検索時間が約３／４になる。
【００８９】
一方、ケース３の場合は、検索条件によって検索するレコード数が変わってくるので、検索時間の短縮効果も検索条件によって変わってくる。
【００９０】
例えば、図１８に示す第一データテーブルを参照して、図２０に示す第二データテーブルを検索する必要がない検索条件である場合がある。この場合、図２１に示す第三データテーブルだけを検索すればよく、検索するレコード数は、図２１に示す第三データテーブルのレコード数である４万個となり、ケース２と比べても検索時間は理論上２／３（＝４００００／６００００）となる。
【００９１】
一方、例えば、図１８に示す第一データテーブルを参照して、図２１に示す第三データテーブルを検索する必要がない検索条件である場合がある。この場合、図２０に示す第二データテーブルだけを検索すればよく、検索するレコード数は、図２０に示す第二データテーブルのレコード数である２万個となり、ケース２と比べても検索時間は理論上１／３（＝２００００／６００００）となる。
【００９２】
他方、例えば、図１８に示す第一データテーブルを参照して、図２０に示す第二データテーブルも図２１に示す第三データテーブルも検索する必要がある場合がある。この場合、検索するレコード数は、ケース２と同じ６万個となり、検索時間は理論上ケース２と同じとなる。しかしながら、検索時のＯＲ条件によるオーバーヘッドはケース２よりケース３の方が少ないため、レコード数が同じ場合であっても、ケース２よりケース３の検索時間が短くなることが実験から確認された。
【００９３】
〔実施形態２〕
次に、本発明の他の実施形態（以下、本実施形態を「実施形態２」という。）について、説明する。
本実施形態２も、前記実施形態１と同様、スーパーや百貨店などの店舗において顧客の商品購入履歴を管理するためのデータベースを用いるが、複数の顧客識別番号（関係項目）の中から指定された顧客識別番号に関連付けられた商品名（当該顧客が購入した商品）（検索対象項目）を、複数の商品名の中からコンピュータによって検索する検索処理を行う例である。したがって、前記実施形態１の例とは、関係項目と検索対象項目との関係が逆の関係になっている。以下、本実施形態２の説明は、前記実施形態１と異なる点を中心に説明する。
【００９４】
本実施形態２の説明は、上述した実施形態１の効果確認試験で用いた図１７〜図２１を参照して行う。
すなわち、本実施形態２は、商品名（検索対象項目）が商品名ａと商品名ｂの２つであり、顧客識別番号（関係項目）が１〜６００００の６万個であり、商品名ａは顧客識別番号１〜４００００の４万個に関連づけられており、商品名ｂは顧客識別番号２０００１〜６００００の４万個に関連づけられている例である。また、本実施形態２では、２つの商品名ａ，ｂ（検索対象項目）が上位項目Ｗにグループ化されている。本実施形態２で用いるデータテーブルは、図２０に示すデータテーブル（以下「第六データテーブル」という。）と、図２１に示すデータテーブル（以下「第七データテーブル」という。）である。
【００９５】
図２０に示す第六データテーブルは、上述したとおり、顧客識別番号１〜６００００（関係項目）のうち、上位項目Ｗが関連づけられた２つの商品名ａ，ｂ（検索対象項目）の全部に関係する顧客識別番号２０００１〜４００００に、当該上位項目Ｗを関連づけたデータである。第六データテーブルは記憶部１０１ｂに記憶され、演算部１０１ａは、検索用プログラムを実行して第六データテーブルから検索を行うことができる。
【００９６】
図２１に示す第七データテーブルは、顧客識別番号１〜６００００（関係項目）のうち、第六データテーブルに含まれない顧客識別番号１〜２００００，４０００１〜６００００に、商品名ａ，ｂ（検索対象項目）を関連づけたデータである。第七データテーブルは記憶部１０１ｂに記憶され、演算部１０１ａは、検索用プログラムを実行して第七データテーブルから検索を行うことができる。
【００９７】
図２２は、本実施形態２における単一条件での検索処理の流れを示すフローチャートである。
例えば、顧客識別番号９９９の単一条件で、その顧客識別番号９９９に対応する顧客が購入したことのある商品名を検索する場合を考える。入力装置１０３，１０４をユーザーが操作するなどして顧客識別番号９９９が入力された場合（Ｓ４１）、演算部１０１ａは、検索用プログラムを実行し、まず、図２０に示す第六データテーブルの全体から、顧客識別番号９９９に関連づけられた上位項目Ｗを単一条件で検索する（Ｓ４２）。
【００９８】
ここでは、顧客識別番号９９９が上位項目Ｗに関連づけられていないので、第六データテーブルに対する検索処理では顧客識別番号９９９に関連づけられた上位項目Ｗがヒットしない（Ｓ４３のＮｏ）。そのため、演算部１０１ａは、図２１に示す第七データテーブルの全体から、顧客識別番号９９９に関連づけられた商品名を単一条件で検索する（Ｓ４４）。これにより、顧客識別番号９９９に関連づけられた商品名ａがヒットするので、その検索結果に係る商品名ａを出力する（Ｓ４６）。
【００９９】
一方で、もし顧客識別番号９９９が上位項目Ｗに関連づけられていた場合、第六データテーブルに対する検索処理において、顧客識別番号９９９に関連づけられた上位項目Ｗがヒットする（Ｓ４３のＹｅｓ）。この場合、演算部１０１ａは、図１８に示す第一データテーブルを参照し（Ｓ４５）、上位項目Ｗに関連づけられている商品名ａ，ｂを抽出して、これを検索結果として出力する（Ｓ４６）。
【０１００】
本実施形態２によれば、第六データテーブルに含まれる顧客識別番号（関係項目）と第七データテーブルに含まれる顧客識別番号（関係項目）とが排他的な関係になっている。これにより、指定された１つの顧客識別番号９９９（関係項目）に関連づけられた上位項目が存在する場合には、図２０に示す第六データテーブルに対し、その１つの顧客識別番号９９９に関連づけられた上位項目を単一条件で検索するだけで（第七データテーブルに対する検索処理を行わずに）、検索処理を完了する。第六データテーブルは、第七データテーブルに含まれる顧客識別番号（関係項目）と商品名（検索対象項目）とが関連づけられたレコードを含まないので、検索するレコード数が少なく、検索処理速度を大幅に高速化できる。
【０１０１】
また、指定された１つの顧客識別番号９９９（関係項目）に関連づけられた上位項目が存在しない場合には、図２０に示す第六データテーブルと図２１に示す第七データテーブルの両方に対して検索処理を行うことになる。このときのレコード数の合計は、図１７に示す表のようなデータテーブルに対して検索処理を行う従来の場合と比較すると少ないので検索処理速度を高速化できる。
【０１０２】
なお、本実施形態２では、レコード数が相対的に少ない第六テーブルから先に検索処理を行う例となっているが、第七テーブルから先に検索処理を行うようにしてもよい。この場合には、指定された１つの顧客識別番号９９９（関係項目）に関連づけられた上位項目が存在しないとき、図２１に示す第七データテーブルに対し、その１つの顧客識別番号９９９に関連づけられた商品名を単一条件で検索するだけで（第六データテーブルに対する検索処理を行わずに）、検索処理を完了するので、検索処理速度を大幅に高速化できるようになる。
【０１０３】
次に、本実施形態２における効果確認試験について説明する。
本効果確認試験でも、上述した実施形態１の効果確認試験と同じデータテーブルを用い、図１７に示す表のようなデータテーブルに対して検索処理を行うケース１と、図１９に示すデータテーブルに対して検索処理を行うケース２と、図２０及び図２１に示す２つのデータテーブルに対して検索処理を行うケース３（実施形態２）との比較試験を行った。ただし、本効果確認試験では、前記実施形態１の効果確認試験とは関係項目と検索対象項目との関係が逆の関係になっており、１つの顧客識別番号から商品名を検索し、その件数を出力する単一条件の検索処理を行い、それぞれのケースで、検索処理を１００回連続で繰り返し行ったときの時間を検索時間として計測した。
【０１０４】
ケース２では、ケース１よりも検索時間が短縮された。これは、ケース１では図１７に示すデータテーブルのレコード数の８万個であるのに対し、ケース２では図１９に示すデータテーブルのレコード数の６万個であり、主に、検索するレコード数の削減によって検索処理の高速化が実現される。ケース２によれば、ケース１と比べて、検索するレコード数が３／４（＝６００００／８００００）と少ないものとなる。なお、検索結果を出力する際には、上位項目から商品名を抽出するために図１８に示す第一データテーブルを検索する処理が発生するが、この検索処理時間は相対的には非常に短いため、無視してよい。したがって、ケース２は、ケース１と比べて、理論的には検索時間が約３／４になる。
【０１０５】
一方、ケース３の場合は、検索条件や検索処理手順によって検索するレコード数が変わってくるので、検索時間の短縮効果も検索条件や検索処理手順によって変わってくる。
【０１０６】
まず、図２０に示す第六データテーブルを先に検索する場合を考える。この場合、第六データテーブルを検索してヒットしたときには、図２１に示す第七データテーブルを検索する必要がない。よって、検索するレコード数は、図２０に示す第六データテーブルのレコード数である２万個となり、上位項目から商品名を抽出するために図１８に示す第一データテーブルを検索する処理が必要になるとしても、ケース２と比べて検索時間は理論上１／３（＝２００００／６００００）となる。
【０１０７】
一方、第六データテーブルを検索してヒットしないときには、図２１に示す第七データテーブルも検索する必要がある。よって、検索するレコード数は、図２０に示す第六データテーブルと図２１に示す第七データテーブルのレコード数の合計である６万個となり、ケース２と同じである。よって、検索時間は理論上ケース２と同じとなる。
【０１０８】
この場合のケース２に対するケース３の検索時間の短縮率の期待値は、１／３（第六データテーブルを検索してヒットする場合の確率）×１／３（その場合のケース２に対するケース３の検索時間の理論上の短縮率）＋２／３（第六データテーブルを検索してヒットしない場合の確率）×１（その場合のケース２に対するケース３の検索時間の理論上の短縮率）＝７／９（約７８％）となる。
【０１０９】
次に、図２１に示す第七データテーブルを先に検索する場合を考える。この場合、第七データテーブルを検索してヒットしたときには、図２０に示す第六データテーブルを検索する必要がない。よって、検索するレコード数は、図２１に示す第七データテーブルのレコード数である４万個となり、ケース２と比べて検索時間は理論上２／３（＝４００００／６００００）となる。
【０１１０】
一方、第七データテーブルを検索してヒットしないときには、図２０に示す第六データテーブルも検索する必要がある。よって、検索するレコード数は、図２１に示す第七データテーブルと図２０に示す第六データテーブルのレコード数の合計である６万個となり、ケース２と同じである。よって、検索時間は理論上ケース２と同じとなる。
【０１１１】
この場合のケース２に対するケース３の検索時間の短縮率の期待値は、２／３（第七データテーブルを検索してヒットする場合の確率）×２／３（その場合のケース２に対するケース３の検索時間の理論上の短縮率）＋１／３（第七データテーブルを検索してヒットしない場合の確率）×１（その場合のケース２に対するケース３の検索時間の理論上の短縮率）＝７／９（約７８％）となる。
【０１１２】
本効果確認試験の測定結果では、ケース１が３．１４秒、ケース２が２．３７秒、ケース３が１．８２秒であった。ケース２はケース１に対して検索時間が約７５％となり、ケース１に対して約２５％の高速化が実現された。ケース３はケース２に対して検索時間が約７７％となり、ケース２に対して約２３％の高速化が実現された。これらの実験結果は理論値とほぼ同様の結果である。
【符号の説明】
【０１１３】
１００ 情報検索装置
１０１ａ 演算部
１０１ｂ 記憶部
１０１ 装置本体
１０３，１０４ 入力装置
【図１】
2018195165.tif 000007
【図２】
2018195165.tif 000008
【図３】
2018195165.tif 000009
【図４】
2018195165.tif 000010
【図５】
2018195165.tif 000011
【図６】
2018195165.tif 000012
【図７】
2018195165.tif 000013
【図８】
2018195165.tif 000014
【図９】
2018195165.tif 000015
【図１０】
2018195165.tif 000016
【図１１】
2018195165.tif 000017
【図１２】
2018195165.tif 000018
【図１３】
2018195165.tif 000019
【図１４】
2018195165.tif 000020
【図１５】
2018195165.tif 000021
【図１６】
2018195165.tif 000022
【図１７】
2018195165.tif 000023
【図１８】
2018195165.tif 000024
【図１９】
2018195165.tif 000025
【図２０】
2018195165.tif 000026
【図２１】
2018195165.tif 000027
【図２２】
2018195165.tif 000028
【手続補正書】
【提出日】平成29年11月24日(2017.11.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を、複数の検索対象項目の中からコンピュータによって検索する情報検索装置であって、
前記複数の関係項目のうちの２つ以上の関係項目に同一の上位項目を関連づけた第一データと、
前記複数の検索対象項目のうち、前記同一の上位項目が関連づけられた関係項目に関係する検索対象項目に、該上位項目を関連づけた第二データと、
前記第一データ及び前記第二データでは関連づけられない関係項目と検索対象項目とを関連づけた第三データと、を有するデータ構造をもつデータベースを用い、
前記複数の関係項目の中から１つ以上の関係項目が指定された所定の検索条件での検索を行う場合、前記コンピュータが、前記第一データを参照し、該１つ以上の関係項目のうちの一部又は全部が関連づけられた上位項目が存在すると判断したときは、少なくとも前記第二データを検索し、前記関連づけられた上位項目が存在しないと判断したときは、前記第三データのみを検索することを特徴とする情報検索装置。
【請求項２】
請求項１に記載の情報検索装置において、
前記第一データは、所定の上位項目作成条件を満たす２以上の関係項目に同一の上位項目を関連づけたものであることを特徴とする情報検索装置。
【請求項３】
請求項１又は２に記載の情報検索装置において、
前記データベースは、複数の前記上位項目のうちの２つ以上の上位項目に同一の第二上位項目を関連づけた第四データと、前記複数の検索対象項目のうち、前記同一の第二上位項目が前記上位項目を介して関連づけられた関係項目に関係する検索対象項目に、該第二上位項目を関連づけた第五データとを有し、
前記複数の関係項目の中から２つ以上の関係項目が指定された所定の検索条件での検索を行う場合、前記コンピュータが、前記第四データを参照して、該所定の検索条件に一致する２以上の関係項目が上位項目を介して関連づけられた第二上位項目が存在すると判断したときは、前記第五データを検索することを特徴とする情報検索装置。
【請求項４】
請求項１乃至３のいずれか１項に記載の情報検索装置において、
前記複数の関係項目の中から２つ以上の関係項目が指定された所定の検索条件での検索を行う場合、前記コンピュータが、前記第一データを参照し、該所定の検索条件に一致する２以上の関係項目が関連づけられた上位項目が存在すると判断したときは、前記第二データを検索し、該所定の検索条件に一致する２以上の関係項目が関連づけられた上位項目が存在しないと判断したときは、前記第三データを検索することを特徴とする情報検索装置。
【請求項５】
複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を、複数の検索対象項目の中からコンピュータによって検索する情報検索装置であって、
前記複数の検索対象項目のうちの２つ以上の検索対象項目に関連づけられた上位項目を、該２つ以上の検索対象項目に関係する関係項目に関連づけた第六データと、
前記第六データには含まれない関係項目と該関係項目に関係する検索対象項目とを関連づけた第七データと、
前記複数の検索対象項目のうちの２つ以上の検索対象項目に同一の上位項目を関連づけた第八データと、を有するデータ構造をもつデータベースを用い、
前記コンピュータが、前記第六データを参照して前記指定された関係項目に関連づけられた上位項目が存在すると判断したときは、前記第八データから該上位項目に関連づけられた検索対象項目を抽出して、該検索対象項目を検索結果として出力し、前記第七データを参照して前記指定された関係項目に関係する検索対象項目が存在すると判断したときは、該検索対象項目を検索結果として出力することを特徴とする情報検索装置。
【請求項６】
複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を複数の検索対象項目の中から検索する工程をコンピュータに実行させるための検索用プログラムであって、
前記工程では、前記複数の関係項目のうちの２つ以上の関係項目に同一の上位項目を関連づけた第一データと、前記複数の検索対象項目のうち、前記同一の上位項目が関連づけられた関係項目に関係する検索対象項目に、該上位項目を関連づけた第二データと、前記第一データ及び前記第二データでは関連づけられない関係項目と検索対象項目とを関連づけた第三データとを有するデータ構造をもつデータベースを用い、前記複数の関係項目の中から１つ以上の関係項目が指定された所定の検索条件での検索を行う場合、前記コンピュータに、前記第一データを参照させ、該１つ以上の関係項目のうちの一部又は全部が関連づけられた上位項目が存在すると判断したときは、少なくとも前記第二データを検索させ、前記関連づけられた上位項目が存在しないと判断したときは、前記第三データのみを検索させることを特徴とする検索用プログラム。
【請求項７】
複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を複数の検索対象項目の中から検索する工程をコンピュータに実行させるための検索用プログラムであって、
前記工程では、前記複数の検索対象項目のうちの２つ以上の検索対象項目に関連づけられた上位項目を、該２つ以上の検索対象項目に関係する関係項目に関連づけた第六データと、
前記第六データには含まれない関係項目と該関係項目に関係する検索対象項目とを関連づけた第七データと、
前記複数の検索対象項目のうちの２つ以上の検索対象項目に同一の上位項目を関連づけた第八データと、を有するデータ構造をもつデータベースを用い、前記コンピュータに、前記第六データを参照させて前記指定された関係項目に関連づけられた上位項目が存在すると判断したときは、前記第八データから該上位項目に関連づけられた検索対象項目を抽出させて、該検索対象項目を検索結果として出力させ、前記第七データを参照させて前記指定された関係項目に関係する検索対象項目が存在すると判断したときは、該検索対象項目を検索結果として出力させることを特徴とする検索用プログラム。
【請求項８】
複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を、複数の検索対象項目の中からコンピュータによって検索する情報検索装置に用いられるデータベースであって、前記複数の関係項目のうちの２つ以上の関係項目に同一の上位項目を関連づけた第一データと、前記複数の検索対象項目のうち、前記同一の上位項目が関連づけられた関係項目に関係する検索対象項目に、該上位項目を関連づけた第二データと、前記第一データ及び前記第二データでは関連づけられない関係項目と検索対象項目とを関連づけた第三データと、を有するデータ構造をもつデータベースの更新装置であって、
検索対象項目とこれに関係する関係項目とを追加する追加手段と、
所定の上位項目作成条件を満たす２以上の関係項目に同一の上位項目を関連づけて前記データベースを更新する更新手段とを有することを特徴とするデータベースの更新装置。
【請求項９】
複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を、複数の検索対象項目の中からコンピュータによって検索する情報検索装置に用いられるデータベースであって、前記複数の検索対象項目のうちの２つ以上の検索対象項目に関連づけられた上位項目を、該２つ以上の検索対象項目に関係する関係項目に関連づけた第六データと、前記第六データには含まれない関係項目と該関係項目に関係する検索対象項目とを関連づけた第七データと、前記複数の検索対象項目のうちの２つ以上の検索対象項目に同一の上位項目を関連づけた第八データと、を有するデータ構造をもつデータベースの更新装置であって、
検索対象項目とこれに関係する関係項目とを追加する追加手段と、
所定の上位項目作成条件を満たす２以上の検索対象項目に同一の上位項目を関連づけて前記データベースを更新する更新手段とを有することを特徴とするデータベースの更新装置。
【請求項１０】
複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を、複数の検索対象項目の中からコンピュータによって検索する情報検索装置に用いられるデータベースであって、前記複数の関係項目のうちの２つ以上の関係項目に同一の上位項目を関連づけた第一データと、前記複数の検索対象項目のうち、前記同一の上位項目が関連づけられた関係項目に関係する検索対象項目に、該上位項目を関連づけた第二データと、前記第一データ及び前記第二データでは関連づけられない関係項目と検索対象項目とを関連づけた第三データと、を有するデータ構造をもつデータベースを更新する工程をコンピュータに実行させるためのデータベース更新用プログラムであって、
検索対象項目とこれに関係する関係項目とを追加する追加工程と、
所定の上位項目作成条件を満たす２以上の関係項目に同一の上位項目を関連づけて前記データベースを更新する更新工程とを、前記コンピュータに実行させることを特徴とするデータベース更新用プログラム。
【請求項１１】
複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を、複数の検索対象項目の中からコンピュータによって検索する情報検索装置に用いられるデータベースであって、前記複数の検索対象項目のうちの２つ以上の検索対象項目に関連づけられた上位項目を、該２つ以上の検索対象項目に関係する関係項目に関連づけた第六データと、前記第六データには含まれない関係項目と該関係項目に関係する検索対象項目とを関連づけた第七データと、前記複数の検索対象項目のうちの２つ以上の検索対象項目に同一の上位項目を関連づけた第八データと、を有するデータ構造をもつデータベースを更新する工程をコンピュータに実行させるためのデータベース更新用プログラムであって、
検索対象項目とこれに関係する関係項目とを追加する追加工程と、
所定の上位項目作成条件を満たす２以上の検索対象項目に同一の上位項目を関連づけて前記データベースを更新する更新工程とを、前記コンピュータに実行させることを特徴とするデータベース更新用プログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を、複数の検索対象項目の中からコンピュータによって検索するためのデータベースを用いる情報検索装置及び検索用プログラム、並びに、当該データベースの更新装置及び当該データベース更新用のプログラムに関する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
本発明は、上述した課題に鑑みてなされたものであり、その目的とするところは、検索処理を高速化できる情報検索装置、検索用プログラム、データベースの更新装置、データベース更新用プログラムを提供することである。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
前記目的を達成するために、請求項１の発明は、複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を、複数の検索対象項目の中からコンピュータによって検索する情報検索装置であって、前記複数の関係項目のうちの２つ以上の関係項目に同一の上位項目を関連づけた第一データと、前記複数の検索対象項目のうち、前記同一の上位項目が関連づけられた関係項目に関係する検索対象項目に、該上位項目を関連づけた第二データと、前記第一データ及び前記第二データでは関連づけられない関係項目と検索対象項目とを関連づけた第三データと、を有するデータ構造をもつデータベースを用い、前記複数の関係項目の中から１つ以上の関係項目が指定された所定の検索条件での検索を行う場合、前記コンピュータが、前記第一データを参照し、該１つ以上の関係項目のうちの一部又は全部が関連づけられた上位項目が存在すると判断したときは、少なくとも前記第二データを検索し、前記関連づけられた上位項目が存在しないと判断したときは、前記第三データのみを検索することを特徴とするものである。
本発明は、検索に用いられるデータベースが、上述した第一データ、第二データ及び第三データを含むデータ構造をもつことで、検索処理の高速化を実現するものである。
詳しくは、本発明に係るデータ構造をもったデータベースでは、第一データを参照して、２つ以上の関係項目が関連づけられた上位項目と検索対象項目とが関連づけられた第二データと、第一データ及び第二データでは関連づけられない関係項目と検索対象項目とが関連づけられた第三データとから、指定された関係項目（指定関係項目）に関係する検索対象項目を検索する。
第二データは、２つ以上の関係項目が上位項目にまとめられて検索対象項目と関連づけされたものであるため、第二データ及び第三データの両方を足し合わせたレコード数は、関係項目と検索対象項目との関連のすべてを両者の直接的な対応関係のみで記録した一般的なデータ構造をもつデータベースのレコード数よりも少ない。したがって、本発明に係るデータ構造をもったデータベースを用いた場合、第二データ及び第三データの両方から指定関係項目に関係する検索対象項目を検索するときの検索処理速度は、上述した一般的なデータ構造をもつデータベースを用いた場合よりも高速化できる。
ここで、本発明において特筆すべきは、２つ以上の関係項目が指定された所定の検索条件の検索処理を行う場合に飛躍的な高速化が望める点である。
例えば、第一データにおいて同一の上位項目に関連づけられた２つ以上の関係項目の全部に関係する検索対象項目を第二データに含めた場合、指定された２つ以上の関係項目をＡＮＤ条件で検索する際には、その指定された２つ以上の関係項目が当該同一の上位項目に関連づけられた２つ以上の関係項目と一致するときは、第三データに対する検索を行わずに、その上位項目に関連づけられた検索対象項目を第二データから検索するだけで、検索処理を完了できる。この場合の第二データは、上位項目が関連づけられた２以上の関係項目の全部に関係する検索対象項目しか含まないので、そのレコード数が少なく、その検索処理速度は、一般的なデータ構造をもつデータベースを用いた場合よりも大幅に高速化できる。また、この場合、指定された２つ以上の関係項目が当該同一の上位項目に関連づけられた２つ以上の関係項目と一致しない場合には、第二データに対する検索を行わずに、その指定された２つ以上の関係項目に関連づけられた検索対象項目を第三データからＡＮＤ条件で検索するだけで、検索処理を完了できる。第三データは、第一データ及び第二データでは関連づけられない関係項目と検索対象項目とを関連づけるレコードしか含まないので、そのレコード数は少なく、その検索処理速度は、一般的なデータ構造をもつデータベースを用いた場合よりも、大幅に高速化できる。
また、例えば、第一データにおいて同一の上位項目に関連づけられた２つ以上の関係項目の少なくとも１つに関係する検索対象項目を第二データに含めた場合、指定された２つ以上の関係項目をＯＲ条件で検索する際には、その指定された２つ以上の関係項目が当該同一の上位項目に関連づけられた２つ以上の関係項目に含まれているときは、第三データに対する検索を行わずに、その上位項目に関連づけられた検索対象項目を第二データから検索するだけで、検索処理を完了できる。この場合の第二データは、上位項目が関連づけられた２以上の関係項目の少なくとも１つに関係する検索対象項目しか含まないので、そのレコード数が少なく、その検索処理速度は、一般的なデータ構造をもつデータベースを用いた場合よりも大幅に高速化できる。また、この場合、指定された２つ以上の関係項目のいずれも当該同一の上位項目に関連づけられた２つ以上の関係項目に含まれていない場合には、第二データに対する検索を行わずに、その指定された２つ以上の関係項目に関連づけられた検索対象項目を第三データからＯＲ条件で検索するだけで、検索処理を完了できる。第三データは、第一データ及び第二データでは関連づけられない関係項目と検索対象項目とを関連づけるレコードを含まないので、そのレコード数は少なく、その検索処理速度は、一般的なデータ構造をもつデータベースを用いた場合よりも、大幅に高速化できる。ただし、第一データにおいて同一の上位項目に関連づけられた２つ以上の関係項目の少なくとも１つに関係する検索対象項目をその上位項目と関連づけて記録する第二データのテーブル（以下「テーブルＢ」という。）は、第一データにおいて同一の上位項目に関連づけられた２つ以上の関係項目の全部に関係する検索対象項目をその上位項目と関連づけて記録する第二データのテーブル（以下「テーブルＡ」という。）とは別のテーブルで記録することが望ましい。両者の関連は内容的に異なるにもかかわらず、両者を同一のテーブルに記録するとその差異が区別できなくなるからである。また、第一データにおいて同一の上位項目に関連づけられた２つ以上の関係項目の少なくとも１つに関係する検索対象項目は、当然に第一データにおいて同一の上位項目に関連づけられた２つ以上の関係項目の全部に関係する検索対象項目を包含する。したがって、テーブルＡに記録したレコードはテーブルＢには記録しないようにすることが、データの重複記録防止の観点から望ましい。
このように、上述したような所定の検索条件での検索処理が高速化する結果、本発明に係るデータ構造をもったデータベースを用いた場合の検索処理速度の期待値は、一般的なデータ構造をもつデータベースを用いた場合よりも大幅に向上する。
そして、本発明によれば、このような所定の検索条件を見込んで、上位項目に関連づける２つ以上の関係項目を適切に設計すれば、単一条件での検索が可能な第二データに対する検索処理を行う頻度を高めることができる。単一条件での検索が可能な第二データに対する検索処理は、レコード数が同じ場合、ＡＮＤ条件やＯＲ条件での検索を行う第三データに対する検索処理よりも高速な検索が可能である。したがって、検索処理速度の期待値は、より一層向上する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
また、請求項２の発明は、請求項１に記載の情報検索装置において、前記第一データは、所定の上位項目作成条件を満たす２以上の関係項目に同一の上位項目を関連づけたものであることを特徴とするものである。
本発明において、同一の上位項目が関連づけられる２以上の関係項目を選ぶための上位項目作成条件は適宜設定されるが、例えば、レコード数を効率よく削減して検索処理速度の高速化を図る場合には、２以上の関係項目の全部に関係する検索対象項目の数が所定数以上であるという条件を満たしたときに、当該２以上の関係項目に同一の上位項目を関連づけるようにしてもよい。また、所定の検索条件での検索処理速度の高速化を図る場合には、例えば、過去の検索処理における指定された関係項目の履歴などから、今後に所定の検索条件で指定される２つ以上の関係項目を見込んで、この条件を満たす２つ以上の関係項目に同一の上位項目を関連づける条件としてもよい。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
また、請求項３の発明は、請求項１又は２に記載の情報検索装置において、前記データベースは、複数の前記上位項目のうちの２つ以上の上位項目に同一の第二上位項目を関連づけた第四データと、前記複数の検索対象項目のうち、前記同一の第二上位項目が前記上位項目を介して関連づけられた関係項目に関係する検索対象項目に、該第二上位項目を関連づけた第五データとを有し、前記複数の関係項目の中から２つ以上の関係項目が指定された所定の検索条件での検索を行う場合、前記コンピュータが、前記第四データを参照して、該所定の検索条件に一致する２以上の関係項目が上位項目を介して関連づけられた第二上位項目が存在すると判断したときは、前記第五データを検索することを特徴とするものである。
本発明によれば、検索に用いられるデータベースが、上述した第一データ、第二データ及び第三データのほかに、第四データ及び第五データも含むデータ構造をもつことで、更なる検索処理の高速化を実現することが可能となる。特に、指定された関係項目が第四データにおいて同一の第二上位項目に関連づけられた上位項目に関連づけられている２つ以上の関係項目と一致する場合、第二データ及び第三データに対する検索を行わずに、第四データを参照してその第二上位項目に関連づけられた検索対象項目を第五データから検索するだけで、検索処理を完了できる。第五データのレコード数は、第二データのレコード数よりも更に少ないものであり、検索処理速度の更なる高速化を図ることができる。そして、本発明によれば、指定される関係項目の所定の検索条件を見込んで、第二上位項目に関連づける関係項目を適切に設計することで、検索処理速度のより一層の高速化を図ることができる。
また、請求項４の発明は、請求項１乃至３のいずれか１項に記載の情報検索装置において、前記複数の関係項目の中から２つ以上の関係項目が指定された所定の検索条件での検索を行う場合、前記コンピュータが、前記第一データを参照し、該所定の検索条件に一致する２以上の関係項目が関連づけられた上位項目が存在すると判断したときは、前記第二データを検索し、該所定の検索条件に一致する２以上の関係項目が関連づけられた上位項目が存在しないと判断したときは、前記第三データを検索することを特徴とするものである。
本発明によれば、２つ以上の関係項目が指定された所定の検索条件での検索を行う場合の検索処理が高速化できる。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
また、請求項５の発明は、複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を、複数の検索対象項目の中からコンピュータによって検索する情報検索装置であって、前記複数の検索対象項目のうちの２つ以上の検索対象項目に関連づけられた上位項目を、該２つ以上の検索対象項目に関係する関係項目に関連づけた第六データと、前記第六データには含まれない関係項目と該関係項目に関係する検索対象項目とを関連づけた第七データと、前記複数の検索対象項目のうちの２つ以上の検索対象項目に同一の上位項目を関連づけた第八データと、を有するデータ構造をもつデータベースを用い、前記コンピュータが、前記第六データを参照して前記指定された関係項目に関連づけられた上位項目が存在すると判断したときは、前記第八データから該上位項目に関連づけられた検索対象項目を抽出して、該検索対象項目を検索結果として出力し、前記第七データを参照して前記指定された関係項目に関係する検索対象項目が存在すると判断したときは、該検索対象項目を検索結果として出力することを特徴とする。
本発明は、検索に用いられるデータベースが、上述した第六データ、第七データ及び第八データを含むデータ構造をもつことで、検索処理の高速化を実現するものである。
詳しくは、本発明に係るデータ構造をもったデータベースでは、２つ以上の検索対象項目に関連づけられた上位項目と該２つ以上の検索対象項目に関係する関係項目に関連づけた第六データと、前記第六データには含まれない関係項目と検索対象項目とを関連づけた第七データとから、指定された関係項目（指定関係項目）に関係する検索対象項目を検索する。
第六データは、２つ以上の検索対象項目が上位項目にまとめられて関係項目に関連づけされたものであるため、第六データ及び第七データの両方を足し合わせたレコード数は、関係項目と検索対象項目との関連のすべてを両者の直接的な対応関係のみで記録した一般的なデータ構造をもつデータベースのレコード数よりも少ない。したがって、本発明に係るデータ構造をもったデータベースを用いた場合、第六データ及び第七データの両方から指定関係項目に関係する検索対象項目を検索するときの検索処理速度は、上述した一般的なデータ構造をもつデータベースを用いた場合よりも高速化できる。
更に、本発明においては、単一の関係項目を指定して検索対象項目を検索する場合等において、検索処理速度の高速化が望める。これは、第六データに含まれる関係項目と第七データに含まれる関係項目とが排他的な関係になっているため、第六データ及び第七データのうち、関係項目が指定された際、その関係項目を含むいずれか一方のデータだけを検索するだけで、検索処理を完了できるからである。特に、第六データは、上位項目が関連づけられた２以上の検索対象項目の全部に関係する検索対象項目しか含まないので、そのレコード数が少なく、その検索処理速度は、一般的なデータ構造をもつデータベースを用いた場合よりも大幅に高速化できる。
このように、上述したような特定の検索条件（単一の関係項目を指定して検索対象項目を検索する場合など）での検索処理が高速化する結果、本発明に係るデータ構造をもったデータベースを用いた場合の検索処理速度の期待値は、一般的なデータ構造をもつデータベースを用いた場合よりも向上する。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】削除
【補正の内容】
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】削除
【補正の内容】
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】削除
【補正の内容】
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
また、請求項６の発明は、複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を複数の検索対象項目の中から検索する工程をコンピュータに実行させるための検索用プログラムであって、前記工程では、前記複数の関係項目のうちの２つ以上の関係項目に同一の上位項目を関連づけた第一データと、前記複数の検索対象項目のうち、前記同一の上位項目が関連づけられた関係項目に関係する検索対象項目に、該上位項目を関連づけた第二データと、前記第一データ及び前記第二データでは関連づけられない関係項目と検索対象項目とを関連づけた第三データとを有するデータ構造をもつデータベースを用い、前記複数の関係項目の中から１つ以上の関係項目が指定された所定の検索条件での検索を行う場合、前記コンピュータに、前記第一データを参照させ、該１つ以上の関係項目のうちの一部又は全部が関連づけられた上位項目が存在すると判断したときは、少なくとも前記第二データを検索させ、前記関連づけられた上位項目が存在しないと判断したときは、前記第三データのみを検索させることを特徴とするものである。
また、請求項７の発明は、複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を複数の検索対象項目の中から検索する工程をコンピュータに実行させるための検索用プログラムであって、前記工程では、前記複数の検索対象項目のうちの２つ以上の検索対象項目に関連づけられた上位項目を、該２つ以上の検索対象項目に関係する関係項目に関連づけた第六データと、前記第六データには含まれない関係項目と該関係項目に関係する検索対象項目とを関連づけた第七データと、前記複数の検索対象項目のうちの２つ以上の検索対象項目に同一の上位項目を関連づけた第八データと、を有するデータ構造をもつデータベースを用い、前記コンピュータに、前記第六データを参照させて前記指定された関係項目に関連づけられた上位項目が存在すると判断したときは、前記第八データから該上位項目に関連づけられた検索対象項目を抽出させて、該検索対象項目を検索結果として出力させ、前記第七データを参照させて前記指定された関係項目に関係する検索対象項目が存在すると判断したときは、該検索対象項目を検索結果として出力させることを特徴とするものである。
これらの発明によれば、高速な検索処理を実施することが可能となる。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
また、請求項８の発明は、複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を、複数の検索対象項目の中からコンピュータによって検索する情報検索装置に用いられるデータベースであって、前記複数の関係項目のうちの２つ以上の関係項目に同一の上位項目を関連づけた第一データと、前記複数の検索対象項目のうち、前記同一の上位項目が関連づけられた関係項目に関係する検索対象項目に、該上位項目を関連づけた第二データと、前記第一データ及び前記第二データでは関連づけられない関係項目と検索対象項目とを関連づけた第三データと、を有するデータ構造をもつデータベースの更新装置であって、検索対象項目とこれに関係する関係項目とを追加する追加手段と、所定の上位項目作成条件を満たす２以上の関係項目に同一の上位項目を関連づけて前記データベースを更新する更新手段とを有することを特徴とするものである。
また、請求項９の発明は、複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を、複数の検索対象項目の中からコンピュータによって検索する情報検索装置に用いられるデータベースであって、前記複数の検索対象項目のうちの２つ以上の検索対象項目に関連づけられた上位項目を、該２つ以上の検索対象項目に関係する関係項目に関連づけた第六データと、前記第六データには含まれない関係項目と該関係項目に関係する検索対象項目とを関連づけた第七データと、前記複数の検索対象項目のうちの２つ以上の検索対象項目に同一の上位項目を関連づけた第八データと、を有するデータ構造をもつデータベースの更新装置であって、検索対象項目とこれに関係する関係項目とを追加する追加手段と、所定の上位項目作成条件を満たす２以上の検索対象項目に同一の上位項目を関連づけて前記データベースを更新する更新手段とを有することを特徴とするものである。  また、請求項１０の発明は、複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を、複数の検索対象項目の中からコンピュータによって検索する情報検索装置に用いられるデータベースであって、前記複数の関係項目のうちの２つ以上の関係項目に同一の上位項目を関連づけた第一データと、前記複数の検索対象項目のうち、前記同一の上位項目が関連づけられた関係項目に関係する検索対象項目に、該上位項目を関連づけた第二データと、前記第一データ及び前記第二データでは関連づけられない関係項目と検索対象項目とを関連づけた第三データと、を有するデータ構造をもつデータベースを更新する工程をコンピュータに実行させるためのデータベース更新用プログラムであって、検索対象項目とこれに関係する関係項目とを追加する追加工程と、所定の上位項目作成条件を満たす２以上の関係項目に同一の上位項目を関連づけて前記データベースを更新する更新工程とを、前記コンピュータに実行させることを特徴とするものである。
また、請求項１１の発明は、複数の関係項目の中から指定された関係項目に関連付けられた検索対象項目を、複数の検索対象項目の中からコンピュータによって検索する情報検索装置に用いられるデータベースであって、前記複数の検索対象項目のうちの２つ以上の検索対象項目に関連づけられた上位項目を、該２つ以上の検索対象項目に関係する関係項目に関連づけた第六データと、前記第六データには含まれない関係項目と該関係項目に関係する検索対象項目とを関連づけた第七データと、前記複数の検索対象項目のうちの２つ以上の検索対象項目に同一の上位項目を関連づけた第八データと、を有するデータ構造をもつデータベースを更新する工程をコンピュータに実行させるためのデータベース更新用プログラムであって、検索対象項目とこれに関係する関係項目とを追加する追加工程と、所定の上位項目作成条件を満たす２以上の検索対象項目に同一の上位項目を関連づけて前記データベースを更新する更新工程とを、前記コンピュータに実行させることを特徴とするものである。
これらの発明では、検索対象項目とこれに関係する関係項目の追加により所定の上位項目作成条件を満たすこととなった２以上の関係項目又は２以上の検索対象項目に対し、同一の上位項目を関連づけて、データベースの更新を行う。所定の上位項目作成条件は、適宜設定される。例えば、レコード数を効率よく削減して検索処理速度の高速化を図る場合には、２以上の関係項目又は２以上の検索対象項目の全部に関係する検索対象項目の数が所定数以上になったという条件を満たしたときに、当該２以上の関係項目に同一の上位項目を関連づけるようにしてもよい。また、請求項１乃至４のいずれか１項に記載のデータ構造をもつデータベースについて、所定の検索条件での検索処理速度の高速化を図る場合には、例えば、過去の検索処理における指定された関係項目の履歴などから、今後に所定の検索条件で指定される２つ以上の関係項目を見込んで、この条件を満たす２つ以上の関係項目に同一の上位項目を関連づけるようにしてもよい。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００３０
【補正方法】変更
【補正の内容】
【００３０】
図３は、本実施形態１における情報検索装置１００が用いるデータベースで管理する、顧客識別番号１，２，３，４，５，・・・（検索対象項目）と、その顧客が過去に購入した商品の商品名ａ，ｂ，ｃ，ｄ（関係項目）との関係をまとめた表の一例である。この表によれば、顧客識別番号１の顧客は商品名ａ，ｂ，ｃの商品を購入し、顧客識別番号２の顧客は商品名ａ，ｃの商品を購入し、顧客識別番号３の顧客は商品名ｂの商品を購入し、顧客識別番号４の顧客は商品名ａ，ｃの商品を購入し、顧客識別番号５の顧客は商品名ａの商品を購入し、顧客識別番号１０の顧客は商品名ｄの商品を購入したことが管理されている。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００４２
【補正方法】変更
【補正の内容】
【００４２】
また、指定された２つの商品名（関係項目）の全部が上位項目Ｗに関連づけられた２つの商品名ａ，ｂと一致しない場合には、図７に示す第三データテーブルに対し、その２つの商品名に関連づけられた顧客識別番号（検索対象項目）を検索するだけで（第二データテーブルに対する検索処理を行わずに）、検索処理を完了する。第三データテーブルは、第二データテーブルに含まれている関連性をもった顧客識別番号（検索対象項目）と商品名（関係項目）とが関連づけられたレコードを含まないので、そのレコード数は少なく、検索処理速度を高速化できる。