(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023030537
(43)【公開日】2023-03-08
(54)【発明の名称】計算機システム及びデータ検索支援方法
(51)【国際特許分類】
G06F 16/9032 20190101AFI20230301BHJP
G16H 10/60 20180101ALI20230301BHJP
G06Q 50/22 20180101ALI20230301BHJP
【FI】
G06F16/9032
G16H10/60
G06Q50/22
【審査請求】有
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2021135718
(22)【出願日】2021-08-23
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】中溝 克明
(72)【発明者】
【氏名】小関 祐司
(72)【発明者】
【氏名】川端 康宏
(72)【発明者】
【氏名】平田 淳
【テーマコード(参考)】
5B175
5L099
【Fターム(参考)】
5B175AA01
5B175GC04
5L099AA13
5L099AA23
(57)【要約】
【課題】複数のデータベースを組み合わせたデータ検索において、新たな知見を得られる可能性があるデータを取得するためのSQLを提示する。
【解決手段】データ種別が異なるデータを格納する複数のデータベースと接続する計算機システムは、使用されたSQLに関する情報を含むカタログを格納するカタログデータベースを管理し、ユーザ端末から、第1SQLを含む検索要求を受信した場合、第1SQLを実行し、実行結果をユーザ端末に出力し、カタログデータベースを参照して、複数のデータベースを結合してデータを検索するための検索条件であって、第1SQLの検索条件と類似する検索条件が定義された推奨SQLを少なくとも一つ選択し、ユーザ端末に対して、少なくとも一つの前奨SQLを提示する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
データ種別が異なるデータを格納する複数のデータベースと接続する計算機システムであって、
プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続されるネットワークインタフェースを有する計算機を含み、
使用されたSQLに関する情報を含むカタログを格納するカタログデータベースを管理し、
ユーザ端末から、第1SQLを含む検索要求を受信した場合、前記第1SQLを実行し、前記第1SQLの実行結果を前記ユーザ端末に出力し、
前記カタログデータベースを参照して、前記複数のデータベースを結合してデータを検索するための検索条件であって、前記第1SQLの検索条件と類似する検索条件が定義された推奨SQLを少なくとも一つ選択し、
前記ユーザ端末に対して、少なくとも一つの前記推奨SQLを提示することを特徴とする計算機システム。
【請求項2】
請求項1に記載の計算機システムであって、
前記第1SQLにおける前記複数のデータベースから取得するデータ項目の組合せと、複数の前記カタログの各々に含まれるSQLにおける前記複数のデータベースから取得するデータ項目の組合せとの一致度、及び、前記第1SQLにおける前記複数のデータベース間の結合条件と複数の前記カタログの各々に含まれるSQLにおける前記複数のデータベース間の結合条件との一致度から算出される類似度に基づいて、少なくとも一つの前記推奨SQLを選択することを特徴とする計算機システム。
【請求項3】
請求項2に記載の計算機システムであって、
複数の前記推奨SQLが選択された場合、複数の前記推奨SQLの各々の前記類似度に基づいて、複数の前記推奨SQLのランクを決定し、
ランク付けされた、複数の前記推奨SQLを提示することを特徴とする計算機システム。
【請求項4】
請求項2に記載の計算機システムであって、
検索条件の使用傾向を管理するための履歴データベースを管理し、
複数の前記推奨SQLが選択された場合、前記履歴データベースを参照して、複数の前記推奨SQLの各々の検索条件の使用傾向に基づいて、複数の前記推奨SQLのランクを決定し、
ランク付けされた、複数の前記推奨SQLを提示することを特徴とする計算機システム。
【請求項5】
請求項2に記載の計算機システムであって、
前記カタログは、前記SQLを実行したユーザの情報を含み、
前記計算機システムは、
前記計算機システムを利用するユーザに関連する文献の情報を管理するための公知情報データベースを管理し、
複数の前記推奨SQLが選択された場合、前記公知情報データベースを参照して、複数の前記推奨SQLの各々を実行したユーザに関連する文献の数及び当該文献の引用件数の少なくともいずれかに基づいて、複数の前記推奨SQLのランクを決定し、
ランク付けされた、複数の前記推奨SQLを提示することを特徴とする計算機システム。
【請求項6】
請求項2に記載の計算機システムであって、
前記カタログデータベースを参照し、使用頻度が高い検索条件を特定し、
特定された複数の前記検索条件を用いて生成される検索条件が定義されたSQLを生成し、
生成された前記SQLに関する情報を含む前記カタログを生成し、前記カタログデータベースに登録することを特徴とする計算機システム。
【請求項7】
データ種別が異なるデータを格納する複数のデータベースと接続する計算機システムが実行するデータ検索支援方法であって、
前記計算機システムは、
プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続されるネットワークインタフェースを有する計算機を含み、
使用されたSQLに関する情報を含むカタログを格納するカタログデータベースを管理し、
前記データ検索支援方法は、
前記計算機が、ユーザ端末から、第1SQLを含む検索要求を受信した場合、前記第1SQLを実行し、前記第1SQLの実行結果を前記ユーザ端末に出力する第1のステップと、
前記計算機が、前記カタログデータベースを参照して、前記複数のデータベースを結合してデータを検索するための検索条件であって、前記第1SQLの検索条件と類似する検索条件が定義された推奨SQLを少なくとも一つ選択する第2のステップと、
前記計算機が、前記ユーザ端末に対して、少なくとも一つの前記推奨SQLを提示する第3のステップと、を含むことを特徴とするデータ検索支援方法。
【請求項8】
請求項7に記載のデータ検索支援方法であって、
前記第2のステップは、前記計算機が、前記第1SQLにおける前記複数のデータベースから取得するデータ項目の組合せと、複数の前記カタログの各々に含まれるSQLにおける前記複数のデータベースから取得するデータ項目の組合せとの一致度、及び、前記第1SQLにおける前記複数のデータベース間の結合条件と複数の前記カタログの各々に含まれるSQLにおける前記複数のデータベース間の結合条件との一致度から算出される類似度に基づいて、少なくとも一つの前記推奨SQLを選択するステップを含むことを特徴とするデータ検索支援方法。
【請求項9】
請求項8に記載のデータ検索支援方法であって、
前記第2のステップは、複数の前記推奨SQLが選択された場合、前記計算機が、複数の前記推奨SQLの各々の前記類似度に基づいて、複数の前記推奨SQLのランクを決定するステップを含み、
前記第3のステップは、前記計算機が、ランク付けされた、複数の前記推奨SQLを提示するステップを含むことを特徴とするデータ検索支援方法。
【請求項10】
請求項8に記載のデータ検索支援方法であって、
前記計算機システムは、検索条件の使用傾向を管理するための履歴データベースを管理し、
前記第2のステップは、複数の前記推奨SQLが選択された場合、前記計算機が、前記履歴データベースを参照して、複数の前記推奨SQLの各々の検索条件の使用傾向に基づいて、複数の前記推奨SQLのランクを決定するステップを含み、
前記第3のステップは、前記計算機が、ランク付けされた、複数の前記推奨SQLを提示するステップを含むことを特徴とするデータ検索支援方法。
【請求項11】
請求項8に記載のデータ検索支援方法であって、
前記カタログは、前記SQLを実行したユーザの情報を含み、
前記計算機システムは、前記計算機システムを利用するユーザに関連する文献の情報を管理するための公知情報データベースを管理し、
前記第2のステップは、複数の前記推奨SQLが選択された場合、前記計算機が、前記公知情報データベースを参照して、複数の前記推奨SQLの各々を実行したユーザに関連する文献の数及び当該文献の引用件数の少なくともいずれかに基づいて、複数の前記推奨SQLのランクを決定するステップを含み、
前記第3のステップは、前記計算機が、ランク付けされた、複数の前記推奨SQLを提示するステップを含むことを特徴とするデータ検索支援方法。
【請求項12】
請求項8に記載のデータ検索支援方法であって、
前記計算機が、前記カタログデータベースを参照し、使用頻度が高い検索条件を特定するステップと、
前記計算機が、特定された複数の前記検索条件を用いて生成される検索条件が定義されたSQLを生成するステップと、
前記計算機が、生成された前記SQLに関する情報を含む前記カタログを生成し、前記カタログデータベースに登録するステップと、を含むことを特徴とするデータ検索支援方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のデータベースを用いたデータ検索技術に関する。
【背景技術】
【0002】
ビッグデータの解析では、新たな知見を得るために、複数種類のデータを組合せた解析が行われる。ユーザは、SQLを用いてデータベースから解析用のデータを取得する。
【0003】
データベースに対するデータ検索を支援する技術としては、例えば、特許文献1に記載の技術が知られている。特許文献1には、「Webサーバ101を用いてデータベース102にアクセスするデータベースアクセス装置であって、該データベースアクセス装置は、ユーザが入力したSQLをブラウザの操作画面から読み込み、読み込んだSQLをもとに前記データベースをアクセスするデータベースアクセス部106と、該データベースアクセス部により実行されたSQLを履歴ファイルに蓄積するSQL履歴蓄積部107と、前記履歴ファイルに蓄積したSQLからユーザが入力したSQLに近似するSQLを検索するための手続きを作成し作成した手続きをクライアントに送信するSQL検索手続き作成部108を備え、前記クライアントのSQL作成を支援する。」ことが記載されている。
【0004】
複数種類のデータを組み合わせた検索を行うためには、データ構造及びデータ項目を熟知しておくこと必要がある。また、近年、公的なオープンデータを利用したビッグデータ解析も行われている。公的なオープンデータの取得にあたっては使用目的等を明確に提示し、取得するデータ表及びデータ項目名を指定する必要がある。すなわち、事前検証ができない状況下でデータ項目を正確に指定する必要がある。したがって、これまでのデータ解析では、データ解析者の経験及び勘に依存しているという課題がある。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に記載の技術は、過去のSQLを提示して、目的とするSQLの作成を支援する技術である。しかし、単一のデータベースに対する検索を前提としており、複数のデータベースを扱うビッグデータ解析には適用が難しい。
【0007】
本発明は、複数のデータベースを組み合わせたデータ検索において、新たな知見を得られる可能性があるデータを取得するためのSQLを提示する技術を実現する。
【課題を解決するための手段】
【0008】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、データ種別が異なるデータを格納する複数のデータベースと接続する計算機システムであって、プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続されるネットワークインタフェースを有する計算機を含み、使用されたSQLに関する情報を含むカタログを格納するカタログデータベースを管理し、ユーザ端末から、第1SQLを含む検索要求を受信した場合、前記第1SQLを実行し、前記第1SQLの実行結果を前記ユーザ端末に出力し、前記カタログデータベースを参照して、前記複数のデータベースを結合してデータを検索するための検索条件であって、前記第1SQLの検索条件と類似する検索条件が定義された推奨SQLを少なくとも一つ選択し、前記ユーザ端末に対して、少なくとも一つの前記推奨SQLを提示する。
【発明の効果】
【0009】
本発明によれば、複数のデータベースを組み合わせたデータ検索において、新たな知見を得られる可能性があるデータを取得するためのSQLを提示できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0010】
【
図1】実施例1のシステムの構成例を示す図である。
【
図2】実施例1の検索システムを構成する計算機のハードウェア構成の一例を示す図である。
【
図3A】実施例1のユーザDBに格納されるデータのデータ構造の一例を示す図である。
【
図3B】実施例1のユーザDBに格納されるデータのデータ構造の一例を示す図である。
【
図4】実施例1のカタログDBに格納されるカタログのデータ構造の一例を示す図である。
【
図5】実施例1の検索システムが実行する処理の一例を説明するフローチャートである。
【
図6】実施例1の検索システムが受付又は出力するSQLの一例を示す図である。
【
図7】実施例2のシステムの構成例を示す図である。
【
図8A】実施例2のトレンドDBに格納されるデータのデータ構造の一例を示す図である。
【
図8B】実施例2のトレンドDBに格納されるデータのデータ構造の一例を示す図である。
【
図8C】実施例2のトレンドDBに格納されるデータのデータ構造の一例を示す図である。
【
図9】実施例2の検索システムが実行する処理の一例を説明するフローチャートである。
【
図10】実施例3のカタログ自動生成処理によって生成されるSQLの一例を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【0012】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【0013】
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【0014】
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
【実施例0015】
図1は、実施例1のシステムの構成例を示す図である。
図2は、実施例1の検索システムを構成する計算機のハードウェア構成の一例を示す図である。
【0016】
システムは、検索システム100及びクライアント端末101から構成される。検索システム100及びクライアント端末101は、図示しないネットワークを介して互いに接続される。ネットワークは、WAN(Wide Area Network)及びLAN(Local Area Network)等であり、接続方式は有線及び無線のいずれでもよい。
【0017】
クライアント端末101は、ユーザが使用する端末である。クライアント端末101は、図示しない、プロセッサ、主記憶装置、ネットワークインタフェース、入力装置、及び出力装置を有する。
【0018】
クライアント端末101は、Webブラウザ180を介して、検索システム100にアクセスし、データを検索する。Webブラウザ180は、検索条件入力部190、検索結果表示部191、及び推奨SQL表示部192を含む。
【0019】
検索条件入力部190は、データを検索するための検索条件が定義されたSQLの入力を受付ける。検索条件入力部190は、SQLを含む検索要求を検索システム100に送信する。検索結果表示部191は、検索システム100から検索要求に対する検索結果を受信し、ユーザに提示する。ユーザは検索結果として取得したデータを用いてデータ解析を行う。推奨SQL表示部192は、検索システム100によって選択された推奨SQLをユーザに提示する。
【0020】
なお、本明細書において、SQLとは、SQL言語を用いて記述されたSQL文(コマンド)を意味する。また、検索条件は、ユーザDB150から取得するデータ項目の組合せ及びユーザDB150間の結合条件(JOIN)等を意味する。
【0021】
検索システム100は、ユーザDB150に対するデータ検索を行うシステムであり、
図2に示すような計算機200から構成される。なお、検索システム100は、ストレージシステム及びネットワークスイッチ等を含んでもよい。
【0022】
計算機200は、プロセッサ201、主記憶装置202、副記憶装置203、及びネットワークインタフェース204を有する。なお、計算機200は、入力装置及び出力装置を有してもよい。
【0023】
プロセッサ201は、主記憶装置202に格納されるプログラムを実行する。プロセッサ201がプログラムにしたがって処理を実行することによって、特定の機能を実現する機能部(モジュール)として動作する。以下の説明では、機能部を主語に処理を説明する場合、プロセッサ201が当該機能部を実現するプログラムを実行していることを示す。主記憶装置202は、メモリ等であり、プロセッサ201が実行するプログラム及びプログラムが使用するデータを格納する。副記憶装置203は、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等であり、データを永続的に格納する。主記憶装置202に格納されるプログラム及びデータは、副記憶装置203に格納されてもよい。この場合、プロセッサ201が副記憶装置203からプログラム及びデータを読み出し、主記憶装置202にロードする。ネットワークインタフェース204は、ネットワークを介して他の装置と通信する。
【0024】
検索システム100は、アプリケーション制御部110、ユーザデータ格納部111、及びカタログ管理部112を含む。
【0025】
ユーザデータ格納部111は、ユーザごとにデータ格納領域140を含む。データ格納領域140には、ユーザが登録又は外部より取得したデータを格納するユーザDB150が格納される。
【0026】
ユーザDB150には、例えば、ユーザが公的機関に申請して取得した公的なオープンデータが格納される。
図1には、ユーザDB150の一例として、一般健診DB150-1及び介護DB150-2を示している。なお、本発明は、ユーザDBに格納されるデータの種別及びデータ構造に限定されない。
【0027】
アプリケーション制御部110は、データの検索を行うアプリケーション120を制御する。
【0028】
アプリケーション120は、データベースアクセス部130、カタログ保存指示部131、及び推奨SQL問合せ部132を含む。
【0029】
データベースアクセス部130は、検索要求に含まれるSQLに基づいて、ユーザDB150にアクセスし、データを検索する。カタログ保存指示部131は、カタログ管理部112に、検索要求に含まれるSQLに関する情報をカタログ400(
図4を参照)として保存するように指示する。推奨SQL問合せ部132は、推奨SQLを問い合わせる。
【0030】
なお、アプリケーション120は、検索されたデータを用いたデータ解析を行う機能を有してもよい。
【0031】
カタログ管理部112は、カタログ400を管理し、カタログ400から推奨SQLを選択する。カタログ管理部112は、カタログ保存部160及び推奨SQL選択部161を含み、また、カタログDB170を保持する。
【0032】
カタログDB170は、カタログ400を格納するデータベースである。
【0033】
カタログ保存部160は、カタログ保存指示部131からの指示にしたがって、カタログ400を生成し、カタログDB170にカタログ400を格納する。推奨SQL選択部161は、カタログDB170に格納されるカタログ400に含まれるSQLの中から推奨SQLを選択する。
【0034】
図3A及び
図3Bは、実施例1のユーザDB150に格納されるデータのデータ構造の一例を示す図である。
【0035】
図3Aは、一般健診DB150-1に格納されるデータのデータ構造を示す。一般健診DB150-1は、テーブル300を格納し、テーブル300は、健診データID301、受診機関都道府県302、健診コード303、疾病分類304、及び医薬品コード305を含むエントリを格納する。一つのエントリが一つの健診データに対応する。なお、健診データに含まれるデータ項目(フィールド)は前述したものに限定されない。前述したデータ項目のいずれかを含まなくてもよいし、また、他のデータ項目を含んでもよい。
【0036】
図3Bは、介護DB150-2に格納されるデータのデータ構造を示す。介護DB150-2は、テーブル310を格納し、テーブル310は、施設コード311、介護ランク312、原疾患コード313、及び性別314を含むエントリを格納する。一つのエントリが一人の介護認定データに対応する。なお、介護認定データに含まれるデータ項目(フィールド)は前述したものに限定されない。前述したデータ項目のいずれかを含まなくてもよいし、また、他のデータ項目を含んでもよい。
【0037】
図4は、実施例1のカタログDB170に格納されるカタログのデータ構造の一例を示す図である。
【0038】
カタログDB170は、複数のカタログ400を格納する。カタログ400には識別情報が付与されている。カタログ400は、SQL、SQLを用いて検索を行ったユーザのユーザ情報、検索対象のユーザDB150の名称、及び検索の実行日時を含む。なお、カタログ400には、他の情報が含まれてもよい。
【0039】
本実施例では、ユーザが使用したSQLをカタログ400として管理する。これによって、ユーザが保持する検索知識を、検索システム100を利用する全ユーザが共有できる。
【0040】
図5は、実施例1の検索システム100が実行する処理の一例を説明するフローチャートである。
【0041】
ユーザは、クライアント端末101のWebブラウザ180を操作して、検索条件を入力し、検索の実行を指示する。この場合、クライアント端末101の検索条件入力部190が、ユーザに対応するアプリケーション120に対して検索条件を含む検索要求を送信する。
【0042】
検索システム100のアプリケーション120は、検索要求を受信した場合(ステップS501)、検索処理を実行する(ステップS502)。
【0043】
具体的には、データベースアクセス部130が、検索要求に含まれるSQLを用いて、ユーザに対応するデータ格納領域140に格納されるユーザDB150にアクセスし、データを検索する。データベースアクセス部130は、検索結果をクライアント端末101に送信する。クライアント端末101の検索結果表示部191が検索結果を表示する。
【0044】
次に、検索システム100のアプリケーション120は、カタログ管理部112にカタログ400を登録する(ステップS503)。
【0045】
具体的には、カタログ保存指示部131が、カタログ管理部112に、検索要求に関する情報とともに登録要求を出力する。カタログ管理部112のカタログ保存部160は、情報に基づいてカタログ400を生成し、カタログ400に識別を付与し、カタログDB170に格納する。
【0046】
本実施例では、検索処理が実行されるたびに、カタログ400が生成され、カタログDB170に蓄積される。
【0047】
次に、検索システム100のアプリケーション120は、カタログ管理部112に推奨SQLの出力指示を送信することによって、推奨SQLを選択する(ステップS504)。出力指示には使用したSQLが含まれる。
【0048】
具体的には、推奨SQL選択部161は、推奨SQL問合せ部132から出力指示を受信した場合、複数のユーザDB150を結合してデータを検索するための検索条件が定義されたSQLを特定する。推奨SQL選択部161は、出力指示に含まれるSQL及び特定されたSQLの検索条件の類似度を算出する。推奨SQL選択部161は、類似度に基づいて推奨SQLを選択し、推奨SQL問合せ部132に送信する。例えば、類似度が最も大きいSQLを推奨SQLとして選択してもよいし、類似度が大きい順に所定の数のSQLを推奨SQLとして選択してもよいし、類似度が閾値より大きいSQLを推奨SQLとして選択してもよい。
【0049】
ここで、検索条件の類似度は、データ項目の組合せの一致度(データ項目の一致する)、及び、結合条件(構文)の一致度に基づいて算出される。なお、出力指示に含まれるSQLのデータ項目を包含し、かつ、当該SQLの結合条件との一致度が高い結合条件である検索条件の類似度が高くなる算出アルゴリズムが設定されているものとする。
【0050】
検索条件が類似する場合、検索目的も類似しているものと推測される。そこで、検索システム100は、類似する検索条件が定義されたSQLを有用な知見を得られる可能性がある推奨SQLとして提示する。
【0051】
次に、検索システム100のアプリケーション120は、クライアント端末101に推奨SQLを送信する(ステップS505)。その後、検索システム100のアプリケーションは処理を終了する。
【0052】
クライアント端末101の推奨SQL表示部192は、受信した推奨SQLをユーザに表示する。
【0053】
ここで、具体例を用いて推奨SQLの表示について説明する。
図6は、実施例1の検索システム100が受付又は出力するSQLの一例を示す図である。
【0054】
SQL600はユーザによって入力されたSQLを表す。推奨SQL610は、検索システム100によって選択された推奨SQLを表す。
【0055】
推奨SQL610には、SQL600と異なる検索条件が定義される。ここで、検索条件が異なるとは、データ項目の組合せ及び結合条件の少なくともいずれかが異なることを意味する。一方、推奨SQL610に定義される検索条件は、SQL600に定義される検索条件と類似する。すなわち、推奨SQL610に定義される検索条件は、SQL600が対象とするデータ項目を包含し、かつ、SQL600の結合条件との一致度が高い結合条件を含む。
【0056】
SQL600は、一般健診DB150-1に対する検索であるのに対し、推奨SQL610は、一般健診DB150-1及び介護DB150-2に対する検索である。また、推奨SQL610では、一般健診DB150-1の疾病分類304と介護DB150-2の原疾患コード313とを結合させる結合条件を使用していることがわかる。
【0057】
このように、検索システム100は、検索対象のユーザDB150と何らかの関係性があるユーザDB150を組み合わせたデータ検索を行うSQLを提示する。これによって、ユーザは、関連性があるユーザDB150のデータ項目の組合せ及び結合条件を確認することができる。すなわち、他のユーザの検索知識を取り入れた検索が可能となる。また、ユーザは、新たなユーザDB150を参照することによって、有用なデータ項目の組合せを把握できる。例えば、介護DB150-2の介護ランク及び性別等を有用なデータ項目の組合せとして把握できる。
【0058】
なお、ユーザは、推奨SQL610をそのまま使用してもよいし、推奨SQL610をアレンジしてもよい。SQL620は、推奨SQL610を参照したユーザが新たに入力したSQLを表す。
【0059】
SQL620では、推奨SQL610のデータ項目の組合せに、介護ランク312及び性別314が追加され、また、推奨SQL610の結合条件から変更が加えられている。
【0060】
実施例1によれば、新たな知見を得られる可能性があるデータを取得するためのSQLを提示できる。これによって、ユーザDB150について詳細な知識を有していなくても、複数のユーザDB150を組み合わせたデータ検索が可能となる。
実施例2の検索システム100は、複数の推奨SQLが選択された場合、ランク付けを行ってユーザに表示する。以下、実施例1との差異を中心に実施例2について説明する。
トレンドDB171は、検索条件の使用傾向を示すデータを格納するデータベースである。公知情報DB172は、論文及びパンフレット等、公知となっている情報を格納するデータベースである。検索システム100は、外部のWebページ及び外部の文献データベース等を周期的にクロールすることによって情報を収集し、公知情報DB172に登録する。
第1リンクテーブル800は、複数のユーザDB150から取得するデータ項目の組合せを管理するテーブルであり、リンクID801、第1データベース名802、第1データ項目名803、第2データベース名804、及び第2データ項目名805を含むエントリを格納する。データ項目の一つの組合せに対して一つのエントリが存在する。
リンクID801は、データ項目の組合せの識別情報を格納するフィールドである。第1データベース名802及び第2データベース名804は、ユーザDB150の名称を格納するフィールドである。第1データ項目名803及び第2データ項目名805は、ユーザDB150に格納されるデータに含まれるデータ項目の名称を格納するフィールドである。
第2リンクテーブル810は、ユーザDB150間の結合条件を管理するためのテーブルであり、リンクID811、第1データベース名812、第2データベース名813、及び結合条件814を含むエントリを格納する。一つのユーザDB150間の結合条件に対して一つのエントリが存在する。
リンクID811は、ユーザDB150間の結合条件の識別情報を格納するフィールドである。第1データベース名812及び第2データベース名813は、ユーザDB150の名称を格納するフィールドである。結合条件814は、SQLに含まれる、ユーザDB150間の結合条件を格納するフィールドである。
履歴テーブル820は、データ項目の組合せ及び結合条件の使用履歴を管理するテーブルであり、リンクID821及び登録日時822を含むエントリを格納する。一回の使用に対して一つのエントリが存在する。
リンクID821は、リンクID801及びリンクID811のいずれかの識別情報を格納するフィールドである。登録日時822は、リンクID821に対応するデータ項目の組合せ又は結合条件を含むSQLが実行された日時を格納するフィールドである。
(S503-1)カタログ保存部160は、登録要求に含まれるカタログ400からSQLを取得し、取得したSQLを解析することによって、データ項目の組合せ及び結合条件を特定する。
(S503-3)データ項目の組合せに一致するエントリが存在する場合、カタログ保存部160は、当該エントリのリンクID801から識別情報を取得する。カタログ保存部160は、履歴テーブル820にエントリを追加し、リンクID821に、取得した識別情報を設定し、登録日時822にSQLの実行日時を格納する。データ項目の組合せに一致するエントリが存在しない場合、カタログ保存部160は、第1リンクテーブル800にエントリを登録し、リンクID801に識別情報を設定する。また、カタログ保存部160は、追加されたエントリの各フィールドに値を設定する。カタログ保存部160は、追加されたエントリのリンクID801から識別情報を取得する。カタログ保存部160は、履歴テーブル820にエントリを追加し、リンクID821に、取得した識別情報を設定し、登録日時822にSQLの実行日時を格納する。
(S503-5)検索条件に一致するエントリが存在する場合、カタログ保存部160は、当該エントリのリンクID811から識別情報を取得する。カタログ保存部160は、履歴テーブル820にエントリを追加し、リンクID821に、取得した識別情報を設定し、登録日時822にSQLの実行日時を格納する。検索条件に一致するエントリが存在しない場合、カタログ保存部160は、第2リンクテーブル810にエントリを登録し、リンクID811に識別情報を設定する。また、カタログ保存部160は、追加されたエントリの各フィールドに値を設定する。カタログ保存部160は、追加されたエントリのリンクID811から識別情報を取得する。カタログ保存部160は、履歴テーブル820にエントリを追加し、リンクID821に、取得した識別情報を設定し、登録日時822にSQLの実行日時を格納する。
ステップS504の処理は実施例1と同一である。ステップS504の処理の後に、検索システム100のカタログ管理部112は、推奨SQLが一つであるか否かを判定する(ステップS511)。
推奨SQLが一つである場合、検索システム100のカタログ管理部112は、アプリケーション120を介して、クライアント端末101に推奨SQLを送信する(ステップS505)。その後、検索システム100のアプリケーションは処理を終了する。
検索システム100のカタログ管理部112は、アプリケーション120を介して、クライアント端末101に、ランク付けされた複数の推奨SQLを送信する(ステップS513)。その後、検索システム100のアプリケーション120は処理を終了する。
ランク付けについて説明する。本実施例では、(1)検索条件の類似度、(2)検索条件のトレンド、及び(3)SQLを実行したユーザの信頼性の三つの指標に基づいて、推奨SQLのランクを決定する。
ステップS512において、カタログ管理部112は、各推奨SQLの検索条件のトレンドを評価する指標を算出する。例えば、カタログ管理部112は、履歴テーブル820を参照し、月単位で、2ヶ月分の推奨SQLに定義される検索条件のデータ項目の組合せ及び結合条件の各々の使用回数を集計する。カタログ管理部112は、使用回数又は使用回数の増加率等を指標として算出する。カタログ管理部112は、使用回数が多い、又は、使用回数の増加率が正かつ大きい、データ項目の組合せ又は結合条件を含む検索条件が定義された推奨SQLが優先的に表示されるようにランク付けを行う。
最新月において、リンクID801が「I1」に対応するデータ項目の組合せを含む検索条件が定義されたSQLの使用頻度は、リンクID801が「I2」に対応するデータ項目の組合せを含む検索条件が定義されたSQLの使用頻度より小さいものとする。この場合、多くのユーザは、リンクID801が「I2」に対応するデータ項目の組合せに関係性があると判断して検索したものと推測され、リンクID801が「I2」に対応するデータ項目の組合せを含むSQLは有益性が高いことが期待できる。そこで、カタログ管理部112は、「I2」に対応するデータ項目の組合せを含むSQLが優先的に表示されるようにランク付けを行う。
(処理1)カタログ管理部112は、複数の推奨SQLの中から一つの推奨SQLを選択する。カタログ管理部112は、カタログDB170を参照して、当該推奨SQLを使用したユーザを特定する。カタログ管理部112は、全ての推奨SQLについて同様の処理を実行する。
(処理2)カタログ管理部112は、特定されたユーザの中から一人のユーザを選択する。カタログ管理部112は、公知情報DB172を参照して、選択したユーザが発表した文献の数、及び、選択したユーザが発表した文献の引用数を算出する。なお、文献の数及び引用数を算出する場合に、集計単位を設定してもよい。例えば、月単位で算出する方法が考えられる。
(処理3)カタログ管理部112は、特定された全てのユーザについて処理が完了したか否かを判定する。特定された全てのユーザについて処理が完了していない場合、カタログ管理部112は、処理2に戻る。
(処理4)特定された全てのユーザについて処理が完了した場合、カタログ管理部112は、各ユーザの文献の発表数及び引用数に基づいて、各ユーザの信頼性を評価する指標を算出する。例えば、文献の発表数及び引用数の合計値及び平均値等を指標として算出する。また、カタログ管理部112は、文献の発表数及び引用数を変数とする数式を用いて指標を算出してもよい。
なお、カタログ管理部112は、(1)検索条件の類似度、(2)検索条件のトレンド、及び(3)SQLを実行したユーザの信頼性のいずれか一つを用いてランク付けを行ってもよいし、二つ以上を組み合わせてランク付けを行ってもよい。二つ以上を組み合わせてランク付けを行う場合、カタログ管理部112は、各指標のランクに重み付けを行って、最終的なランクを決定する。