(57)【要約】【課題】テーブルの結合を伴うデータベースの検索を高速化できるようにすることを目的とする。【解決手段】切替条件記憶部２３０は、データ項目の項目値と当該項目値を含んだ検索対象データのデータ数とを対応付ける。分布情報記憶部２２０は、データ数の範囲と検索クエリの形式とを対応付ける。検索受付部２０１は、項目値を含む検索条件を受け付ける。ヒット数算出部２０４は、検索条件に含まれる項目値と同じ項目値に対応付けられたデータ数を切替条件記憶部２３０から取得する。検索方式切替部２０５は、ヒット数算出部２０４によって取得されたデータ数を含むデータ数の範囲に対応付けられた検索クエリの形式を切替条件記憶部２３０から取得する。検索クエリ発行部２０６は、検索方式切替部２０５によって取得された検索クエリの形式を用いて検索クエリを発行して検索結果を取得する。【選択図】図１
2013239077.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のデータ項目それぞれの項目値を含んだ複数の検索対象データを記憶したデータベースを検索するデータベース検索装置であって、
項目値と当該項目値を含んだ検索対象データのデータ数とを対応付けるデータ数記憶部と、
データ数の範囲と検索クエリの形式とを対応付けるクエリ形式記憶部と、
項目値を含む検索条件が入力される検索条件入力部と、
前記検索条件入力部に入力された検索条件に含まれる項目値と同じ項目値に対応付けられたデータ数を前記データ数記憶部から取得するデータ数取得部と、
前記データ数取得部によって取得されたデータ数を含むデータ数の範囲に対応付けられた検索クエリの形式を前記クエリ形式記憶部に基づいて判定するクエリ形式判定部と、
前記クエリ形式判定部によって判定された検索クエリの形式に従って前記検索条件を満たす検索対象データを検索するための検索クエリを生成する検索クエリ生成部と、
前記検索クエリ生成部によって生成された検索クエリを用いて前記データベースを検索することによって、前記検索条件を満たす検索対象データを含んだ検索結果を取得するデータベース検索部と、
前記データベース検索部によって取得された検索結果を出力する検索結果出力部と
を備えることを特徴とするデータベース検索装置。
【請求項２】
前記データベース検索装置は、さらに、
項目値と当該項目値を含んだ検索対象データの有無とを対応付けるデータ有無記憶部と、
前記検索条件に含まれる項目値と同じ項目値に対応付けられた検索対象データの有無を前記データ有無記憶部から取得し、取得した検索対象データの有無に基づいて前記検索条件を満たす検索対象データが有るか否かを判定するデータ有無判定部とを備え、
前記データベース検索部は、前記データ有無判定部によって当該検索対象データが有ると判定された場合に前記データベースを検索し、前記データ有無判定部によって当該検索対象データが無いと判定された場合に前記データベースを検索しない
ことを特徴とする請求項１記載のデータベース検索装置。
【請求項３】
前記検索結果出力部は、前記データベース検索部が前記データベースを検索しない場合、前記検索条件を満たす検索対象データが無いことを示す検索結果を出力する
ことを特徴とする請求項２記載のデータベース検索装置。
【請求項４】
前記データベース検索装置は、さらに、
前記データベースの更新内容を示す更新要求が入力される更新要求入力部と、
前記更新要求入力部に入力された更新要求に従って前記データベースを更新するデータベース更新部と、
前記更新要求入力部に入力された更新要求に従って前記データ有無記憶部に記憶された少なくともいずれかの検索対象データの有無が変わるか否かを判定し、少なくともいずれかの検索対象データの有無が変わると判定した場合、前記データベースの更新と同期して当該検索対象データの有無を変更するデータ有無変更部とを備える
ことを特徴とする請求項２または請求項３記載のデータベース検索装置。
【請求項５】
前記データ有無変更部は、
少なくともいずれかの検索対象データの有無が変わると判定した場合、前記データベースの更新と同期して前記データ数記憶部の当該検索対象データのデータ数を変更し、
いずれの検索対象データの有無も変わらないと判定した場合、前記データベースの更新と非同期で前記データ数記憶部の当該検索対象データのデータ数を変更する
ことを特徴とする請求項４記載のデータベース検索装置。
【請求項６】
前記データベース検索装置は、さらに、
所定の更新周期が経過する毎に前記データベースを検索し、検索の結果に基づいて前記データ数記憶部に記憶された各検索対象データのデータ数を更新するデータ数更新部を備える
ことを特徴とする請求項１から請求項５いずれかに記載のデータベース検索装置。
【請求項７】
前記データベースは、第一のデータ項目の項目値を含む第一テーブルと、第二のデータ項目の項目値を含む第二テーブルと、前記第一テーブルの項目値と前記第二テーブルの項目値とを対応付けるための中間テーブルとを用いて前記複数の検索対象データを記憶する
ことを特徴とする請求項１から請求項６いずれかに記載のデータベース検索装置。
【請求項８】
前記クエリ形式記憶部は、データ数の第一の範囲とｗｈｅｒｅ句を含む検索クエリとを対応付け、前記第一の範囲よりデータ数が大きい第二の範囲とｉｎ句を含む検索クエリとを対応付ける
ことを特徴とする請求項７記載のデータベース検索装置。
【請求項９】
前記クエリ形式記憶部は、前記第二の範囲よりデータ数が大きい第三の範囲とｅｘｉｓｔｓ句を含む検索クエリとを対応付ける
ことを特徴とする請求項８記載のデータベース検索装置。
【請求項１０】
前記クエリ形式記憶部は、前記第三の範囲よりデータ数が大きい第四の範囲と、前記第一テーブルと前記第二テーブルとを結合して検索するための検索クエリとを対応付ける
ことを特徴とする請求項９記載のデータベース検索装置。
【請求項１１】
１つ以上のデータ項目それぞれの項目値を含んだ複数の検索対象データを記憶したデータベースを検索するデータベース検索装置を用いるデータベース検索方法であって、
前記データベース検索装置は、項目値と当該項目値を含んだ検索対象データのデータ数とを対応付けるデータ数記憶部と、データ数の範囲と検索クエリの形式とを対応付けるクエリ形式記憶部と、検索条件入力部と、データ数取得部と、クエリ形式判定部と、検索クエリ生成部と、データベース検索部と、検索結果出力部とを備えるコンピュータであり、
前記検索条件入力部が、項目値を含む検索条件を入力し、
前記データ数取得部が、前記検索条件入力部に入力された検索条件に含まれる項目値と同じ項目値に対応付けられたデータ数を前記データ数記憶部から取得し、
前記クエリ形式判定部が、前記データ数取得部によって取得されたデータ数を含むデータ数の範囲に対応付けられた検索クエリの形式を前記クエリ形式記憶部に基づいて判定し、
前記検索クエリ生成部が、前記クエリ形式判定部によって判定された検索クエリの形式に従って前記検索条件を満たす検索対象データを検索するための検索クエリを生成し、
前記データベース検索部が、前記検索クエリ生成部によって生成された検索クエリを用いて前記データベースを検索することによって、前記検索条件を満たす検索対象データを含んだ検索結果を取得し、
前記検索結果出力部が、前記データベース検索部によって取得された検索結果を出力する
ことを特徴とするデータベース検索方法。
【請求項１２】
請求項１１記載のデータベース検索方法を前記データベース検索装置に実行させるためのデータベース検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、データベースを高速に検索するためのデータベース検索装置、データベース検索方法およびデータベース検索プログラムに関するものである。
【背景技術】
【０００２】
リレーショナルデータベースのデータ検索を高速化する技術において、一般的にはテーブル毎に列のヒストグラムといった統計情報を取得しておき、検索実行時に統計情報に基づいて適切な検索方法に切り替える方式が用いられていた。
但し、単一のテーブルで管理されているデータと複数のテーブルで管理されているデータとを紐付けて検索するためテーブル毎の統計情報だけでは高速化できない場合や、それ以上に高速化する必要がある場合がある。
このような場合、検索のヒット数を別途取得して検索先をキャッシュなどに切り替える方式が用いられていた（例えば、特許文献１）。
【０００３】
従来のデータ検索の高速化技術では、単一のテーブルで管理されているデータと複数のテーブルで管理されているデータとを紐付けて検索しようとすると、紐付けの過程で複数回のテーブルの結合を伴うため、ヒット数を検索する際に各テーブルをスキャンする処理が発生しやすい。そのため、ヒット数を取得してから検索を行った場合の処理コストと、ヒット数を取得せずに検索を行った場合の処理コストとの差が無くなってしまう。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−０６３２４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、例えば、データベースの検索を高速化できるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明のデータベース検索装置は、１つ以上のデータ項目それぞれの項目値を含んだ複数の検索対象データを記憶したデータベースを検索する。
前記データベース検索装置は、
項目値と当該項目値を含んだ検索対象データのデータ数とを対応付けるデータ数記憶部と、
データ数の範囲と検索クエリの形式とを対応付けるクエリ形式記憶部と、
項目値を含む検索条件が入力される検索条件入力部と、
前記検索条件入力部に入力された検索条件に含まれる項目値と同じ項目値に対応付けられたデータ数を前記データ数記憶部から取得するデータ数取得部と、
前記データ数取得部によって取得されたデータ数を含むデータ数の範囲に対応付けられた検索クエリの形式を前記クエリ形式記憶部に基づいて判定するクエリ形式判定部と、
前記クエリ形式判定部によって判定された検索クエリの形式に従って前記検索条件を満たす検索対象データを検索するための検索クエリを生成する検索クエリ生成部と、
前記検索クエリ生成部によって生成された検索クエリを用いて前記データベースを検索することによって、前記検索条件を満たす検索対象データを含んだ検索結果を取得するデータベース検索部と、
前記データベース検索部によって取得された検索結果を出力する検索結果出力部とを備える。
【発明の効果】
【０００７】
本発明によれば、例えば、データベースの検索を高速化することができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１におけるデータ検索システム９００の構成図。
【図２】実施の形態１における集約データベースサーバ３００のデータ構成の一例を示す図。
【図３】実施の形態１における分布情報記憶部２２０のデータ構成の一例を示す図。
【図４】実施の形態１における切替条件記憶部２３０のデータ構成の一例を示す図。
【図５】実施の形態１におけるデータ検索システム９００の検索処理の流れを示すシーケンス図。
【図６】実施の形態１におけるデータ検索システム９００の検索処理の流れを示すシーケンス図。
【図７】実施の形態１におけるデータ検索システム９００の検索処理の流れを示すシーケンス図。
【図８】実施の形態１における検索処理部２０２の処理のフローチャート。
【図９】実施の形態１におけるヒット数算出部２０４の処理のフローチャート。
【図１０】実施の形態１における検索方式切替部２０５の処理のフローチャート。
【図１１】実施の形態１における検索方式別のクエリシーケンスの一例を示す図。
【図１２】実施の形態１におけるデータ連携サーバ２００のハードウェア資源の一例を示す図。
【図１３】実施の形態２におけるデータ検索システム９００の構成図。
【図１４】実施の形態２におけるデータ検索システム９００のデータベース更新処理の流れを示すシーケンス図。
【図１５】実施の形態２における更新処理部２０９の処理のフローチャート。
【発明を実施するための形態】
【０００９】
実施の形態１．
データベースの検索を高速化するための形態について説明する。
【００１０】
図１は、実施の形態１におけるデータ検索システム９００の構成図である。
実施の形態１におけるデータ検索システム９００の構成について、図１に基づいて説明する。
【００１１】
図１において、実線の矢印は「要求（リクエスト）」を意味し、点線の矢印は「応答（レスポンス）」を意味している。
【００１２】
データ検索システム９００は、業務端末１００、データ連携サーバ２００および集約データベースサーバ３００を備える。
業務端末１００は、データ検索をデータ連携サーバ２００に要求するための装置である。
データ連携サーバ２００は、業務端末１００から要求されたデータ検索に応じて集約データベースサーバ３００に検索クエリを発行し、集約データベースサーバ３００から検索結果を取得し、取得した検索結果を業務端末１００に応答する装置である。
集約データベースサーバ３００は、データベースとして機能する装置である。
【００１３】
データ連携サーバ２００（データベース検索装置の一例）は、検索受付部２０１、検索処理部２０２、存在確認部２０３、ヒット数算出部２０４、検索方式切替部２０５、検索クエリ発行部２０６および分布情報生成部２０７を備える。
データ連携サーバ２００は、さらに、分布情報記憶部２２０と切替条件記憶部２３０とを備える。
以下に、データ連携サーバ２００が備える各構成の機能の概要を説明する。各構成の機能の詳細については別途説明する。
【００１４】
検索受付部２０１（検索条件入力部、検索結果出力部の一例）は、検索条件を含んだ検索要求を業務端末１００から受信し、検索結果を業務端末１００へ送信する。
検索処理部２０２（データ有無判定部の一例）は、検索要求に応じて検索処理を実行する。検索処理の詳細については別途説明する。
存在確認部２０３は、検索条件を満たすデータが存在するか否かを判定する。
ヒット数算出部２０４（データ数取得部の一例）は、検索条件を満たすデータの個数（ヒット数）を算出する。
検索方式切替部２０５（クエリ形式判定部の一例）は、ヒット数に応じて検索方式（検索クエリの形式）を選択する。
検索クエリ発行部２０６（検索クエリ生成部、データベース検索部の一例）は、選択された検索方式に従って検索クエリを生成し、生成した検索クエリを集約データベースサーバ３００に発行し、集約データベースサーバ３００から検索結果を取得する。
分布情報生成部２０７は、検索条件を満たすデータが存在するか否かの判定およびヒット数の算出を行うための分布情報を生成する。
【００１５】
分布情報記憶部２２０（データ数記憶部、データ有無記憶部の一例）は分布情報を記憶する。分布情報の詳細については別途説明する。
切替条件記憶部２３０（クエリ形式記憶部の一例）は、ヒット数に応じて検索方式を選択するための切替情報を記憶する。切替情報の詳細については別途説明する。
【００１６】
集約データベースサーバ３００は、地物テーブル３１０、中間テーブル３２０および設備テーブル３３０を備える。
地物テーブル３１０は、設備（地物の一例）が存在する場所を管理するためのテーブルである。
設備テーブル３３０は、設備の属性を管理するためのテーブルである。
中間テーブル３２０は、地物テーブル３１０と中間テーブル３２０とを関連付けるためのテーブルである。
【００１７】
次に、集約データベースサーバ３００が記憶するテーブルおよびデータ連携サーバ２００が記憶する情報について説明する。
【００１８】
図２は、実施の形態１における集約データベースサーバ３００のデータ構成の一例を示す図である。
実施の形態１における集約データベースサーバ３００のデータ構成の一例について、図２に基づいて説明する。
【００１９】
集約データベースサーバ３００は、地物テーブル３１０と中間テーブル３２０と設備テーブル３３０とを予め記憶する。
【００２０】
地物テーブル３１０は、「ＳＩＤ」「緯度」「経度」「メッシュ」などを対応付ける。
「ＳＩＤ」は、地物テーブル３１０のレコードまたは設備が存在する場所を識別する識別子を示す。
「緯度」「経度」は、設備が存在する地点の緯度または経度を示す。
「メッシュ」は、設備が存在する区域を識別する識別子を示す。対象地域はメッシュ状（碁盤目状）に区分けされているものとする。
【００２１】
設備テーブル３３０は、設備メタテーブル３３１、電柱テーブル３３２、変圧器テーブル３３３などによって構成される。
【００２２】
設備メタテーブル３３１は、「種別」「テーブル名」を対応付ける。
「種別」は、設備の種別（例えば、電柱または変圧器）を示す。
「テーブル名」は、設備の属性を管理するための属性テーブルの名称を示す。名称は識別子の一例である（以下同様）。
【００２３】
電柱テーブル３３２は、電柱（設備の一例）の属性を管理するための属性テーブルである。
電柱テーブル３３２は、「ＦＩＤ」「材質」「長さ」などを対応付ける。
「ＦＩＤ」は、電柱テーブル３３２のレコードまたは電柱の属性を識別する識別子を示す。
「材質」は、電柱の材質（属性の一例）を示す。
「長さ」は、電柱の長さ（属性の一例）を示す。
【００２４】
変圧器テーブル３３３は、変圧器（設備の一例）の属性を管理するための属性テーブルである。
変圧器テーブル３３３は、「ＦＩＤ」「容量」「電圧」などを対応付ける。
「ＦＩＤ」は、変圧器テーブル３３３のレコードまたは変圧器の属性を識別する識別子を示す。
「容量」は、変圧器の容量（属性の一例）を示す。
「電圧」は、変圧器の電圧（属性の一例）を示す。
【００２５】
中間テーブル３２０は、紐付けテーブル３２１、メタ採番テーブル３２２、採番テーブルＡ３２３、採番テーブルＢ３２４などによって構成される。
【００２６】
採番テーブルＡ３２３は、電柱テーブル３３２の「ＦＩＤ」とシステムで一意の「ＩＤ」とを対応付ける。
採番テーブルＢ３２４は、変圧器テーブル３３３の「ＦＩＤ」とシステムで一意の「ＩＤ」とを対応付ける。
【００２７】
メタ採番テーブル３２２は、「採番テーブル」「対象テーブル」を対応付ける。
「採番テーブル」は、採番テーブルの名称を示す。
「対象テーブル」は、属性テーブルの名称を示す。
【００２８】
紐付けテーブル３２１は、地物テーブル３１０の「ＳＩＤ」と採番テーブルの「ＩＤ」とメタ採番テーブル３２２の「採番テーブル」とを対応付ける。
【００２９】
図３は、実施の形態１における分布情報記憶部２２０のデータ構成の一例を示す図である。
実施の形態１における分布情報記憶部２２０のデータ構成の一例について、図３に基づいて説明する。
【００３０】
分布情報記憶部２２０は、設備有無情報２２１と設備依存情報２２２とを予め記憶する。
また、分布情報記憶部２２０は、メッシュ（区域）毎の設備統計情報２２３を予め記憶する。
【００３１】
設備有無情報２２１は、「メッシュ」「設備種別」「有無」を含む。
「メッシュ」は、区域を識別する識別子を示す。
「設備種別」は、設備の種別を示す。
「有無」は、当該区域に当該種別の設備が有るか否かを示す。
【００３２】
設備依存情報２２２は、「設備種別」「親設備」を含む。
「設備種別」は、設備の種別を示す。
「親設備」は、当該種別の設備を備える親設備の種別を示す。例えば、変圧器は電柱に設置されるため、変圧器の親設備は電柱である。また、電柱の親設備は無い。
【００３３】
設備統計情報２２３は、「設備種別」「検索条件」「仕様」「個数」を含む。
「設備種別」は、設備の種別を示す。
「検索条件」は、検索条件として指定される設備の属性の種類を示す。
「仕様」は、検索条件として指定される設備の属性の値を示す。
「個数」は、当該種別の設備のうち当該属性を有する設備の個数を示す。
【００３４】
分布情報生成部２０７（図１参照）は、集約データベースサーバ３００を「メッシュ」「設備種別」「検索条件」「仕様」別に検索し、検索結果に基づいて設備有無情報２２１および設備統計情報２２３を生成して分布情報記憶部２２０に予め記憶する。
また、ユーザは、設備依存情報２２２を生成して分布情報記憶部２２０に予め記憶する。
【００３５】
図４は、実施の形態１における切替条件記憶部２３０のデータ構成の一例を示す図である。
実施の形態１における切替条件記憶部２３０のデータ構成の一例について、図４に基づいて説明する。
【００３６】
切替条件記憶部２３０は、しきい値情報２３１、地物検索クエリ情報２３２、中間検索クエリ情報２３３および設備検索クエリ情報２３４を記憶する。
【００３７】
しきい値情報２３１は、「下限」「方式」を含む。
「下限」は、ヒット数の範囲の最小値を示す。
「方式」は、検索処理を高速化するための検索方式（検索クエリの形式）を識別する識別子を示す。
【００３８】
例えば、図４のしきい値情報２３１は、以下の内容を示している。
ヒット数が少ない場合（「ヒット数＜１０」または「１０≦ヒット数＜１００」）、ｗｈｅｒｅ句またはｉｎ句を用いた検索クエリによって検索処理が高速化される。
ヒット数が中程度の場合（「１００≦ヒット数＜１０００」）、ｅｘｉｓｔｓ句を用いた検索クエリによって検索処理が高速化される。
ヒット数が多い場合（「１０００≦ヒット数」）、集約データベースサーバ３００の各テーブルを結合する検索クエリによって検索処理が高速化される。
【００３９】
地物検索クエリ情報２３２は、地物テーブル３１０（図２参照）を検索するための検索クエリの情報を有する。
中間検索クエリ情報２３３は、中間テーブル３２０（図２参照）を検索するための検索クエリの情報を有する。
設備検索クエリ情報２３４は、設備テーブル３３０（図２参照）を検索するための検索クエリの情報を有する。
【００４０】
地物検索クエリ情報２３２、中間検索クエリ情報２３３および設備検索クエリ情報２３４は、「対象」「テンプレート」「一次クエリ」を含む。
「対象」は、検索結果の内容を示す。例えば、「地物」は地物テーブル３１０の情報が検索結果になり、「メッシュ」はメッシュ（区域）の値が検索結果になることを意味する。
「テンプレート」は、検索クエリのテンプレート（フォーマット、パターン、形式ともいう）を示す。テンプレート中の括弧書き部分には検索条件の値（例えば、緯度・経度）が設定される。
「一次クエリ」は、当該テンプレートがヒット数を得るための一次検索用の検索クエリ（一次クエリ）と検索結果を得るための二次検索用の検索クエリ（二次クエリ）とのいずれの検索クエリのテンプレートであるかを示す。
【００４１】
図５、図６および図７は、実施の形態１におけるデータ検索システム９００の検索処理の流れを示すシーケンス図である。
実施の形態１におけるデータ検索システム９００の検索処理について、図５から図７に基づいて説明する。
【００４２】
まず、Ｓ０１００からＳ０１０６までの一次検索処理について図５に基づいて説明する。
【００４３】
Ｓ０１００において、ユーザは、業務端末１００に検索条件（例えば、緯度・経度、属性の種類および属性値）を入力する。
業務端末１００は、入力された検索条件を含む検索要求を生成し、生成した検索要求をデータ連携サーバ２００へ送信する。
【００４４】
Ｓ０１０１において、データ連携サーバ２００の検索受付部２０１は、Ｓ０１００で送信された検索要求を受信し、受信した検索要求の検索条件を含む処理要求を生成し、生成した処理要求を検索処理部２０２に受け渡す。
【００４５】
Ｓ０１０２において、検索処理部２０２は、検索方式切替部２０５に対して一次クエリのテンプレートを要求する。
【００４６】
Ｓ０１０３において、検索方式切替部２０５は、切替条件記憶部２３０（図４参照）の地物検索クエリ情報２３２、中間検索クエリ情報２３３および設備検索クエリ情報２３４から一次クエリのテンプレートを取得し、取得した一次クエリのテンプレートを検索処理部２０２に応答する。
図４において、一次クエリのテンプレートとは、「一次クエリ」の欄に「○」が記された「テンプレート」のことである。
【００４７】
Ｓ０１０４において、検索処理部２０２は、Ｓ０１０１で受け渡された処理要求の検索条件とＳ０１０３で応答された一次クエリのテンプレートとを含むクエリ発行要求を生成し、生成したクエリ発行要求を検索クエリ発行部２０６に受け渡す。
【００４８】
Ｓ０１０５において、検索クエリ発行部２０６は、Ｓ０１０４で受け渡されたクエリ発行要求の検索条件を一次クエリの各テンプレートに設定して一次クエリを生成する。
【００４９】
例えば、検索クエリ発行部２０６は、以下のような一次クエリを生成する。
検索クエリ発行部２０６は、地物検索クエリ情報２３２（図４参照）の２行目に示す一次クエリのテンプレートに対して検索条件の緯度および経度を設定して一次クエリを生成する。
検索クエリ発行部２０６は、中間検索クエリ情報２３３（図４参照）の１行目に示す一次クエリのテンプレートをそのまま一次クエリとして使用する。
【００５０】
Ｓ１０６において、検索クエリ発行部２０６は、Ｓ０１０５で生成した一次クエリを集約データベースサーバ３００へ送信する。
集約データベースサーバ３００は、一次クエリを受信し、受信した一次クエリを用いて地物テーブル３１０と中間テーブル３２０と設備テーブル３３０との少なくともいずれかを検索し、一次検索結果（一次クエリの検索結果）を検索クエリ発行部２０６へ送信する。
検索クエリ発行部２０６は、一次検索結果を受信し、受信した一次検索結果を検索処理部２０２へ応答する。
【００５１】
例えば、一次検索結果は以下のような情報を含む。
一次検索結果は、地物検索クエリ情報２３２（図４参照）の２行目のテンプレートを用いた一次クエリに対する検索結果としてメッシュ値を含む。ここで、一次検索結果に含まれるメッシュ値は、地物テーブル３１０（図２参照）内のメッシュ値のうち検索条件の緯度および経度を満たすメッシュ値である。検索条件の緯度および経度が「３５．３５」「１３９．５３」である場合、一次検索結果のメッシュ値は「０００１」である。
一次検索結果は、中間検索クエリ情報２３３（図４参照）の１行目のテンプレートを用いた一次クエリに対する検索結果として結合テーブルを含む。ここで、一次検索結果に含まれる結合テーブルは、紐付けテーブル３２１、メタ採番テーブル３２２および設備メタテーブル３３１（図２参照）を結合したテーブルである。一次検索結果のメッシュ値が「０００１」である場合、結合テーブルはＳＩＤ「１」、ＩＤ「１」、採番テーブル「採番テーブル１」、対象テーブル「電柱テーブル」、種別「電柱」およびテーブル名「電柱テーブル」が設定されたレコードを含む。
【００５２】
次に、Ｓ０１０７からＳ０１１１までのヒット数算出処理について図６に基づいて説明する。
【００５３】
Ｓ０１０７において、検索処理部２０２は、Ｓ０１０６で応答された一次検索結果（メッシュ値、種別）を含む存在確認要求を生成し、生成した存在確認要求を存在確認部２０３に受け渡す。
【００５４】
Ｓ０１０８において、存在確認部２０３は、Ｓ０１０７で受け渡された存在確認要求に従って設備有無情報２２１（図３参照）を検索し、一次検索結果（メッシュ値、種別）に対応する設備の有無を存在確認結果として検索処理部２０２に応答する。
例えば、一次検索結果のメッシュ値および種別が「０００１」「電柱」である場合、図３の設備有無情報２２１を検索して得られる存在確認結果は「有」である。つまり、この場合、検索条件を満たす設備が存在する。
【００５５】
検索条件を満たす設備が存在しない場合、検索処理部２０２は検索条件を満たす設備が存在しないことを示す検索結果を検索受付部２０１へ応答し、検索受付部２０１はこの検索結果を業務端末１００へ送信する（図示省略）。
【００５６】
以下、検索条件を満たす設備が存在するものとして説明を続ける。
【００５７】
Ｓ０１０９において、検索処理部２０２は、検索条件（属性の種類、属性値）と一次検索結果（メッシュ値、設備種別）とを含むヒット数算出要求を生成し、生成したヒット数算出要求をヒット数算出部２０４へ受け渡す。
【００５８】
Ｓ０１１０において、ヒット数算出部２０４は、Ｓ０１０９で受け渡されたヒット数算出要求に従って設備統計情報２２３（図３参照）を検索する。
例えば、一次検索結果のメッシュ値が「０００１」である場合、ヒット数算出部２０４はメッシュ値「０００１」用の設備統計情報２２３を検索する。
【００５９】
Ｓ０１１１において、ヒット数算出部２０４は、検索条件（属性の種類、属性値）および一次検索結果（メッシュ値、設備種別）に対応する設備の個数をヒット数として算出し、算出したヒット数を検索処理部２０２へ応答する。
例えば、一次検索結果の設備種別が「電柱」であり、検索条件の属性の種類および属性値が「材質」「コンクリ」である場合、図３の設備統計情報２２３を検索して得られるヒット数は「２２４」である。
【００６０】
次に、Ｓ０１１２からＳ０１１７までの二次検索処理について図７に基づいて説明する。
【００６１】
Ｓ０１１２において、検索処理部２０２は、Ｓ０１１１で応答されたヒット数を含む検索クエリ要求を生成し、生成した検索クエリ要求を検索方式切替部２０５に受け渡す。
【００６２】
Ｓ０１１３において、検索方式切替部２０５は、Ｓ０１１２で受け渡された検索クエリ要求に従って、ヒット数に対応する検索方式を切替条件記憶部２３０（図４参照）のしきい値情報２３１から取得する。
図４のしきい値情報２３１の場合、１０未満のヒット数に対応する検索方式は「ｗｈｅｒｅ句」であり、１０以上１００未満のヒット数に対応する検索方式は「ｉｎ句」であり、１００以上１０００未満のヒット数に対応する検索方式は「ｅｘｉｓｔｓ句」である。
【００６３】
さらに、検索方式切替部２０５は、切替条件記憶部２３０（図４参照）の地物検索クエリ情報２３２、中間検索クエリ情報２３３および設備検索クエリ情報２３４から二次クエリのテンプレートを取得する。
図４において、二次クエリのテンプレートとは、「一次クエリ」の欄に「○」が記されていない「テンプレート」、つまり、一次クエリのテンプレート以外のテンプレートである。
【００６４】
Ｓ０１１４において、検索方式切替部２０５は、Ｓ０１１３で取得した検索方式と二次クエリのテンプレートとに基づいて二次クエリのテンプレートを組み合わせてクエリシーケンスを生成し、生成したクエリシーケンスを検索処理部２０２に応答する。
クエリシーケンスの生成方法については別途説明する。
【００６５】
Ｓ０１１５において、検索処理部２０２は、検索条件とＳ０１１４で応答されたクエリシーケンスとを含むクエリ発行要求を生成し、生成したクエリ発行要求を検索クエリ発行部２０６に受け渡す。
【００６６】
Ｓ０１１６において、検索クエリ発行部２０６は、Ｓ０１１５で受け渡されたクエリ発行要求の検索条件をクエリシーケンスに設定して二次クエリを生成する。
【００６７】
Ｓ０１１７において、検索クエリ発行部２０６は、Ｓ０１１６で生成した二次クエリを集約データベースサーバ３００へ送信する。
集約データベースサーバ３００は、二次クエリを受信し、受信した二次クエリを用いて地物テーブル３１０と中間テーブル３２０と設備テーブル３３０との少なくともいずれかを検索し、検索結果（二次クエリの検索結果）を検索クエリ発行部２０６へ送信する。
検索クエリ発行部２０６は、検索結果を受信し、受信した検索結果を検索処理部２０２へ応答する。
検索処理部２０２は検索結果を検索受付部２０１へ応答し、検索受付部２０１は検索結果を業務端末１００へ送信する。
業務端末１００は検索結果を受信し、受信した検索結果を出力する。例えば、業務端末１００は、検索結果をディスプレイに表示する。
【００６８】
以上の検索処理によって、テーブルの結合を伴う場合であってもデータ検索を高速化することができる。例えば、データ検索は以下のように高速化される。
データ連携サーバ２００は、設備統計情報２２３（図３参照）によってヒット数の算出（図６のＳ０１１１）を高速化することができる。
データ連携サーバ２００は、しきい値情報２３１（図４参照）によってヒット数に応じた適切な検索方式を選択し（図７のＳ０１１３）、選択した検索方式によってデータ検索（図７のＳ０１１７）を高速化することができる。
データ連携サーバ２００は、設備有無情報２２１（図３参照）によって検索条件を満たす設備の存在確認を行う（図６のＳ０１０８）。検索条件を満たす設備が存在しない場合、データ連携サーバ２００は、集約データベースサーバ３００を検索せずに検索結果（ヒット無し）を業務端末１００に応答することができる。
【００６９】
次に、検索処理部２０２、ヒット数算出部２０４および検索クエリ発行部２０６の処理を個別に説明する。
以下の説明において、処理ステップの番号「Ｓｘｘｘｘ」は、図５から図７のシーケンス図の処理ステップと同じ番号である。但し、一つの処理ステップを複数の処理ステップに分けて説明する場合、処理ステップの番号の末尾にアルファベットを付記する。
【００７０】
図８は、実施の形態１における検索処理部２０２の処理のフローチャートである。
実施の形態１における検索処理部２０２の処理について、図８に基づいて説明する。
【００７１】
Ｓ０１０２において、検索処理部２０２は、検索方式切替部２０５に対して一次クエリのテンプレートを要求し、検索方式切替部２０５から一次クエリのテンプレートを取得する（Ｓ０１０３）。
Ｓ０１０２の後、Ｓ０１０４に進む。
【００７２】
Ｓ０１０４において、検索処理部２０２は、検索条件と一次クエリのテンプレートとを含むクエリ発行要求を検索クエリ発行部２０６に受け渡し、検索クエリ発行部２０６から一次検索結果を取得する（Ｓ０１０６）。
一次検索結果は、メッシュ値や設備種別の一覧などを含む。
Ｓ０１０４の後、検索処理部２０２は、一次検索結果に含まれる設備種別毎にＳ０１０７ａからＳ０１１５を実行する。つまり、Ｓ０１０７ａからＳ０１１５は一次検索結果に含まれる設備種別の個数と同じ回数だけ実行される。
【００７３】
Ｓ０１０７ａにおいて、検索処理部２０２は、一次検索結果を含む存在確認要求を存在確認部２０３に受け渡し、存在確認部２０３から存在確認結果を取得する（Ｓ０１０８）。
存在確認結果は、設備が存在するか否かを示す設備の有無を含む。
Ｓ０１０７ａの後、Ｓ０１０７ｂに進む。
【００７４】
Ｓ０１０７ｂにおいて、検索処理部２０２は、設備が存在するか否かを存在確認結果に基づいて判定する。
設備が存在する場合（ＹＥＳ）、Ｓ０１０９に進む。
設備が存在しない場合（ＮＯ）、検索処理部２０２は検索条件を満たす設備が存在しないことを示す検索結果を検索受付部２０１へ応答し（図示省略）、検索処理部２０２の処理は終了する。
【００７５】
Ｓ０１０９において、検索処理部２０２は、検索条件と一次検索結果とを含むヒット数算出要求をヒット数算出部２０４に受け渡し、ヒット数算出部２０４からヒット数を取得する（Ｓ０１１１）。
Ｓ０１０９の後、Ｓ０１１２に進む。
【００７６】
Ｓ０１１２において、検索処理部２０２は、ヒット数を含む検索クエリ要求を検索方式切替部２０５に受け渡し、検索方式切替部２０５からクエリシーケンスを取得する（Ｓ０１１４）。
Ｓ０１１２の後、Ｓ０１１５に進む。
【００７７】
Ｓ０１１５において、検索処理部２０２は、検索条件とクエリシーケンスとを含むクエリ発行要求を検索クエリ発行部２０６に受け渡し、検索クエリ発行部２０６から検索結果を取得する（Ｓ０１１７）。
Ｓ０１１５により、検索処理部２０２の処理は終了する。
【００７８】
図９は、実施の形態１におけるヒット数算出部２０４の処理のフローチャートである。
実施の形態１におけるヒット数算出部２０４の処理について、図９に基づいて説明する。
【００７９】
Ｓ０１１０ａにおいて、ヒット数算出部２０４は、設備依存情報２２２（図３参照）から一次検索結果の設備種別と同じ設備種別に対応する「親設備」を取得する。
Ｓ０１１０ａの後、Ｓ０１１０ｂに進む。
【００８０】
Ｓ０１１０ｂにおいて、ヒット数算出部２０４は、設備依存情報２２２から取得した「親設備」に基づいて、親設備の有無を判定する。
例えば、設備種別「変圧器」には親設備「電柱」が有り、設備種別「電柱」には親設備が無い。
親設備が有る場合（ＹＥＳ）、Ｓ０１１０ｃに進む。
親設備が無い場合（ＮＯ）、Ｓ０１１１ａに進む。
【００８１】
Ｓ０１１０ｃにおいて、ヒット数算出部２０４は、一次検索結果のメッシュ値によって識別されるメッシュ用の設備統計情報２２３（図３参照）から「親設備」と同じ設備種別に対応する「個数」を取得する。
ヒット数算出部２０４は、設備統計情報２２３から取得した「個数」に基づいて、親設備が存在するか否かを判定する。いずれかの親設備の「個数」が「０」以外であれば親設備が存在し、いずれの親設備の「個数」も「０」であれば親設備が存在しない。
親設備が存在する場合（ＹＥＳ）、Ｓ０１１１ａに進む。
親設備が存在しない場合（ＮＯ）、Ｓ０１１１ｂに進む。
【００８２】
Ｓ０１１１ａにおいて、ヒット数算出部２０４は、設備統計情報２２３（図３参照）から一次検索結果の設備種別と検索条件の属性（検索条件）・属性値（仕様）に対応する「個数」を取得し、取得した「個数」をヒット数として検索処理部２０２に応答する。
Ｓ０１１１ａにより、ヒット数算出部２０４の処理は終了する。
【００８３】
Ｓ０１１１ｂにおいて、ヒット数算出部２０４は、ヒット数「０」を検索処理部２０２に応答する。
Ｓ０１１１ｂにより、ヒット数算出部２０４の処理は終了する。
【００８４】
図１０は、実施の形態１における検索方式切替部２０５の処理のフローチャートである。
実施の形態１における検索方式切替部２０５の処理について、図１０に基づいて説明する。
【００８５】
Ｓ０１０３において、検索方式切替部２０５は、検索処理部２０２から一次クエリのテンプレートを要求され、切替条件記憶部２３０（図４参照）の地物検索クエリ情報２３２、中間検索クエリ情報２３３および設備検索クエリ情報２３４から一次クエリのテンプレートを取得し、取得した一次クエリのテンプレートを検索処理部２０２に応答する。
Ｓ０１０３の後、Ｓ０１１３に進む。
【００８６】
Ｓ０１１３において、検索方式切替部２０５は、切替条件記憶部２３０（図４参照）のしきい値情報２３１から検索クエリ要求で指定されたヒット数に対応する「検索方式」を取得する。
さらに、検索方式切替部２０５は、切替条件記憶部２３０の地物検索クエリ情報２３２、中間検索クエリ情報２３３および設備検索クエリ情報２３４から二次クエリのテンプレートを取得する。
Ｓ０１１３の後、Ｓ０１１４ａに進む。
【００８７】
Ｓ０１１４ａにおいて、検索方式切替部２０５は、しきい値情報２３１から取得した検索方式の種類を判定する。
検索方式が「ｗｈｅｒｅ句」である場合、Ｓ０１１４ｂに進む。
検索方式が「ｉｎ句」である場合、Ｓ０１１４ｃに進む。
検索方式が「ｅｘｉｓｔｓ句」である場合、Ｓ０１１４ｄに進む。
検索方式が「結合」である場合、Ｓ０１１４ｅに進む。
【００８８】
Ｓ０１１４ｂにおいて、検索方式切替部２０５は、検索クエリ（１）と検索クエリ（２）とをクエリシーケンスとして生成し、生成したクエリシーケンスを検索処理部２０２に応答する。
検索クエリ（１）は、地物テーブル３１０と中間テーブル３２０とを結合して「ＦＩＤ」を検索するための検索クエリである。
検索クエリ（２）は、検索クエリ（１）によって得られる「ＦＩＤ」をｗｈｅｒｅ句で指定して設備テーブル３３０を検索するための検索クエリである。
【００８９】
例えば、検索方式切替部２０５は、図１１に示すような検索クエリ（１）および検索クエリ（２）をクエリシーケンスとして生成する。
図１１は、実施の形態１における検索方式別のクエリシーケンスの一例を示す図である。
検索クエリ（１）には、「地物テーブルＡ」として地物検索クエリ情報２３２（図４参照）の１行目のテンプレートが設定され、「中間テーブルＢ」として中間検索クエリ情報２３３（図４参照）の２行目のテンプレートが設定される。また、検索クエリ（１）および各テンプレートの括弧内には検索条件（緯度、経度）または検索条件に対応する採番テーブルの名称が設定される。
検索クエリ（２）には、「設備テーブル」として設備検索クエリ情報２３４（図４参照）のテンプレートのうち検索条件に対応する設備種別用のテンプレートが設定される。また、括弧内には検索条件（属性の種類、属性値）が設定される。
Ｓ０１１４ｂにより、検索方式切替部２０５の処理は終了する。
【００９０】
Ｓ０１１４ｃにおいて、検索方式切替部２０５は、検索クエリ（１）と検索クエリ（３）とをクエリシーケンスとして生成し、生成したクエリシーケンスを検索処理部２０２に応答する。
検索クエリ（１）は、Ｓ０１１４ｂで説明したものと同じである。
検索クエリ（３）は、検索クエリ（１）によって得られる「ＦＩＤ」をｉｎ句で指定して設備テーブル３３０を検索するための検索クエリである。
【００９１】
例えば、検索方式切替部２０５は、図１１に示すような検索クエリ（１）および検索クエリ（３）をクエリシーケンスとして生成する。
検索クエリ（３）には、「設備テーブル」として設備検索クエリ情報２３４（図４参照）のテンプレートのうち検索条件に対応する設備種別用のテンプレートが設定される。また、括弧内には検索条件（属性の種類、属性値）が設定される。
Ｓ０１１４ｃにより、検索方式切替部２０５の処理は終了する。
【００９２】
Ｓ０１１４ｄにおいて、検索方式切替部２０５は、検索クエリ（４）をクエリシーケンスとして生成し、生成したクエリシーケンスを検索処理部２０２に応答する。
検索クエリ（４）は、検索クエリ（１）をｅｘｉｓｔｓ句の副問合せとして指定して設備テーブル３３０を検索するための検索クエリである。
【００９３】
例えば、検索方式切替部２０５は、図１１に示すような検索クエリ（４）をクエリシーケンスとして生成する。
検索クエリ（４）には、「副問合せ」として検索クエリ（１）が設定される。
Ｓ０１１４ｄにより、検索方式切替部２０５の処理は終了する。
【００９４】
Ｓ０１１４ｅにおいて、検索方式切替部２０５は、検索クエリ（５）をクエリシーケンスとして生成し、生成したクエリシーケンスを検索処理部２０２に応答する。
検索クエリ（５）は、地物テーブル３１０と中間テーブル３２０と設備テーブル３３０とを結合して検索するための検索クエリである。
【００９５】
例えば、検索方式切替部２０５は、図１１に示すような検索クエリ（５）をクエリシーケンスとして生成する。
検索クエリ（５）には、「地物テーブルＡ」として地物検索クエリ情報２３２（図４参照）の１行目のテンプレートが設定され、「中間テーブルＢ」として中間検索クエリ情報２３３（図４参照）の２行目のテンプレートが設定され、設備検索クエリ情報２３４（図４参照）のテンプレートのうち検索条件に対応する設備種別用のテンプレートが設定される。また、検索クエリ（５）および各テンプレートの括弧内には検索条件（緯度、経度、属性の種類、属性値）または検索条件に対応する採番テーブルの名称が設定される。
Ｓ０１１４ｅにより、検索方式切替部２０５の処理は終了する。
【００９６】
図１２は、実施の形態１におけるデータ連携サーバ２００のハードウェア資源の一例を示す図である。
図１２において、データ連携サーバ２００（コンピュータの一例）は、ＣＰＵ９０１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えている。ＣＰＵ９０１は、バス９０２を介してＲＯＭ９０３、ＲＡＭ９０４、通信ボード９０５（通信装置）、ディスプレイ９１１（表示装置）、キーボード９１２、マウス９１３、ドライブ９１４、磁気ディスク装置９２０などのハードウェアデバイスと接続され、これらのハードウェアデバイスを制御する。ドライブ９１４は、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）などの記憶媒体を読み書きする装置である。
ＲＯＭ９０３、ＲＡＭ９０４、磁気ディスク装置９２０およびドライブ９１４は記憶装置の一例である。キーボード９１２、マウス９１３および通信ボード９０５は入力装置の一例である。ディスプレイ９１１および通信ボード９０５は出力装置の一例である。
【００９７】
通信ボード９０５は、有線または無線で、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネット、電話回線などの通信網に接続している。
【００９８】
磁気ディスク装置９２０には、ＯＳ９２１（オペレーティングシステム）、プログラム群９２２、ファイル群９２３が記憶されている。
【００９９】
プログラム群９２２には、実施の形態において「〜部」として説明する機能を実行するプログラムが含まれる。プログラム（例えば、データベース検索プログラム）は、ＣＰＵ９０１により読み出され実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものであり、また「〜部」の手順や方法をコンピュータに実行させるものである。
【０１００】
ファイル群９２３には、実施の形態において説明する「〜部」で使用される各種データ（入力、出力、判定結果、計算結果、処理結果など）が含まれる。
【０１０１】
実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。
フローチャートなどに基づいて説明する実施の形態の処理はＣＰＵ９０１、記憶装置、入力装置、出力装置などのハードウェアを用いて実行される。
【０１０２】
実施の形態において「〜部」として説明するものは「〜回路」、「〜装置」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
【０１０３】
実施の形態１において、地図系のソフトウェアの１個のテーブル（地物テーブル３１０）と設備管理系のソフトウェアのＮ個のテーブル（設備テーブル３３０）とを連携（紐付け）した検索を例にして説明を行った。但し、テーブルの連携は、地図系のテーブルと設備管理系のテーブルとの連携に限らない。例えば、設備系統図についてのテーブルと設備管理についてのテーブルとを連携しても構わない。
地物テーブル３１０、中間テーブル３２０および設備テーブル３３０は検索対象データを管理するためのテーブルの一例である。また、設備種別、緯度、経度、メッシュ、材質、長さ、容量、電圧などは検索対象データのデータ項目の一例である。
【０１０４】
実施の形態１により、例えば、以下のような効果を奏することができる。
データ連携サーバ２００は、結合を伴うデータベーステーブル間の検索であっても、ヒット数の算出コストを軽減し、かつ、最適な検索クエリを発行して検索を高速化する。
データ連携サーバ２００は既存のソフトウェアが持つデータ構造をそのまま利用しているため、異種のソフトウェア間でデータを統合もしくは連携する環境の構築が容易である。
【０１０５】
実施の形態１において、例えば、以下のようなデータベース検索装置（データ連携サーバ２００）について説明した。括弧内に実施の形態１で用いて用語を記す。
【０１０６】
データベース検索装置は、１つ以上のデータ項目それぞれの項目値を含んだ複数の検索対象データを記憶したデータベース（集約データベースサーバ３００）を検索する。
前記データベース検索装置は、データ数記憶部と、クエリ形式記憶部と、検索条件入力部と、データ数取得部と、クエリ形式判定部と、検索クエリ生成部と、データベース検索部と、検索結果出力部とを備える。
前記データ数記憶部（分布情報記憶部２２０の設備統計情報２２３）は、項目値と当該項目値を含んだ検索対象データのデータ数とを対応付ける。
前記クエリ形式記憶部（切替条件記憶部２３０のしきい値情報２３１）は、データ数の範囲と検索クエリの形式とを対応付ける。
前記検索条件入力部（検索受付部２０１）は、項目値を含む検索条件が入力される。
前記データ数取得部（ヒット数算出部２０４）は、前記検索条件入力部に入力された検索条件に含まれる項目値と同じ項目値に対応付けられたデータ数を前記データ数記憶部から取得する。
前記クエリ形式判定部（検索方式切替部２０５）は、前記データ数取得部によって取得されたデータ数を含むデータ数の範囲に対応付けられた検索クエリの形式を前記クエリ形式記憶部に基づいて判定する。
前記検索クエリ生成部（検索クエリ発行部２０６）は、前記クエリ形式判定部によって判定された検索クエリの形式に従って前記検索条件を満たす検索対象データを検索するための検索クエリを生成する。
前記データベース検索部（検索クエリ発行部２０６）は、前記検索クエリ生成部によって生成された検索クエリを用いて前記データベースを検索することによって、前記検索条件を満たす検索対象データを含んだ検索結果を取得する。
前記検索結果出力部（検索受付部２０１）は、前記データベース検索部によって取得された検索結果を出力する。
【０１０７】
前記データベース検索装置は、データ有無記憶部と、データ有無判定部とを備える。
前記データ有無記憶部（分布情報記憶部２２０の設備有無情報２２１）は、項目値と当該項目値を含んだ検索対象データの有無とを対応付ける。
前記データ有無判定部（検索処理部２０２）は、前記検索条件に含まれる項目値と同じ項目値に対応付けられた検索対象データの有無を前記データ有無記憶部から取得し、取得した検索対象データの有無に基づいて前記検索条件を満たす検索対象データが有るか否かを判定する。
前記データベース検索部（検索クエリ発行部２０６）は、前記データ有無判定部によって当該検索対象データが有ると判定された場合に前記データベースを検索し、前記データ有無判定部によって当該検索対象データが無いと判定された場合に前記データベースを検索しない。
【０１０８】
前記データベースは、第一のデータ項目の項目値を含む第一テーブル（地物テーブル３１０）と、第二のデータ項目の項目値を含む第二テーブル（設備テーブル３３０）と、前記第一テーブルの項目値と前記第二テーブルの項目値とを対応付けるための中間テーブル（中間テーブル３２０）とを用いて前記複数の検索対象データを記憶する。
【０１０９】
実施の形態２．
データベースを更新する場合の形態について説明する。
以下、実施の形態１と異なる事項について主に説明する。説明を省略する事項については実施の形態１と同様である。
【０１１０】
図１３は、実施の形態２におけるデータ検索システム９００の構成図である。
実施の形態２におけるデータ検索システム９００の構成について、図１３に基づいて説明する。
【０１１１】
データ検索システム９００は、実施の形態１（図１参照）と同様に、業務端末１００、データ連携サーバ２００および集約データベースサーバ３００を備える。
【０１１２】
データ連携サーバ２００は、実施の形態１で説明した構成に加えて、更新受付部２０８、更新処理部２０９、分布更新部２１０および更新クエリ発行部２１１を備える。
【０１１３】
更新受付部２０８（更新要求入力部の一例）は、データベースの更新内容（データの追加、変更または削除に関する情報）を含んだ更新要求を業務端末１００から受信する。
更新処理部２０９は、更新要求に従ってデータベースの更新処理を行う。更新処理の詳細については別途説明する。
分布更新部２１０（データ有無変更部、データ数更新部の一例）は、分布情報記憶部２２０の分布情報（設備有無情報２２１、設備依存情報２２２、設備統計情報２２３）を更新する。
更新クエリ発行部２１１（データベース更新部の一例）は、更新要求の更新内容に従ってデータベースを更新するための更新クエリを生成し、生成した更新クエリを集約データベースサーバ３００に発行することによってデータベースを更新する。
【０１１４】
図１４は、実施の形態２におけるデータ検索システム９００のデータベース更新処理の流れを示すシーケンス図である。
実施の形態２におけるデータ検索システム９００のデータベース更新処理について、図１４に基づいて説明する。
【０１１５】
Ｓ０２００において、ユーザは、業務端末１００にデータベースの更新内容（データの追加、変更または削除に関する情報）を入力する。
業務端末１００は、入力された更新内容を含む更新要求を生成し、生成した更新要求をデータ連携サーバ２００へ送信する。
【０１１６】
Ｓ０２０１において、データ連携サーバ２００の更新受付部２０８は、Ｓ０２００で送信された更新要求を受信し、受信した更新要求の更新内容を含む処理要求を生成し、生成した処理要求を更新処理部２０９に受け渡す。
【０１１７】
Ｓ０２０２において、更新処理部２０９は、Ｓ０２０１で受け渡された処理要求の更新内容（設備種別、メッシュ値）を含む存在確認要求を生成し、生成した存在確認要求を存在確認部２０３に受け渡す。
【０１１８】
Ｓ０２０３において、存在確認部２０３は、Ｓ０２０２で受け渡された存在確認要求に従って設備有無情報２２１（図３参照）を検索し、更新内容（設備種別、メッシュ値）に対応する設備の有無を存在確認結果として更新処理部２０９に応答する。
但し、存在確認部２０３は、設備統計情報２２３（図３参照）を検索し、設備の個数を存在確認結果として更新処理部２０９に応答してもよい。
【０１１９】
Ｓ０２０４において、更新処理部２０９は、更新内容を含む更新クエリ発行要求を生成し、生成した更新クエリ発行要求を更新クエリ発行部２１１に受け渡す。
【０１２０】
Ｓ０２０５において、更新クエリ発行部２１１は、Ｓ０２０４で受け渡された更新クエリ発行要求に含まれる更新内容に従って、データベースを更新するための更新クエリを生成する。
【０１２１】
Ｓ０２０６において、更新クエリ発行部２１１は、Ｓ０２０５で生成した更新クエリを集約データベースサーバ３００へ送信する。
集約データベースサーバ３００は、更新クエリを受信し、受信した更新クエリを用いて地物テーブル３１０と中間テーブル３２０と設備テーブル３３０との少なくともいずれかを更新する。集約データベースサーバ３００は、データベースの更新完了を更新クエリ発行部２１１へ送信する。
更新クエリ発行部２１１は、更新完了を受信し、更新処理部２０９にデータベースの更新完了を応答する。
更新処理部２０９は更新受付部２０８に更新完了を応答し、更新受付部２０８は業務端末１００に更新完了を送信する。
【０１２２】
Ｓ０２０７において、更新処理部２０９は、更新内容を含んだ分布更新要求を生成し、生成した分布更新要求をデータベースの更新完了前または更新完了後に分布更新部２１０へ受け渡す。
例えば、更新処理部２０９は、Ｓ０２０３で応答された存在確認結果に基づいてデータベースの更新完了前または更新完了後を選択し、選択したタイミングで分布更新要求を分布更新部２１０へ受け渡す。
【０１２３】
Ｓ０２０８において、分布更新部２１０は、Ｓ０２０７で受け渡された分布更新要求の更新内容に従って設備統計情報２２３（図３参照）の「個数」を更新する。また、分布更新部２１０は、必要に応じて設備有無情報２２１（図３参照）の「有無」を更新する。
【０１２４】
図１５は、実施の形態２における更新処理部２０９の処理のフローチャートである。
実施の形態２における更新処理部２０９の処理について、図１５に基づいて説明する。
【０１２５】
以下の説明において、処理ステップの番号「Ｓｘｘｘｘ」は、図１４のシーケンス図の処理ステップと同じ番号である。但し、一つの処理ステップを複数の処理ステップに分けて説明する場合、処理ステップの番号の末尾にアルファベットを付記する。
【０１２６】
Ｓ０２０２において、更新処理部２０９は、更新内容を含む存在確認要求を存在確認部２０３に受け渡し、存在確認部２０３から存在確認結果（設備の有無または設備の個数）を取得する（Ｓ０２０３）。
Ｓ０２０２の後、Ｓ０２０４に進む。
【０１２７】
Ｓ０２０４において、更新処理部２０９は、更新内容を含む更新クエリ発行要求を更新クエリ発行部２１１に受け渡すことによって更新クエリを発行してデータベースを更新する。
Ｓ０２０４の後、Ｓ０２０７ａに進む。
【０１２８】
Ｓ０２０７ａにおいて、更新処理部２０９は、更新内容と存在確認結果とに基づいて設備の個数が「Ｘから０」（Ｘは１以上の整数値）または「０からＸ」に変更する否かを判定する。例えば、更新内容が「設備の追加」であって存在確認結果が「設備無し」である場合、設備の個数が「０からＸ」に変更する。
設備の個数が「Ｘから０」または「０からＸ」に変更する場合（ＹＥＳ）、Ｓ０２０７ｂに進む。
設備の個数が「Ｘから０」または「０からＸ」に変更しない場合（ＮＯ）、Ｓ０２０７ｃに進む。
【０１２９】
Ｓ０２０７ｂにおいて、更新処理部２０９は、更新内容を含んだ分布更新要求をデータベースの更新完了後に分布更新部２１０へ受け渡す。
これにより、データベースと同期させて設備有無情報２２１（図３参照）の「有無」および設備統計情報２２３（図３参照）の「個数」が更新される。
したがって、実施の形態１で説明した検索処理において、存在確認部２０３はデータベースを更新後の存在確認結果（設備の有無）を設備有無情報２２１から得ることができる（図６のＳ０１０８）。また、ヒット数算出部２０４はデータベースを更新後のヒット数を設備統計情報２２３に基づいて算出することができる（図６のＳ０１１１）。
Ｓ０２０７ｂにより、更新処理部２０９の処理は終了する。
【０１３０】
Ｓ０２０７ｃにおいて、更新処理部２０９は、更新内容を含んだ分布更新要求をデータベースの更新完了前に分布更新部２１０へ受け渡す。但し、更新処理部２０９は、分布更新要求をデータベースの更新完了後に分布更新部２１０へ受け渡しても構わない。
これにより、データベースと非同期で設備統計情報２２３（図３参照）の「個数」が更新される。但し、設備有無情報２２１（図３参照）の「有無」は変わらないため更新されない。
したがって、実施の形態１で説明した検索処理において、存在確認部２０３はデータベースを更新後の存在確認結果（設備の有無）を設備有無情報２２１から得ることができる（図６のＳ０１１１）。
一方、ヒット数算出部２０４は、データベースを更新後のヒット数を設備統計情報２２３に基づいて算出できない場合がある（図６のＳ０１１１）。しかし、ヒット数は検索方式（検索クエリの形式）を選択するための情報であるため、ヒット数算出部２０４は必ずしも正確なヒット数を算出できなくても構わない。
Ｓ０２０７ｃにより、更新処理部２０９の処理は終了する。
【０１３１】
上記では、データ連携サーバ２００を介して集約データベースサーバ３００のデータベースを更新する形態について説明した。
しかし、夜間のバッチ処理などで大量のデータを更新する場合、データ連携サーバ２００を介さず、集約データベースサーバ３００にデータを直接投入してデータベースを更新する方式が考えられる。
こういった場合、データ連携サーバ２００は、分布情報生成部２０７を定期的（所定の更新周期が経過する毎）に動作させることによって、集約データベースサーバ３００をスキャン（検索）して分布情報（図３参照）を最新の状態に更新する。データ連携サーバ２００は、分布情報生成部２０７を動作させるタイミングをバッチ処理のタイミングと合わせるとよい。また、データ連携サーバ２００は、業務端末１００が稼働する時間外などに分布情報生成部２０７を動作させて業務端末１００に影響が及ばないようにするとよい。
【０１３２】
実施の形態１、２において、例えば、以下のようなデータベース検索装置（データ連携サーバ２００）について説明した。括弧内に実施の形態で用いた用語を記す。
【０１３３】
前記データベース検索装置は、更新要求入力部と、データベース更新部と、データ有無変更部とを備える。
前記更新要求入力部（更新受付部２０８）は、前記データベースの更新内容を示す更新要求が入力される。
前記データベース更新部（更新クエリ発行部２１１）は、前記更新要求入力部に入力された更新要求に従って前記データベースを更新する。
前記データ有無変更部（分布更新部２１０）は、前記更新要求入力部に入力された更新要求に従って前記データ有無記憶部（分布情報記憶部２２０）に記憶された少なくともいずれかの検索対象データの有無（設備有無情報２２１）が変わるか否かを判定する。前記データ有無変更部は、少なくともいずれかの検索対象データの有無が変わると判定した場合、前記データベースの更新と同期して当該検索対象データの有無を変更する。
【０１３４】
前記データ有無変更部は、少なくともいずれかの検索対象データの有無が変わると判定した場合、前記データベースの更新と同期して前記データ数記憶部（分布情報記憶部２２０）の当該検索対象データのデータ数（設備統計情報２２３）を変更する。
前記データ有無変更部は、いずれの検索対象データの有無も変わらないと判定した場合、前記データベースの更新と非同期で前記データ数記憶部の当該検索対象データのデータ数を変更する。
【０１３５】
前記データベース検索装置は、所定の更新周期が経過する毎に前記データベースを検索し、検索の結果に基づいて前記データ数記憶部に記憶された各検索対象データのデータ数を更新するデータ数更新部（分布情報生成部２０７）を備える。
【符号の説明】
【０１３６】
１００  業務端末、２００  データ連携サーバ、２０１  検索受付部、２０２  検索処理部、２０３  存在確認部、２０４  ヒット数算出部、２０５  検索方式切替部、２０６  検索クエリ発行部、２０７  分布情報生成部、２０８  更新受付部、２０９  更新処理部、２１０  分布更新部、２１１  更新クエリ発行部、２２０  分布情報記憶部、２２１  設備有無情報、２２２  設備依存情報、２２３  設備統計情報、２３０  切替条件記憶部、２３１  しきい値情報、２３２  地物検索クエリ情報、２３３  中間検索クエリ情報、２３４  設備検索クエリ情報、３００  集約データベースサーバ、３１０  地物テーブル、３２０  中間テーブル、３２１  紐付けテーブル、３２２  メタ採番テーブル、３２３  採番テーブルＡ、３２４  採番テーブルＢ、３３０  設備テーブル、３３１  設備メタテーブル、３３２  電柱テーブル、３３３  変圧器テーブル、９００  データ検索システム、９０１  ＣＰＵ、９０２  バス、９０３  ＲＯＭ、９０４  ＲＡＭ、９０５  通信ボード、９１１  ディスプレイ、９１２  キーボード、９１３  マウス、９１４  ドライブ、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  プログラム群、９２３  ファイル群。
【図１】
2013239077.tif 000003
【図２】
2013239077.tif 000004
【図３】
2013239077.tif 000005
【図４】
2013239077.tif 000006
【図５】
2013239077.tif 000007
【図６】
2013239077.tif 000008
【図７】
2013239077.tif 000009
【図８】
2013239077.tif 000010
【図９】
2013239077.tif 000011
【図１０】
2013239077.tif 000012
【図１１】
2013239077.tif 000013
【図１２】
2013239077.tif 000014
【図１３】
2013239077.tif 000015
【図１４】
2013239077.tif 000016
【図１５】
2013239077.tif 000017