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