(57)【特許請求の範囲】
【請求項１】
相互に重複しない要素が格納されているリストと、当該リストにおける位置を表す位置情報とを含む値情報であって、記憶装置に格納された第１値情報、及び、前記記憶装置に格納された第２値情報に関して、前記第１値情報における第１リストに含まれている要素と、前記第２値情報における第２リストに含まれている要素とが重複している程度を表す重複度を算出する重複度算出手段と、
算出された重複度が所定の条件を満たしている場合には、前記第１リストと、前記第２リストとの和集合を表す統合リストを作成し、作成した前記統合リストを前記記憶装置に格納し、前記第１値情報における第１位置情報と、前記第２値情報における第２位置情報とを前記統合リストを基づき更新し、前記記憶装置から前記第１リストと、前記第２リストとを削除する値情報更新手段と
を備え、
前記重複度算出手段は、前記第１リストに含まれている要素の個数と、前記第２リストに含まれている要素の個数とのうち少ない個数に対する、前記第１リストと、前記第２リストとが重複している割合に応じた前記重複度を算出する
更新装置。
【請求項２】
相互に重複しない要素が格納されているリストと、当該リストにおける位置を表す位置情報とを含む値情報であって、記憶装置に格納された第１値情報、及び、前記記憶装置に格納された第２値情報に関して、前記第１値情報における第１リストに含まれている要素と、前記第２値情報における第２リストに含まれている要素とが重複している程度を表す重複度を算出する重複度算出手段と、
算出された重複度が所定の条件を満たしている場合には、前記第１リストと、前記第２リストとの和集合を表す統合リストを作成し、作成した前記統合リストを前記記憶装置に格納し、前記第１値情報における第１位置情報と、前記第２値情報における第２位置情報とを前記統合リストを基づき更新し、前記記憶装置から前記第１リストと、前記第２リストとを削除する値情報更新手段と
を備え、
前記重複度算出手段は、前記第１リストに含まれている要素の個数と、前記第２リストに含まれている要素の個数とのうち多い個数に対する、前記第１リストと、前記第２リストとが重複している割合に応じた前記重複度を算出する
更新装置。
【請求項３】
相互に重複しない要素が格納されているリストと、当該リストにおける位置を表す位置情報とを含む値情報であって、記憶装置に格納された第１値情報、及び、前記記憶装置に格納された第２値情報に関して、前記第１値情報における第１リストに含まれている要素と、前記第２値情報における第２リストに含まれている要素とが重複している程度を表す重複度を算出する重複度算出手段と、
算出された重複度が所定の条件を満たしている場合には、前記第１リストと、前記第２リストとの和集合を表す統合リストを作成し、作成した前記統合リストを前記記憶装置に格納し、前記第１値情報における第１位置情報と、前記第２値情報における第２位置情報とを前記統合リストを基づき更新し、前記記憶装置から前記第１リストと、前記第２リストとを削除する値情報更新手段と
を備え、
前記重複度算出手段は、前記統合リストに含まれている要素の個数に対する、前記第１リストと、前記第２リストとが重複している割合に応じた前記重複度を算出する
更新装置。
【請求項４】
前記第１値情報と、前記第２値情報とに関して、前記統合リストを前記記憶装置に格納するか、前記重複度を算出するか、または、前記統合リストを格納する処理、及び、前記重複度を算出する処理をいずれも実行しないかを表す共有情報に基づき、
前記値情報更新手段は、前記共有情報が、前記統合リストを前記記憶装置に格納することを表す場合には、前記統合リストを前記記憶装置に格納し、前記第１位置情報と、前記第２位置情報とを前記統合リストに基づき更新し、
前記重複度算出手段は、前記共有情報が、前記重複度を算出することを表す場合には、前記重複度を算出する
請求項１乃至請求項３のいずれかに記載の更新装置。
【請求項５】
前記記憶装置に格納されている第３値情報、及び、第４値情報に関して、前記第３値情報における第３リストと、前記第４値情報における第４リストとが類似している程度を表す類似度を算出する推定手段
をさらに備え、
前記値情報更新手段は、算出された前記類似度が所定の条件を満たしている場合には、前記第３リストと、前記第４リストとの和集合を表す第２統合リストを作成し、作成した前記第２統合リストを前記記憶装置に格納し、前記第３値情報における位置情報と、前記第４値情報における位置情報とを前記第２統合リストに基づき更新し、前記第３リストと、前記第４リストとを前記記憶装置から削除する、
請求項１乃至請求項４のいずれかに記載の更新装置。
【請求項６】
前記重複度を判定する基準を表す閾値を算出する閾値算出手段
をさらに備え、
前記重複度算出手段は、第５値情報と、第６値情報とに関して前記重複度を算出し、
前記値情報更新手段は、前記第５値情報における第５リストと、前記第６値情報における第６リストとの和集合を表す第３統合リストを作成し、前記第５値情報における第５位置情報と、前記第６値情報における第６位置情報とを前記第３統合リストに基づき更新し、
前記閾値算出手段は、
前記第５値情報、及び、前記第６値情報を用いて検索する処理に要する第１所要時間と、
前記第５値情報と、前記第６値情報とに関して、前記第３統合リストを作成する処理と、前記第３統合リストに基づき更新する処理と、及び、作成された前記第３統合リスト、更新された前記第５位置情報、及び、更新された前記第６位置情報を用いて検索する処理に要する第２所要時間とを測定し、前記第１所要時間が前記第２所要時間より短い場合に、前記閾値を前記重複度未満の値として算出し、前記第１所要時間が前記第２所要時間以上である場合に、前記閾値を前記重複度以上の値として算出する
請求項１乃至請求項５のいずれかに記載の更新装置。
【請求項７】
請求項１乃至請求項６のいずれかに記載の更新装置と、
検索する処理を表すクエリに基づき、前記第１値情報と、前記第２値情報とを特定するクエリ解析手段と、
前記更新装置が作成した前記統合リスト、更新された前記第１位置情報、及び、更新された前記第２位置情報を用いて、前記クエリに応じた検索を実行するクエリ処理手段と
を備えるデータベース管理装置。
【請求項８】
相互に重複しない要素が格納されているリストと、当該リストにおける位置を表す位置情報とを含む値情報であって、記憶装置に格納された第１値情報、及び、前記記憶装置に格納された第２値情報に関して、前記第１値情報における第１リストに含まれている要素の個数と、前記第２値情報における第２リストに含まれている要素の個数とのうち少ない個数に対する、前記第１リストと、前記第２リストとが重複している程度を表す重複度を算出し、
算出された重複度が所定の条件を満たしている場合には、前記第１リストと、前記第２リストとの和集合を表す統合リストを作成し、作成した前記統合リストを前記記憶装置に格納し、前記第１値情報における第１位置情報と、前記第２値情報における第２位置情報とを前記統合リストを基づき更新し、前記記憶装置から前記第１リストと、前記第２リストとを削除する
更新方法。
【請求項９】
相互に重複しない要素が格納されているリストと、当該リストにおける位置を表す位置情報とを含む値情報であって、記憶装置に格納された第１値情報、及び、前記記憶装置に格納された第２値情報に関して、前記第１値情報における第１リストに含まれている要素の個数と、前記第２値情報における第２リストに含まれている要素の個数とのうち多い個数に対する、前記第１リストと、前記第２リストとが重複している程度を表す重複度を算出し、
算出された重複度が所定の条件を満たしている場合には、前記第１リストと、前記第２リストとの和集合を表す統合リストを作成し、作成した前記統合リストを前記記憶装置に格納し、前記第１値情報における第１位置情報と、前記第２値情報における第２位置情報とを前記統合リストを基づき更新し、前記記憶装置から前記第１リストと、前記第２リストとを削除する
更新方法。
【請求項１０】
相互に重複しない要素が格納されているリストと、当該リストにおける位置を表す位置情報とを含む値情報であって、記憶装置に格納された第１値情報、及び、前記記憶装置に格納された第２値情報に関して、前記第１値情報における第１リストに含まれている要素と、前記第２値情報における第２リストに含まれている要素とが重複している程度を表す重複度を算出する重複度算出機能と、
算出された重複度が所定の条件を満たしている場合には、前記第１リストと、前記第２リストとの和集合を表す統合リストを作成し、作成した前記統合リストを前記記憶装置に格納し、前記第１値情報における第１位置情報と、前記第２値情報における第２位置情報とを前記統合リストを基づき更新し、前記記憶装置から前記第１リストと、前記第２リストとを削除する値情報更新機能と
をコンピュータに実現させ、
前記重複度算出機能は、前記第１リストに含まれている要素の個数と、前記第２リストに含まれている要素の個数とのうち少ない個数に対する、前記第１リストと、前記第２リストとが重複している割合に応じた前記重複度を算出する
更新プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、データベースに格納されている情報を実行効率のよい情報に更新する更新装置等に関する。
【背景技術】
【０００２】
ＩＣＴ（Ｉｎｆｏｒｍａｔｉｏｎ＿ａｎｄ＿Ｃｏｍｍｕｎｉｃａｔｉｏｎ＿Ｔｅｃｈｎｏｌｏｇｙ）が発展するにつれ、データベースシステム等の情報処理システムから多種多量なデータをリアルタイムに取得することが可能（または、容易）になる。さらに、取得（または、蓄積）されたデータに基づき、着目する事象を分析（または、予測）する技術も注目されている。
【０００３】
多種多様なデータを蓄積する基盤として、データベース管理システム（ＤＢＭＳ）は、広く利用されている。リレーショナルデータベース（ＲＤＢ）は、データベース管理システムに関する一例である。ＲＤＢにおいては、複数のデータが表形式（テーブル情報）にて表現され、複数のテーブル情報の間に、お互いの関連性（リレーション）が付与される。ＲＤＢを用いれば、トランザクション等の更新処理を効率的に実現することができる。しかし、ＲＤＢは、テーブル情報における行（レコード）を、データを参照する処理や、データを更新する処理の単位としているので、該テーブル情報に格納されているデータを列方向に集計する処理の場合や、列方向に検索する処理の場合に、該処理に要する所要時間が長いという欠点を有する。
【０００４】
そこで、ＲＤＢにおけるテーブル情報を行方向ではなく列方向に処理するカラムストア型データベースが開発されている。カラムストア型データベースにおいては、ＲＤＢにおけるテーブル情報を列方向に処理することによって、列方向における処理が効率的に実現されている。
【０００５】
たとえば、特許文献１に開示されたデータベースは、カラムストア型データベースの一例である。特許文献１に開示されたデータベースは、一意に識別可能な（ユニークな）列項目におけるに関して、ソート処理が実行された後に算出されたデータが格納されたリストと、当該ソート処理前における値情報の各行のデータ、及び、当該リストにおける順番が関連付けされたポインタ情報とを作成する。
【０００６】
また、特許文献２、及び、特許文献３には、処理効率が良いデータ構造に変換する一例が開示されている。
【０００７】
特許文献２は、複数のテーブル情報を結合することが可能なデータ結合装置を開示している。該データ結合装置は、あらかじめ、複製する回数が格納された配列を作成し、作成した配列に格納されている値に基づき、対象データを格納する位置を算出する。
【０００８】
特許文献３は、複数のテーブル情報において、各テーブル情報に含まれているレコードを格納している位置を表すインデックスが、該テーブル情報に関して組み合わされた連結インデックスを作成するデータ結合装置を開示している。該データ結合装置は、該テーブル情報を結合する処理が必要なクエリを処理する場合に、該連結インデックスに基づき、該データを結合する処理を実行する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第３５８１８３１号公報
【特許文献２】特開２００３−１５０６３３号公報
【特許文献３】特開２００４−１１０２１９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、特許文献１乃至特許文献３に開示されたいずれの装置を用いたとしても、必ずしも、データを検索する等の処理に要する所要時間が短縮されるとは限らない。この理由は、これらの装置を用いてデータが変換される処理時間が、必ずしも、変換されたデータを用いることによって短縮される時間よりも短いとは限らないからである。
【００１１】
そこで、本発明の主たる目的は、検索効率が悪い情報であっても、より少ない記憶容量、より短い処理時間にて検索することが可能な情報に更新することができる更新装置等を提供することである。
【課題を解決するための手段】
【００１２】
前述の目的を達成するために、本発明の一態様において、更新装置は、
相互に重複しない要素が格納されているリストと、当該リストにおける位置を表す位置情報とを含む値情報であって、記憶装置に格納された第１値情報、及び、前記記憶装置に格納された第２値情報に関して、前記第１値情報における第１リストに含まれている要素と、前記第２値情報における第２リストに含まれている要素とが重複している程度を表す重複度を算出する重複度算出手段と、
算出された重複度が所定の条件を満たしている場合には、前記第１リストと、前記第２リストとの和集合を表す統合リストを作成し、作成した前記統合リストを前記記憶装置に格納し、前記第１値情報における第１位置情報と、前記第２値情報における第２位置情報とを前記統合リストを基づき更新し、前記記憶装置から前記第１リストと、前記第２リストとを削除する値情報更新手段と
を備える。
【００１３】
また、本発明の他の見地として、更新方法は、
相互に重複しない要素が格納されているリストと、当該リストにおける位置を表す位置情報とを含む値情報であって、記憶装置に格納された第１値情報、及び、前記記憶装置に格納された第２値情報に関して、前記第１値情報における第１リストに含まれている要素と、前記第２値情報における第２リストに含まれている要素とが重複している程度を表す重複度を算出し、
算出された重複度が所定の条件を満たしている場合には、前記第１リストと、前記第２リストとの和集合を表す統合リストを作成し、作成した前記統合リストを前記記憶装置に格納し、前記第１値情報における第１位置情報と、前記第２値情報における第２位置情報とを前記統合リストを基づき更新し、前記記憶装置から前記第１リストと、前記第２リストとを削除する。
【００１４】
また、本発明の他の見地として、更新プログラムは、
相互に重複しない要素が格納されているリストと、当該リストにおける位置を表す位置情報とを含む値情報であって、記憶装置に格納された第１値情報、及び、前記記憶装置に格納された第２値情報に関して、前記第１値情報における第１リストに含まれている要素と、前記第２値情報における第２リストに含まれている要素とが重複している程度を表す重複度を算出する重複度算出機能と、
算出された重複度が所定の条件を満たしている場合には、前記第１リストと、前記第２リストとの和集合を表す統合リストを作成し、作成した前記統合リストを前記記憶装置に格納し、前記第１値情報における第１位置情報と、前記第２値情報における第２位置情報とを前記統合リストを基づき更新し、前記記憶装置から前記第１リストと、前記第２リストとを削除する値情報更新機能と
をコンピュータに実現させる。
【００１５】
さらに、同目的は、係る更新プログラム、及び、そのプログラムを記録するコンピュータが読み取り可能な記録媒体によっても実現される。
【発明の効果】
【００１６】
本発明に係る更新装置等によれば、検索効率が悪い情報であっても、より少ない記憶容量、より短い処理時間にて検索することが可能な情報に更新することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施形態に係るデータベース管理システムが有する構成を表すブロック図である。
【図２】第１の実施形態に係るデータベース管理システムにおける処理の流れを示すフローチャートである。
【図３】第１の実施形態に係るリスト更新部における処理の流れを示すフローチャートである。
【図４】第１の実施形態に係る閾値算出部における処理の流れを示すフローチャートである。
【図５】テーブル情報の一例を概念的に表す図である。
【図６】図５に例示されたテーブル情報がＦＡＳＴ形式に従い記述された値情報の一例を概念的に表す図である。
【図７】図５に例示されたテーブル情報がＦＡＳＴ形式に従い記述された値情報の一例を概念的に表す図である。
【図８】図５に例示されたテーブル情報がＦＡＳＴ形式に従い記述された値情報の一例を概念的に表す図である。
【図９】１月度の値情報における会員ＩＤ情報の一例を概念的に表す図である。
【図１０】３月度の値情報における会員ＩＤ情報の一例を概念的に表す図である。
【図１１】値情報の一例を概念的に表す図である。
【図１２】更新する処理において作成される差分位置情報、及び、共有リストの一例を概念的に表す図である。
【図１３】第１値情報が更新された値情報の一例を概念的に表す図である。
【図１４】第２値情報が更新された値情報の一例を概念的に表す図である。
【図１５】本発明の第２の実施形態に係るデータベース管理システムが有する構成を表すブロック図である。
【図１６】第２の実施形態に係るリスト更新部における処理の流れを示すフローチャートである。
【図１７】テーブル情報の一例を概念的に表す図である。
【図１８】本発明の第３の実施形態に係るデータベース管理システムが有する構成を表すブロック図である。
【図１９】第３の実施形態に係るリスト更新部における処理の流れを示すフローチャートである。
【図２０】本発明の第４の実施形態に係る更新装置が有する構成を表すブロック図である。
【図２１】本発明の各実施形態に係る更新装置、または、各実施形態に係るデータベース管理システムを実現可能な計算処理装置のハードウェア構成例を、概略的に示すブロック図である。
【発明を実施するための形態】
【００１８】
次に、本発明を実施する実施形態について図面を参照しながら詳細に説明する。
【００１９】
＜第１の実施形態＞
図１を参照しながら、第１の実施形態に係るデータベース管理システム１０１について説明する。図１は、本発明の第１の実施形態に係るデータベース管理システム１０１が有する構成を表すブロック図である。
【００２０】
第１の実施形態に係るデータベース管理システム１０１は、大別して、クエリ解析部１０２と、クエリ処理部１０３と、閾値算出部１０４と、記憶部１０５と、リスト更新部１０６とを有する。リスト更新部１０６は、項目選択部１１１と、共有判定部１１２と、リスト作成部１１３と、位置処理部１１４と、データ管理部１１５とを有する。
【００２１】
データベース管理システム１０１は、クライアント２０１に通信接続することができる。
【００２２】
まず、図５を参照しながら、テーブル情報と、該テーブル情報がＦＡＳＴ（Ｆｉｌｔｅｒ＿Ａｒｒａｙ＿ＳＴｒｕｃｔｕｒｅ）形式に従い記述された値情報（図６乃至図８を参照しながら後述する）と、クエリとについて説明する。図５は、テーブル情報の一例を概念的に表す図である。本発明の各実施形態に係るデータベース管理システム１０１においては、ＦＡＳＴ形式に従い記述された値情報を処理対象としている。
【００２３】
テーブル情報は、複数の項目に関するデータが関連付けされた情報である。図５に例示されたテーブル情報は、たとえば、項目「取引識別子」と、項目「会員識別子」と、項目「取引日」とが関連付けされた取引情報である。説明の便宜上、図５に例示された取引情報の各行に対して行番号が付されている。テーブル情報は、必ずしも、明示的に行番号を含む必要はない。以降、説明の便宜上、識別子を、「ＩＤ」と表す。
【００２４】
図５に例示された取引情報における２行目にて、取引ＩＤ「００２」と、会員ＩＤ「１０３」と、取引日「２０１５／１／１」とが、関連付けされている。これは、取引ＩＤ「００２」が表す取引が、会員ＩＤ「１０３」が表す会員によって、取引日「２０１５／１／１」に実行されたことを表す。
【００２５】
テーブル情報は、図５に例示された取引情報に限定されず、たとえば、より多くの項目に関する値を含んでいてもよい。以降においては、説明の便宜上、テーブル情報として、図５に例示された取引情報を参照するとする。
【００２６】
クエリは、テーブル情報において、ある条件を満たしている項目のデータを要求する情報である。クエリは、たとえば、以下に示す、クエリＡである。すなわち、
ＳＥＬＥＣＴ  ＊ＦＲＯＭ  １月度取引情報、３月度取引情報、ＷＨＥＲＥ１月度取引情報．会員ＩＤ＝３月度取引情報．会員ＩＤ・・・（クエリＡ）。
【００２７】
（ただし、「．」は、値情報における項目を表す。たとえば、「３月度取引情報．会員ＩＤ」は、３月度取引情報における項目「会員ＩＤ」を表す。また、「＊」は、値情報に含まれているすべての項目を選択することを表す）。
【００２８】
該クエリＡは、１月に実行された取引を表す取引情報（以降、「１月度取引情報」と表す）に含まれている会員ＩＤと、３月に実行された取引を表す取引情報（以降、「３月度取引情報」と表す）に含まれている会員ＩＤとが共有している会員ＩＤを選択し、選択した会員ＩＤに関するデータを要求するクエリを表す。すなわち、該クエリＡは、１月に実行された取引の履歴を表す取引情報と、３月に実行された取引の履歴を表す取引情報とに基づき、両月とも取引が実行された会員を表す会員ＩＤに関するデータを選択するクエリを表す。
【００２９】
次に、図６乃至図８を参照しながら、図５に例示されたテーブル情報がＦＡＳＴ形式に従い記述された値情報について説明する。図６乃至図８は、図５に例示されたテーブル情報がＦＡＳＴ形式に従い記述された値情報の一例を概念的に表す図である。
【００３０】
ＦＡＳＴ形式に従えば、図５に例示されたテーブル情報は、該テーブル情報に含まれている項目が、それぞれ、個別の値情報に変換された複数の値情報に変換される。たとえば、図５に例示されたテーブル情報における各項目（取引ＩＤ、会員ＩＤ、及び、取引日）がＦＡＳＴ形式に従い変換されることによって、以下の（Ｉ）乃至（ＩＩＩ）３つの値情報に変換される。すなわち、
（Ｉ）図６に例示された値情報（説明の便宜上、「取引ＩＤ情報」と表す）、
（ＩＩ）図７に例示された値情報（説明の便宜上、「会員ＩＤ情報」と表す）、
（ＩＩＩ）図８に例示された値情報（説明の便宜上、「取引日情報」と表す）。
【００３１】
次に、図７に例示された値情報における項目「会員ＩＤ」を参照しながら、図５に例示されたテーブル情報に含まれている各項目を、ＦＡＳＴ形式に従い値情報に変換する手順について説明する。
【００３２】
図５に例示されたテーブル情報には、項目「会員ＩＤ」に関して、データ「１０１、１０３、・・・、１０４、１０３」が含まれている。これらのデータは、会員ＩＤ「１０１」と、会員ＩＤ「１０３」と、会員ＩＤ「１０４」とを含む。図７を参照すると、会員ＩＤ情報におけるリストは、これらの会員ＩＤを含む情報である。
【００３３】
説明の便宜上、図６乃至図８に例示された値情報の各行に対して行番号、及び、位置が付されている。以降、値情報における各行に行番号、及び、位置を付して説明するが、値情報は、必ずしも、明示的に行番号を含む必要はない。また、リストは、各値（たとえば、会員ＩＤ）が格納されている位置を明示的に含んでいるが、必ずしも、明示的に含んでいる必要はない。
【００３４】
さらに、図７に例示された会員ＩＤ情報には、値情報に含まれている行番号と、リストに含まれている位置とが関連付けされた位置情報が含まれている。図５に例示されたテーブル情報内の項目に関して行番号に格納されている値は、図７に例示された位置情報において当該行番号に関連付けされた位置、及び、リストにおいて当該位置に関連付けされた値（この例では、「会員ＩＤ」）と同じ値である。たとえば、図５に例示された取引情報において、項目「会員ＩＤ」における行番号「５」に格納されている値は「１０４」である。図７に例示されている値情報において、位置情報を参照することにより、行番号「５」に関連付けされている位置は「３」と特定され、さらに、リストを参照することにより、位置「３」に関連付けされている会員ＩＤは、「１０４」と特定される。したがって、これは、図５に例示された取引情報において、項目「会員ＩＤ」における行番号「５」に格納されているデータ（すなわち、「１０４」）と同じ値である。
【００３５】
すなわち、図５に例示されたテーブル情報に含まれている項目「会員ＩＤ」における各行に格納されているデータは、図７に例示された値情報（会員ＩＤ情報）内の位置情報において、同じ行番号が指し示す記憶領域に格納されている。
【００３６】
図５に例示されたテーブル情報に関して、項目「取引ＩＤ」に関しても、上述した項目「会員ＩＤ」に関する変換処理と同様の処理によって、図６に例示された取引ＩＤ情報が作成される。図５に例示されたテーブル情報に関して、項目「取引日」に関しても、上述した項目「会員ＩＤ」に関する変換処理と同様の処理によって、図８に例示された取引日情報が作成される。したがって、図５に例示されたテーブル情報は、ＦＡＳＴ形式に従えば、図６乃至図８に例示された値情報に変換される。
【００３７】
次に、図２を参照しながら、本発明の第１の実施形態に係るデータベース管理システム１０１における処理について説明する。図２は、第１の実施形態に係るデータベース管理システム１０１における処理の流れを示すフローチャートである。
【００３８】
クライアント２０１は、アプリケーションプログラム（以降、単に、「アプリケーション」と表す）に従い、データベース管理システム１０１が提供している機能を要求するクエリをデータベース管理システム１０１に送信するとする。
【００３９】
データベース管理システム１０１において、クエリ解析部１０２は、クライアント２０１が送信したクエリ（たとえば、クエリＡ）を受信し、受信したクエリを解析することによって、受信したクエリに応じた処理を特定する（ステップＳ１０１）。たとえば、クエリ解析部１０２は、クエリＡを受信した場合に、１月度取引情報に含まれている会員ＩＤと、３月度取引情報に含まれている会員ＩＤとが共有している会員ＩＤを選択し、選択した会員ＩＤに関するデータを探索する処理を特定する。
【００４０】
リスト更新部１０６は、クエリ解析部１０２が特定した処理に従い、処理対象である複数の値情報を記憶部１０５から取得する。リスト更新部１０６は、図３を参照しながら後述するような処理を実行することによって、該複数の値情報に含まれているリストを含む共有リストを作成し、作成した共有リストに基づき、取得した各値情報が変換された共有値情報を作成する（ステップＳ１０２）。リスト更新部１０６は、作成した共有値情報をクエリ処理部１０３に対して出力する。
【００４１】
共有リストに関しては、図１２乃至図１４を参照しながら後述する。
【００４２】
クエリ処理部１０３は、リスト更新部１０６が出力した共有値情報を入力し、入力した共有値情報に対して、クエリ解析部１０２が特定した処理を実行し（ステップＳ１０３）、実行した結果を表す結果情報をクライアント２０１に送信する（ステップＳ１０４）。
【００４３】
図３を参照しながら、本実施形態に係るリスト更新部１０６における処理（図２内のステップＳ１０２）について説明する。図３は、第１の実施形態に係るリスト更新部１０６における処理の流れを示すフローチャートである。
【００４４】
リスト更新部１０６において、データ管理部１１５は、クエリ解析部１０２が特定した処理に従い、処理対象である値情報（図６乃至図８に例示）を記憶部１０５から取得し（ステップＳ１１１）、取得した値情報を項目選択部１１１に対して出力する。データ管理部１１５は、たとえば、１月度における値情報（たとえば、図６乃至図８に例示された取引情報）、及び、３月度における値情報を記憶部１０５から取得し、取得した値情報を項目選択部１１１に対して出力する。
【００４５】
次に、項目選択部１１１は、データ管理部１１５が出力した値情報（図６乃至図８に例示）を入力する。項目選択部１１１は、クエリ解析部１０２が特定した処理に従い、入力した値情報のうち、共有化する値情報を選択する（ステップＳ１１２）。項目選択部１１１は、選択した値情報を共有判定部１１２に対して出力する。たとえば、クエリがクエリＡである場合に、選択する対象は、１月度の値情報における会員ＩＤ情報（たとえば、図９）、及び、３月度の値情報における会員ＩＤ情報（たとえば、図１０）である。したがって、項目選択部１１１は、１月度における値情報（図６乃至図８に例示）のうち会員ＩＤ情報（図９に例示）を選択し、３月度における取引情報のうち会員ＩＤ情報（図１０に例示）を選択する。図９は、１月度の値情報における会員ＩＤ情報の一例を概念的に表す図である。図１０は、３月度の値情報における会員ＩＤ情報の一例を概念的に表す図である。図９、及び、図１０に例示された会員ＩＤ情報は、図７に例示された会員ＩＤ情報と同様のデータ構造を有しているので、当該会員ＩＤ情報に関する説明を省略する。
【００４６】
以降においては、説明の便宜上、１月度の値情報における会員ＩＤ情報を「第１値情報」と表し、３月度の値情報における会員ＩＤ情報を「第２値情報」と表すこともある。
【００４７】
図３におけるステップＳ１１２の後に、共有判定部１１２は、項目選択部１１１が出力した第１値情報（図９に例示）と、第２値情報（図１０に例示）を入力する。共有判定部１１２は、入力した第１値情報と、入力した第２値情報とに関する重複度（後述する）を判定する基準を表す閾値に基づき、第１値情報と、第２値情報とに関する共有リストを作成する処理を実行するか否かを判定する（ステップＳ１１３）。
【００４８】
ここで、図９、及び、図１０を参照しながら、重複度、及び、重複度を判定する基準を表す閾値について説明する。重複度は、リストに含まれている値が、複数のリストに関して重複している程度（度合い）を表す。たとえば、複数のリストが、リストＡ（第１値情報に含まれているリストとする）、及び、リストＢ（第２値情報に含まれているリストとする）である場合に、共有判定部１１２は、重複度を、式１に従い算出する算出することができる。すなわち、
重複度＝（リストＡ、及び、リストＢに共通して含まれている要素の個数）÷（リストＡに含まれている要素の個数）・・・（式１）、
（ただし、本実施形態においては、リストＡに含まれている要素の個数は、リストＢに含まれている要素の個数よりも少ないとする）。
【００４９】
したがって、式１に従い重複度が定義された場合に、重複度は、０から１までのいずれかの値である。
【００５０】
たとえば、図９に例示された１月度会員ＩＤ情報（第１値情報）の場合に、第１値情報におけるリストは、会員ＩＤ「１０１」、会員ＩＤ「１０３」、及び、会員ＩＤ「１０４」という３個の要素を含んでいる。図１０に例示された３月度会員ＩＤ情報（第２値情報）の場合に、第２値情報におけるリストは、会員ＩＤ「１０１」、会員ＩＤ「１０２」、会員ＩＤ「１０３」、及び、会員ＩＤ「１０５」という４個の要素を含んでいる。したがって、第１値情報（図９に例示）におけるリスト、及び、第２値情報（図１０に例示）におけるリストに共有して含まれている要素は、会員ＩＤ「１０１」、及び、会員ＩＤ「１０３」という２つの要素である。第１値情報（図９に例示）におけるリストに含まれている要素の個数が、第２値情報（図１０に例示）におけるリストに含まれている要素の個数より少ないので、式１に従えば重複度は、０．６７（＝２÷３）と算出される。
【００５１】
図３に示されたステップＳ１１３にて、共有判定部１１２は、たとえば、閾値が１であるのか否かを判定する。本実施形態において閾値が１である場合には（ステップＳ１１３にてＮＯ）、ステップＳ１１４乃至ステップＳ１２０に示された処理が実行されない。
【００５２】
共有判定部１１２は、共有リストを作成する処理を実行すると判定した場合に（ステップＳ１１３にてＹＥＳ）、重複度を算出するのか否かを判定する（ステップＳ１１４）。たとえば、ステップＳ１１４にて、共有判定部１１２は、たとえば、閾値が０であるのか否かを判定する。本実施形態において閾値が０である場合には（ステップＳ１１４にてＮＯ）、ステップＳ１１５乃至ステップＳ１１７に示された処理が実行されない。すなわち、共有判定部１１２が重複度を算出しないと判定する場合に（ステップＳ１１４にてＮＯ）、リスト作成部１１３は、ステップＳ１１８（後述）に示された処理を実行する。
【００５３】
共有判定部１１２は、重複度を算出すると判定した場合に（ステップＳ１１４にてＹＥＳ）、第１値情報（図９に例示）、または、第２値情報（図１０に例示）のうち、リストに含まれている要素の個数が少ないリストを選択する（ステップＳ１１５）。共有判定部１１２は、さらに、入力した第１値情報（図９に例示）におけるリスト、または、第２値情報（図１０に例示）におけるリストに共通して含まれている要素の個数を算出し、選択したリストに含まれている要素の個数と、算出した要素の個数とに基づき、重複度（式１に例示）を算出する（ステップＳ１１６）。共有判定部１１２は、たとえば、第１値情報（図９に例示）と、第２値情報（図１０に例示）とを入力した場合に、重複度として、０．６７（＝２÷３）を算出する。
【００５４】
また、たとえば、第１値情報が図９に例示された１月度会員ＩＤ情報であり、第２値情報が図１１に例示された２月度会員ＩＤ情報である場合に、第１値情報、及び、第２値情報に共通して含まれている要素は、会員ＩＤ「１０１」という１つの要素である。この場合に、第２値情報におけるリストは、会員ＩＤ「１０１」、会員ＩＤ「１０２」、会員ＩＤ「１０５」、及び、会員ＩＤ「１０６」という４個の要素を含んでいる。第１値情報（図９に例示）におけるリストに含まれている要素の個数が、第２値情報（図１１に例示）におけるに含まれている要素の個数より少ないので、共有判定部１１２は、式１に従い、重複度を、０．３３（＝１÷３）と算出する。図１１は、値情報の一例を概念的に表す図である。
【００５５】
次に、共有判定部１１２は、算出した重複度が条件を満たしているのか否かを判定する（ステップＳ１１７）。該条件は、たとえば、式１に従い算出された重複度が、重複度に関する閾値を超えているか否かである。閾値は、所定の値であってもよいし、図４を参照しながら後述するように、閾値算出部１０４が算出する値であってもよい。たとえば、閾値が０．５である場合に、共有判定部１１２は、算出された重複度「０．６７」と、閾値「０．５」との大きさを比較する。
【００５６】
算出した重複度が条件を満たしてない場合に（ステップＳ１１７にてＮＯ）、ステップＳ１１８乃至ステップＳ１２０に示された処理は実行されない。
【００５７】
算出した重複度が条件を満たしている場合に（ステップＳ１１７にてＹＥＳ）、リスト作成部１１３は、共有判定部１１２が重複度を算出した対象である第１値情報（図９に例示）、及び、第２値情報（図１０に例示）に関する共有リストを作成する（ステップＳ１１８）。共有リストは、入力したリストに含まれている値が、過不足なく、かつ、重複なく含まれているリストを表す。たとえば、図９に例示された第１値情報内のリスト「１０１、１０３、１０４」と、図１０に例示された第２値情報内のリスト「１０１、１０２、１０３、１０５」とに関して、リスト作成部１１３は、共有リスト「１０１、１０２、１０３、１０４、１０５」（図１２に例示、後述する）を作成する。リスト作成部１１３は、作成した該共有リストを位置処理部１１４に対して出力する。
【００５８】
位置処理部１１４は、項目選択部１１１が出力した対象項目情報（たとえば、項目「会員ＩＤ」）と、リスト作成部１１３が作成した共有リスト（図１２に例示）とを入力し、入力した共有リストと、入力した対象項目情報とに基づき、第１値情報（図９に例示）、及び、第２値情報（図１０に例示）に含まれている位置情報を更新する（ステップＳ１１９）。
【００５９】
図１２乃至図１４を参照しながら、位置処理部１１４が位置情報を更新する処理について具体的に説明する。図１２は、更新する処理において作成される差分位置情報、及び、共有リストの一例を概念的に表す図である。図１３は、第１値情報が更新された値情報の一例を概念的に表す図である。図１４は、第２値情報が更新された値情報の一例を概念的に表す図である。
【００６０】
位置処理部１１４は、入力した共有リスト（図１２に例示）と、処理対象である第１値情報（図９に例示）、及び、第２値情報（図１０に例示）に含まれているリストとの差分を表す差分位置情報（図１２に例示）を、それぞれ作成する。すなわち、位置処理部１１４は、共有リスト（図１２に例示）と、処理対象である値情報（図９、または、図１０に例示）に含まれているリストとに関して、ある会員ＩＤに関連付けされた位置の差分を、リストに含まれている各要素に関して算出する。
【００６１】
たとえば、位置処理部１１４は、第１値情報（図９に例示）におけるリストに基づき、会員ＩＤ「１０３」に関連付けされた位置を「２」を特定し、共有リスト（図１２に例示）に基づき、会員ＩＤ「１０３」に関連付けされた位置を「３」を特定する。次に、位置処理部１１４は、特定した「２」と、特定した「３」との差分を表す「＋１」を算出する（図１２における会員ＩＤ情報（１月）内の位置「２」の行）。また、位置処理部１１４は、第１値情報（図９に例示）に基づき、会員ＩＤ「１０１」に関連付けされた位置を「１」を特定し、共有リスト（図１２に例示）に基づき、会員ＩＤ「１０１」に関連付けされた位置を「１」を特定する。次に、位置処理部１１４は、特定した「１」と、特定した「１」との差分を表す「０」を算出する（図１２における会員ＩＤ情報（１月）内の位置「１」の行）。位置処理部１１４は、処理対象である値情報（図９、及び、図１０に例示）に含まれているリストに含まれている各要素に関して差分を算出する（図１２における会員ＩＤ情報（１月）、及び、会員ＩＤ情報（３月））。
【００６２】
次に、位置処理部１１４は、第１値情報（図９に例示）、及び、第２値情報（図１０に例示）内の位置情報に含まれている位置に、算出された差分位置情報において、該位置に関連付けされた差分を加算する処理を、該位置情報に含まれている各位置に関して実行する。
【００６３】
たとえば、図９に例示された１月度会員ＩＤ情報を参照すると、位置情報には、位置「１、２、２、・・・、３、２」が含まれている。位置処理部１１４は、１月度会員ＩＤ情報に関して作成した差分位置情報（図１２における会員ＩＤ情報（１月））に基づき、位置「１」に関連付けされた差分が「０」であることを特定し、位置「１」に関連付けされた差分が「１」であることを特定する。位置処理部１１４は、位置「１」に対して差分「０」を加算することによって「１」を算出し、位置「２」に対して差分「＋１」を加算することによって「３」を算出する。位置処理部１１４は、図９に例示された第１値情報内の位置情報に含まれている各位置に対して、上述した演算を実行することによって、図１３に例示された会員ＩＤ情報を作成する。図１３は、会員ＩＤ情報の一例を概念的に表す図である。尚、図１３においては、説明の便宜上、図９に例示された第１値情報から値が変化した要素には、丸印「○」を付している。この処理の結果、図１３に例示されているように、位置処理部１１４は、図９に例示された第１値情報における位置「１、２、２、・・・、３、２」が更新された位置「１、３、３、・・・、４、３」（図１３に例示）を作成する。
【００６４】
位置処理部１１４は、第１値情報に関して実行した処理と同様の処理を、第２値情報に関して実行することによって、第２値情報（図１０に例示）における行番号「１、２、３、２，４、２、１、３」を、行番号「１、２、３、２、５、２、１、３」（図１４に例示）に更新する。図１４は、会員ＩＤ情報の一例を概念的に表す図である。
【００６５】
図３に示されたステップＳ１１９における処理が実行された後に、位置処理部１１４は、記憶部１０５に格納されている処理対象である値情報（図９、及び、図１０に例示）を、作成された位置情報を含む値情報（図１３、及び、図１４に例示）に更新する。
【００６６】
次に、図４を参照しながら、閾値算出部１０４における処理について説明する。図４は、第１の実施形態に係る閾値算出部１０４における処理の流れを示すフローチャートである。
【００６７】
閾値算出部１０４は、クエリ解析部１０２と、クエリ処理部１０３と、リスト更新部１０６とは独立に処理を実行する。閾値算出部１０４は、入力された複数のテーブル情報（図５に例示）に共有して含まれている項目が結合項目として組み合わされたクエリを作成することによって、該試験結合クエリを作成する（ステップＳ１５１）。
【００６８】
説明の便宜上、テーブル情報Ａが項目ａ１、項目ａ２、及び、項目ａ３を含み、テーブル情報Ｂが項目ｂ１、項目ｂ２、及び、項目ｂ３を含んでいたとする。
【００６９】
項目ｂ１と項目ａ３とが同じ項目を表す場合に、閾値算出部１０４は、たとえば、以降に示すクエリＢを作成する。
【００７０】
「ＳＥＬＥＣＴ  ａ１，ｂ２  ＦＲＯＭ    Ａ，Ｂ  ＷＨＥＲＥ  Ａ．ａ３＝Ｂ．ｂ１」・・・（クエリＢ）。
【００７１】
クエリＢは、テーブル情報Ａ、及び、テーブル情報Ｂから、項目ａ３に関する値と、項目ｂ１に関する値とが一致しているレコードに関して、項目ａ１に関する値と、項目ｂ２に関する値とを選択する要求を表す。
【００７２】
尚、上述した閾値算出部１０４に関する説明においては、説明の便宜上、処理対象はテーブル情報（図５に例示）であるとしたが、閾値算出部１０４は、リスト更新部１０６と同様に、ＦＡＳＴ形式に従った値情報（図６乃至図８に例示）に関して処理を実行する。
【００７３】
閾値算出部１０４は、必ずしも、処理対象である値情報（たとえば、１月度取引情報（図９）、３月度取引情報（図１０））を用いて試験結合クエリを作成する必要はなく、処理対象とは異なる値情報を用いて試験結合クエリを作成してもよい。たとえば、データベース管理システム１０１に、値情報Ａ、値情報Ｂ、値情報Ｃ、及び、値情報Ｄが格納されており、処理対象は、値情報Ｂ、及び、値情報Ｃであるとする。この場合に、試験結合クエリは、たとえば、値情報Ａ、及び、値情報Ｂ、または、値情報Ｃ、及び、値情報Ｄを用いて作成されてもよい。
【００７４】
次に、閾値算出部１０４は、２つの値情報に関して、上述した共有リスト、共有位置情報、及び、該共有リストを作成する基であるリスト間の重複度を算出する（ステップＳ１５２）。次に、閾値算出部１０４は、該共有リスト、及び、該共有位置情報を算出する処理と、該共有リスト、及び、該共有位置情報に基づき該試験結合クエリに応じた処理とに要した所要時間（以降、「第１所要時間」と表す）を測定する（ステップＳ１５３）。次に、閾値算出部１０４は、該試験結合クエリに関して、該共有リストを作成しなかった場合に該試験結合クエリを処理するのに要する所要時間（以降、「第２所要時間」と表す）を測定する（ステップＳ１５４）。閾値算出部１０４は、測定された第１所要時間と、測定された第２所要時間とを比較する。
【００７５】
第１所要時間が第２所要時間よりも短い場合に（ステップＳ１５５にてＹＥＳ）、閾値算出部１０４は、０から該重複度までのいずれかの値を閾値として設定する（ステップＳ１５６）。第１所要時間が第２所要時間以上である場合に（ステップＳ１５５にてＮＯ）、閾値算出部１０４は、該重複度から１までのいずれかの値を閾値として設定する（ステップＳ１５７）。
【００７６】
閾値算出部１０４は、上述したように閾値を設定することによって、クエリに応じた処理時間が短い処理を選択することができるという効果を奏する。
【００７７】
以降説明の便宜上、閾値算出部１０４が閾値を設定する基となった値情報を、「第５値情報」、及び、「第６値情報」と表すこともある。この場合に、第５値情報は、必ずしも、第１値情報と同じでなくともよい。第６値情報は、必ずしも、第２値情報と同じでなくともよい。
【００７８】
尚、値情報に含まれている各要素に関して、データの型は、必ずしも、数値型である必要はなく、文字型等の型であってもよい。すなわち、値情報に含まれている各要素に関するデータ型は、上述した例に限定されない。
【００７９】
次に、第１の実施形態に係るデータベース管理システム１０１に関する効果について説明する。
【００８０】
第１の実施形態に係るデータベース管理システム１０１によれば、検索効率が悪い情報であっても、より少ない記憶容量、より短い処理時間にて検索することが可能な情報に更新することができる。
【００８１】
この理由は、第１値情報と、第２値情報とに関する重複度が所定の条件を満たしている値情報のみに対して、データベース管理システム１０１が、該第１値情報と、該第２値情報とに共有している共有値情報を作成し、その後、該第１値情報と、該第２値情報と削除するからである。より詳細に説明すると、該第１値情報、及び、該第２値情報が重複している重複度が大きな値であるほど、該第１値情報の大きさと、該第２値情報の大きさとを足した大きさからの削減量は多い。これに対して、重複度が小さな値の場合には、本実施形態に係るデータベース管理システム１０１が共有値情報を作成しないので、作成する処理時間を減らすことができる。したがって、第１の実施形態に係るデータベース管理システム１０１によれば、検索効率が悪い情報であっても、より少ない記憶容量、より短い処理時間にて検索することが可能な情報に更新することができる。
【００８２】
また、式１に従い、「リストＡに含まれている要素の個数」（本実施形態において、リストＡは、リストに含まれている要素の個数が少ない方のリスト）に対する重複度を算出した。この算出処理によって、より少ない記憶容量にて検索することが可能な情報に更新することができるという効果を奏する。この理由は、重複度が、リストに含まれている個数が少ない値情報に対する割合に応じて算出され、この結果、重複度が所定の条件を満たす可能性が、より高いからである。
【００８３】
尚、リストＡは、リストに含まれている要素の個数が多い方のリストであってもよい。この算出処理によって、より短い処理時間にて検索することが可能な情報に更新することができる。この理由は、重複度が、リストに含まれている個数が多い値情報に対する割合に応じて算出され、この結果、重複度が所定の条件を満たす可能性が、より低いからである。
【００８４】
また、リストＡは、第１値情報内のリストに含まれている値と、第２値情報内のリストに含まれている値とを、とも含むリストであって、かつ、該リストにおける値が重複していないリストであってもよい。この算出処理によって、より短い処理時間にて検索することが可能な情報に更新することができる。この理由は、第１値情報と、第２値情報とのうち、短い値情報を選択する処理（図３におけるステップＳ１１５）が必要ないからである。
【００８５】
＜第２の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第２の実施形態について説明する。
【００８６】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【００８７】
図１５を参照しながら、第２の実施形態に係るデータベース管理システム１２１について説明する。図１５は、本発明の第２の実施形態に係るデータベース管理システム１２１が有する構成を表すブロック図である。
【００８８】
第２の実施形態に係るデータベース管理システム１２１は、クエリ解析部１０２と、クエリ処理部１０３と、閾値算出部１０４と、記憶部１０５と、リスト更新部１２６とを有する。リスト更新部１２６は、項目選択部１１１と、共有判定部１２２と、リスト作成部１１３と、位置処理部１１４と、データ管理部１１５とを有する。
【００８９】
データベース管理システム１２１は、クライアント２０１に通信接続することができる。
【００９０】
リスト更新部１２６は、たとえば、図１７に例示されたテーブル情報に含まれている、共有する処理に関して実行する処理の種類を表す共有情報に基づき、図１６に示す処理（後述する）に従い処理を実行する。図１７は、テーブル情報の一例を概念的に表す図である。
【００９１】
テーブル情報は、複数の項目に関する値が関連付けされた情報である。図１７に例示されたテーブル情報は、たとえば、項目「取引ＩＤ」と、項目「会員ＩＤ」と、項目「取引日」とが関連付けされた取引情報である。さらに、各項目に関して、共有化処理において実行する処理の種類、または、共有化処理しないこと表す共有情報が関連付けされている。説明の便宜上、図１７に例示されたテーブル情報の各行に対して行番号が付されている。値情報は、必ずしも、明示的に行番号を含む必要はない。
【００９２】
図１７に例示されたテーブル情報においては、項目「取引ＩＤ」と、共有情報「実行する」とが関連付けされていている。これは、項目「取引ＩＤ」に関して、図３に示されたステップＳ１１８乃至ステップＳ１２０に示された処理のみを実行することを表す。図１７に例示されたテーブル情報においては、項目「会員ＩＤ」と、共有情報「」（空値）とが関連付けされていている。これは、項目「会員ＩＤ」に関して、図３に示された処理を実行することを表す。図１７に例示されたテーブル情報においては、項目「取引日」と、共有情報「実行しない」とが関連付けされていている。これは、項目「取引日」に関して、図３に示された処理を実行しないことを表す。
【００９３】
テーブル情報は、図１７に例示されたテーブル情報に限定されず、たとえば、より多くの項目に関する値を含んでいてもよい。また、共有情報を表す値は、数字、符号、または、記号等であってもよく、上述した例に限定されない。
【００９４】
図１６を参照しながら、第２の実施形態に係るリスト更新部１２６における処理について説明する。図１６は、第２の実施形態に係るリスト更新部１２６における処理の流れを示すフローチャートである。
【００９５】
まず、クエリ解析部１０２が受信したクエリを解析することによって特定した処理に基づき、データ管理部１１５は、処理対象である値情報（図６乃至図８に例示）を、データ管理部１１５から読み取る（ステップＳ１１１）。項目選択部１１１は、特定された処理に基づき、データ管理部１１５が読み取った値情報において、それぞれ、共有化する対象である値情報（説明の便宜上、「第１値情報」、「第２値情報」と表す）を選択する（ステップＳ１１２）。
【００９６】
共有判定部１２２は、たとえば、テーブル情報（図１７）に含まれている共有情報を、共有化する対象である値情報に関して特定する。共有判定部１２２は、特定した共有情報の値が「実行する」であるか否かを判定する（ステップＳ１２３）。特定した共有情報の値が「実行する」である場合に（ステップＳ１２３にてＹＥＳ）、リスト更新部１２６は、図３におけるステップＳ１１８以降の処理を開始する（ステップＳ１２６）。特定した共有情報の値が「実行する」でない場合に（ステップＳ１２３にてＮＯ）、リスト更新部１２６は、特定した共有情報の値が「」（空値）であるか否かを判定する（ステップＳ１２４）。特定した共有情報の値が「」（空値）である場合に（ステップＳ１２４にてＹＥＳ）、リスト更新部１２６は、図３におけるステップＳ１１３以降の処理を開始する（ステップＳ１２５）。特定した共有情報の値が「」（空値）でない場合に（ステップＳ１２４にてＮＯ）、ステップＳ１２５に示す処理は実行されない。
【００９７】
次に、第２の実施形態に係るデータベース管理システム１２１に関する効果について説明する。
【００９８】
第２の実施形態に係るデータベース管理システム１２１によれば、検索効率が悪い情報であっても、より少ない記憶容量、より短い処理時間にて検索することが可能な情報に更新することができる。この理由は、第２の実施形態に係るデータベース管理システム１２１が有する構成は、第１の実施形態に係るデータベース管理システム１０１が有する構成を含むからである。
【００９９】
さらに、本実施形態に係る第２の実施形態に係るデータベース管理システム１２１によれば、さらに短い処理時間にて更新することが可能である。この理由は、データベースに対して共有化できる項目（値情報）がある場合には、該項目に関する共有情報に基づき、共有リストを作成する処理等を少なくすることができるからである。
【０１００】
＜第３の実施形態＞
次に、上述した第１の実施形態を基本とする本発明の第３の実施形態について説明する。
【０１０１】
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第１の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
【０１０２】
図１８を参照しながら、第３の実施形態に係るデータベース管理システム１３１について説明する。図１８は、本発明の第３の実施形態に係るデータベース管理システム１３１が有する構成を表すブロック図である。
【０１０３】
第３の実施形態に係るデータベース管理システム１３１は、クエリ解析部１０２と、クエリ処理部１０３と、閾値算出部１０４と、記憶部１０５と、リスト更新部１３６とを有する。リスト更新部１３６は、項目選択部１１１と、共有判定部１１２と、リスト作成部１１３と、位置処理部１１４と、データ管理部１１５と、共有化推定部１３７とを有する。
【０１０４】
データベース管理システム１３１は、クライアント２０１に通信接続することができる。
【０１０５】
図１９を参照しながら、第３の実施形態に係るリスト更新部１３６における処理について説明する。図１９は、第３の実施形態に係るリスト更新部１３６における処理の流れを示すフローチャートである。
【０１０６】
共有化推定部１３７は、所定のタイミング（たとえば、定期的、システム負荷が低い時間帯等）にて、記憶部１０５から値情報（図６乃至図８に例示）を読み取る。共有化推定部１３７は、読み取った値情報に、共有リストを作成することが可能な値情報が含まれているか否かを判定する。説明の便宜上、共有リストが作成される対象である値情報を、それぞれ、「第３値情報」、及び、「第４値情報」と表す。尚、第３値情報は、必ずしも、第１値情報、または、第５値情報と同じでなくともよい。尚、第４値情報は、必ずしも、第２値情報、または、第６値情報と同じでなくともよい。
【０１０７】
該判定する処理について、より具体的に説明する。
【０１０８】
共有化推定部１３７は、各テーブル情報から、第３値情報と、第４値情報とを選択する（ステップＳ１３１）。共有化推定部１３７は、選択した第３値情報におけるリスト、及び、選択した第４値情報におけるリストが類似している程度を表す類似度を算出する。２つのリストに関する類似度を算出する方法については、多くの方法が知られているので、本実施形態においては、類似度を算出する方法に関する説明を省略する。
【０１０９】
共有化推定部１３７は、算出した類似度が閾値よりも大きいか否かを判定する（ステップＳ１３２）。
【０１１０】
算出した類似度が閾値よりも大きな値である場合に（ステップＳ１３２にてＹＥＳ）、共有化処理（すなわち、図３におけるステップＳ１１８、乃至、ステップＳ１２０に示された処理）が実行される（ステップＳ１３３）。この場合に、データベース管理システム１３１は、ステップＳ１３３に示された処理の代わりに、第３値情報（第４値情報）を表す情報（たとえば、図５に例示された「会員ＩＤ」等の項目）を、クライアント２０１に送信してもよい。
【０１１１】
クライアント２０１は、データベース管理システム１３１が送信した項目名等の情報を受信し、受信した項目に関して、たとえば、図１７に例示されたテーブル情報における共有情報を設定する。
【０１１２】
算出した類似度が閾値以下である場合に（ステップＳ１３２にてＮＯ）、ステップＳ１３３に示された処理は実行されない。
【０１１３】
ステップＳ１３１乃至ステップＳ１３３に示された処理は、各値情報に関して実行される。
【０１１４】
共有化推定部１３７は、第３値情報、及び、第４値情報に関する処理が完了したことを表す情報を記憶部１０５に格納する（ステップＳ１３４）。
【０１１５】
共有化推定部１３７は、第３値情報、及び、第４値情報に関する処理が完了したことを表す情報が記憶部１０５に格納されている場合には、図１９に示された処理を実行しない。
【０１１６】
次に、第３の実施形態に係るデータベース管理システム１３１に関する効果について説明する。
【０１１７】
第３の実施形態に係るデータベース管理システム１３１によれば、検索効率が悪い情報であっても、より少ない記憶容量、より短い処理時間にて検索することが可能な情報に更新することができる。この理由は、第３の実施形態に係るデータベース管理システム１３１が有する構成は、第１の実施形態に係るデータベース管理システム１０１が有する構成を含むからである。
【０１１８】
さらに、第３の実施形態に係るデータベース管理システム１３１によれば、クエリによらずに、さらに、より少ない記憶容量、より短い処理時間にて検索することが可能な情報に更新することができる。この理由は、共有化推定部１３７がクエリによらずに、共有化処理を実行するからである。
【０１１９】
＜第４の実施形態＞
次に、本発明の第４の実施形態について説明する。
【０１２０】
図２０を参照しながら、第４の実施形態に係る更新装置１４１について説明する。図２０は、本発明の第４の実施形態に係る更新装置１４１が有する構成を表すブロック図である。
【０１２１】
第４の実施形態に係る更新装置１４１は、重複度算出部１４２と、値情報更新部１４３とを有する。更新装置１４１は、記憶部１４４に接続（または、通信接続）されている。
【０１２２】
重複度算出部１４２は、２つの値情報（図９等に例示、以降、「第１値情報」、及び、「第２値情報」と表す）を、たとえば、記憶部１４４から読み取る。重複度算出部１４２は、たとえば、式１に従い、第１値情報におけるリストに含まれている値と、第２値情報におけるリストに含まれている値（要素）とが重複している程度を表す重複度を算出する。重複度算出部１４２は、算出した重複度が所定の条件を満たしているか否かを判定する。たとえば、所定の条件は、重複度がある閾値を超えているか否かを表す条件である。
【０１２３】
算出された重複度が所定の条件を満たしている場合に、値情報更新部１４３は、第１値情報におけるリストに含まれている値と、第２値情報におけるリストに含まれている値とを、ともに含み、かつ、重複した値を含まない共有リスト（図１２に例示）を作成する。すなわち、共有リストは、第１値情報におけるリストと、第２値情報におけるリストとの和集合を表す。
【０１２４】
次に、値情報更新部１４３は、第１値情報における位置情報と、第２値情報における位置情報とに関して、それぞれ、共有リストにおける位置を表す共有位置情報を作成する。その後、値情報更新部１４３は、作成した共有位置情報、及び、共有リストを記憶部１４４に格納し、さらに、記憶部１４４から第１値情報と、第２値情報とを削除する。すなわち、値情報更新部１４３は、第１値情報における位置情報と、第２値情報における位置情報とを、共有リストに基づき更新し、第１値情報に含まれているリストと、第２値情報に含まれているリストとを記憶部１４４から削除する。
【０１２５】
重複度算出部１４２は、たとえば、図１（図１８）における共有判定部１１２、データ管理部１１５、または、図１５における共有判定部１２２等が有する機能を用いて実現することができる。値情報更新部１４３は、図１（図１５、または、図１８）におけるリスト作成部１１３、位置処理部１１４、及び、データ管理部１１５が有する機能を用いて実現することができる。言い換えれば、更新装置１４１は、図１におけるリスト更新部１０６、図１５におけるリスト更新部１２６、または、図１８におけるリスト更新部１３６が有する機能を用いて実現することができる。
【０１２６】
次に、第４の実施形態に係る更新装置１４１に関する効果について説明する。
【０１２７】
第４の実施形態に係る更新装置１４１によれば、検索効率が悪い情報であっても、より少ない記憶容量、より短い処理時間にて検索することが可能な情報に更新することができる。この理由は、第１値情報と、第２値情報とに関する重複度が所定の条件を満たしている値情報のみに対して、更新装置が、該第１値情報と、該第２値情報とに共有している共有値情報を作成し、その後、該第１値情報と、該第２値情報と削除するからである。より詳細に説明すると、該第１値情報、及び、該第２値情報が重複している重複度が大きな値であるほど、該第１値情報の大きさと、該第２値情報の大きさとを足した大きさからの削減量は多い。これに対して、重複度が小さな値の場合には、本実施形態に係る更新装置１４１が共有値情報を作成しないので、作成する処理時間を減らすことができる。したがって、第４の実施形態に係る更新装置１４１によれば、検索効率が悪い情報であっても、より少ない記憶容量、より短い処理時間にて検索することが可能な情報に更新することができる。
【０１２８】
（ハードウェア構成例）
上述した本発明の各実施形態における更新装置、または、データベース管理システムを、１つの計算処理装置（情報処理装置、コンピュータ）を用いて実現するハードウェア資源の構成例について説明する。但し、係るデータベース管理システム、または、係る更新装置は、物理的または機能的に少なくとも２つの計算処理装置を用いて実現してもよい。また、係るデータベース管理システム、または、係る更新装置は、専用の装置として実現してもよい。
【０１２９】
図２１は、第１の実施形態乃至第３の実施形態に係るデータベース管理システム、または、第４の実施形態に係る更新装置を実現可能な計算処理装置のハードウェア構成例を概略的に示す図である。計算処理装置２０は、中央処理演算装置（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ、以降「ＣＰＵ」と表す）２１、メモリ２２、ディスク２３、不揮発性記録媒体２４、通信インターフェース（以降、「通信ＩＦ」と表す）２７、及び、ディスプレー２８を有する。計算処理装置２０は、入力装置２５、出力装置２６に接続可能であってもよい。計算処理装置２０は、通信ＩＦ２７を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
【０１３０】
不揮発性記録媒体２４は、コンピュータが読み取り可能な、たとえば、コンパクトディスク（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ）、デジタルバーサタイルディスク（Ｄｉｇｉｔａｌ＿Ｖｅｒｓａｔｉｌｅ＿Ｄｉｓｃ）である。また、不揮発性記録媒体２４は、ユニバーサルシリアルバスメモリ（ＵＳＢメモリ）、ソリッドステートドライブ（Ｓｏｌｉｄ＿Ｓｔａｔｅ＿Ｄｒｉｖｅ）等であってもよい。不揮発性記録媒体２４は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体２４は、上述した媒体に限定されない。また、不揮発性記録媒体２４の代わりに、通信ＩＦ２７、及び、通信ネットワークを介して係るプログラムを持ち運びしてもよい。
【０１３１】
すなわち、ＣＰＵ２１は、ディスク２３に記憶されているソフトウェア・プログラム（コンピュータ・プログラム：以下、単に「プログラム」と称する）を、実行する際にメモリ２２にコピーし、演算処理を実行する。ＣＰＵ２１は、プログラム実行に必要なデータをメモリ２２から読み取る。表示が必要な場合には、ＣＰＵ２１は、ディスプレー２８に出力結果を表示する。外部への出力が必要な場合には、ＣＰＵ２１は、出力装置２６に出力結果を出力する。外部からプログラムを入力する場合、ＣＰＵ２１は、入力装置２５からプログラムを読み取る。ＣＰＵ２１は、上述した図１、図１５、図１８、または、図２０に示す各部が表す機能（処理）に対応するところのメモリ２２にある更新プログラム（図２乃至図４、図１６、または、図１９）を解釈し実行する。ＣＰＵ２１は、上述した本発明の各実施形態において説明した処理を順次実行する。
【０１３２】
すなわち、このような場合、本発明は、係る更新プログラムによっても成し得ると捉えることができる。さらに、係る更新プログラムが記録されたコンピュータが読み取り可能な不揮発性の記録媒体によっても、本発明は成し得ると捉えることができる。
【０１３３】
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【０１３４】
１０１    データベース管理システム
１０２    クエリ解析部
１０３    クエリ処理部
１０４    閾値算出部
１０５    記憶部
１０６    リスト更新部
１１１    項目選択部
１１２    共有判定部
１１３    リスト作成部
１１４    位置処理部
１１５    データ管理部
２０１    クライアント
１２１    データベース管理システム
１２６    リスト更新部
１２２    共有判定部
１３１    データベース管理システム
１３６    リスト更新部
１３７    共有化推定部
１４１    更新装置
１４２    重複度算出部
１４３    値情報更新部
１４４    記憶部
２０    計算処理装置
２１    ＣＰＵ
２２    メモリ
２３    ディスク
２４    不揮発性記録媒体
２５    入力装置
２６    出力装置
２７    通信ＩＦ
２８    ディスプレー
【図１】
0006776562.tif 000002
【図２】
0006776562.tif 000003
【図３】
0006776562.tif 000004
【図４】
0006776562.tif 000005
【図５】
0006776562.tif 000006
【図６】
0006776562.tif 000007
【図７】
0006776562.tif 000008
【図８】
0006776562.tif 000009
【図９】
0006776562.tif 000010
【図１０】
0006776562.tif 000011
【図１１】
0006776562.tif 000012
【図１２】
0006776562.tif 000013
【図１３】
0006776562.tif 000014
【図１４】
0006776562.tif 000015
【図１５】
0006776562.tif 000016
【図１６】
0006776562.tif 000017
【図１７】
0006776562.tif 000018
【図１８】
0006776562.tif 000019
【図１９】
0006776562.tif 000020
【図２０】
0006776562.tif 000021
【図２１】
0006776562.tif 000022