JP2020140349A - クエリ推薦装置及びクエリ推薦方法 - Google Patents

クエリ推薦装置及びクエリ推薦方法 Download PDF

Info

Publication number
JP2020140349A
JP2020140349A JP2019034314A JP2019034314A JP2020140349A JP 2020140349 A JP2020140349 A JP 2020140349A JP 2019034314 A JP2019034314 A JP 2019034314A JP 2019034314 A JP2019034314 A JP 2019034314A JP 2020140349 A JP2020140349 A JP 2020140349A
Authority
JP
Japan
Prior art keywords
query
condition
unit
user
extraction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019034314A
Other languages
English (en)
Other versions
JP7022712B2 (ja
Inventor
茂莉 黒川
Mori Kurokawa
茂莉 黒川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2019034314A priority Critical patent/JP7022712B2/ja
Publication of JP2020140349A publication Critical patent/JP2020140349A/ja
Application granted granted Critical
Publication of JP7022712B2 publication Critical patent/JP7022712B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】ユーザにとって有用なデータを得られる可能性がある抽出条件を含むクエリを提示する。【解決手段】クエリ推薦装置10は、データベースシステムにおいてユーザが実行したクエリを取得するクエリ取得部121と、クエリ取得部121が取得したクエリと、データベースシステム1における当該クエリの実行結果とに基づいて、当該クエリに含まれるデータの抽出条件とは異なる抽出条件であって、当該実行結果と同一の実行結果を抽出するためのデータの抽出条件を特定する条件特定部122と、条件特定部122が特定した抽出条件に対応するクエリを、ユーザに推薦するクエリとして出力する出力部123と、を備える。【選択図】図2

Description

本発明は、クエリ推薦装置及びクエリ推薦方法に関する。
従来、ユーザに対して、ユーザに有用なクエリを通知することが行われている。例えば、クエリの実行結果に基づいてクエリを特定するクエリリバースエンジニアリング(QRE:Query Reverse Engineering)を行うことにより、クエリを通知する技術が提案されている(例えば、非特許文献1参照)。クエリリバースエンジニアリングを利用することにより、ユーザは、実行結果を得るためのクエリを把握することができる。
Tran, Q. T., Chan, C. Y., & Parthasarathy, S. "Query reverse engineering" The VLDB Journal - The International Journal on Very Large Data Bases, 23(5), October 2014, 721-746
ところで、ユーザは、クエリの実行結果に基づいてクエリを得ることにとどまらず、自身が過去に実行したクエリに関連する、有用なデータを得るためのクエリを探索する場合もある。しかしながら、ユーザが有用なデータを得るクエリを自身で探索する場合、手間がかかるという問題がある。
そこで、本発明はこれらの点に鑑みてなされたものであり、ユーザにとって有用なデータを得られる可能性がある抽出条件を含むクエリを提示することができるクエリ推薦装置及びクエリ推薦方法を提供することを目的とする。
本発明の第1の態様に係るクエリ推薦装置は、データベースシステムにおいてユーザが実行したクエリを取得するクエリ取得部と、前記クエリ取得部が取得した前記クエリと、前記データベースシステムにおける前記クエリの実行結果とに基づいて、前記クエリに含まれるデータの抽出条件とは異なる抽出条件であって、前記実行結果と同一の実行結果を抽出するためのデータの抽出条件を特定する条件特定部と、前記条件特定部が特定した前記抽出条件に対応するクエリを、前記ユーザに推薦するクエリとして出力する出力部と、を備える。
前記条件特定部は、前記クエリ取得部が取得した前記クエリを解析することにより前記クエリが参照するテーブルを特定し、当該テーブルを参照する前記抽出条件を特定してもよい。
前記条件特定部は、前記クエリ取得部が取得した前記クエリを解析することにより前記クエリが参照するテーブルを特定するとともに、前記テーブルに含まれる項目をキーとして含む連結対象テーブルを特定し、当該テーブルと、当該連結対象テーブルとを参照する前記抽出条件を特定してもよい。
前記クエリ推薦装置は、前記出力部が出力した前記抽出条件に対応するクエリの評価を前記ユーザから受け付け、当該抽出条件と、前記評価を示す情報とを関連付けて記憶部に記憶させる評価部をさらに備え、前記出力部は、前記評価が相対的に高い抽出条件に対応するクエリを出力してもよい。
前記クエリ取得部は、データベースシステムにおいてユーザが実行した複数のクエリを取得し、前記条件特定部は、前記クエリ取得部が取得した前記複数のクエリのそれぞれについて、当該クエリに含まれるデータの抽出条件とは異なる抽出条件であって、前記実行結果と同一の実行結果を抽出するためのデータの抽出条件を特定し、前記出力部は、前記クエリ取得部が取得した前記複数のクエリのうち、実行順序が遅いクエリに対して前記条件特定部が特定した前記抽出条件に対応するクエリを、前記ユーザに推薦するクエリとして優先的に出力してもよい。
本発明の第2の態様に係るクエリ推薦方法は、コンピュータが実行する、データベースシステムにおいてユーザが実行したクエリを取得するステップと、取得された前記クエリと、前記データベースシステムにおける前記クエリの実行結果とに基づいて、前記クエリに含まれるデータの抽出条件とは異なる抽出条件であって、前記実行結果と同一の実行結果を抽出するためのデータの抽出条件を特定するステップと、特定された前記抽出条件に対応するクエリを、前記ユーザに推薦するクエリとして出力するステップと、を備える。
本発明によれば、ユーザにとって有用なデータを得られる可能性がある抽出条件を含むクエリを提示することができるという効果を奏する。
本実施形態に係るクエリ推薦装置の概要を示す図である。 本実施形態に係るクエリ推薦装置の構成を示す図である。 データベースシステムに記憶されているテーブルの一例を示す図である。 クエリ取得部が取得したクエリQ0の実行結果を示す図である。 クエリ取得部が取得したクエリQ0に対応する二分木を示す図である。 取得したクエリが参照するテーブルと、連結対象テーブルとの連結テーブルの一例を示す図である。 図6に示す連結テーブルに対応する二分木を示す図である。 取得したクエリが参照するテーブルと、連結対象テーブルとの連結テーブルの他の一例を示す図である。 図8に示す連結テーブルに対応する二分木を示す図である。 本実施形態に係るクエリ推薦装置における処理の流れを示すフローチャートである。 第2実施形態に係るクエリ推薦装置の構成を示す図である。 第2実施形態に係るクエリ推薦装置における処理の流れを示すフローチャートである。
<第1実施形態>
[クエリ推薦装置10の概要]
図1は、第1実施形態に係るクエリ推薦装置10の概要を示す図である。クエリ推薦装置10は、データベースシステム1を利用するユーザ端末2のユーザに、有用なデータを得られる可能性があるクエリを提示する装置である。なお、本実施形態において、クエリは、リレーショナルデータベースにおいてデータを抽出するための問合せ文(SQL文)である。
クエリ推薦装置10は、データベースシステム1とユーザ端末2とにLAN等の通信ネットワークを介して通信可能に接続されている。図1に示すように、クエリ推薦装置10は、ユーザ端末2のユーザが入力したクエリを取得する。ユーザが入力したクエリは、例えば、データベースシステム1において実行されたクエリである。クエリ推薦装置10は、取得したクエリと、当該クエリのデータベースシステム1における実行結果とに基づいて、当該クエリと同一の実行結果を抽出するためのデータの抽出条件を特定する。クエリ推薦装置10は、特定した抽出条件に対応するクエリを、ユーザに推薦する候補クエリとして、ユーザ端末2に出力する。
ユーザがデータベースシステム1に入力したクエリと同一の実行結果を得られる抽出条件に対応するクエリは、ユーザがクエリにおいて指定した抽出条件とは異なる切り口でデータを抽出するものであり、有用なデータを得る抽出条件となる可能性がある。したがって、クエリ推薦装置10は、ユーザにとって有用なデータを得られる可能性があるクエリをユーザに提示することができる。
[クエリ推薦装置10の構成]
続いて、クエリ推薦装置10の構成を説明する。図2は、第1実施形態に係るクエリ推薦装置10の構成を示す図である。図2に示すように、クエリ推薦装置10は、記憶部11と、制御部12とを備える。
記憶部11は、ROM(Read Only Memory)及びRAM(Random Access Memory)等を含む記憶媒体である。記憶部11は、制御部12が実行するプログラムを記憶している。例えば、記憶部11は、制御部12を、クエリ取得部121、条件特定部122及び出力部123として機能させるクエリ推薦プログラムを記憶している。
制御部12は、例えばCPU(Central Processing Unit)である。制御部12は、記憶部11に記憶されたクエリ推薦プログラムを実行することにより、クエリ取得部121、条件特定部122、及び出力部123として機能する。
制御部12の機能を説明するにあたり、データベースシステム1に記憶されているテーブルについて説明する。図3は、データベースシステム1に記憶されているテーブルの一例を示す図である。図3に示すように、データベースシステム1は、Team(チーム成績)テーブルと、Master(選手マスタ)テーブルと、Batting(バッティング成績)テーブルとを記憶している。
ここで、Teamテーブルは、既知のデータを含むテーブルであり、Masterテーブル及びBattingテーブルは、未知のデータを含むテーブルである。既知のデータは、ユーザがテーブルに含まれるレコードを把握しているデータであり、未知のデータは、ユーザがテーブルに含まれるレコードの内容を把握していないデータである。
クエリ取得部121は、データベースシステム1においてユーザ端末2のユーザが実行したクエリを一以上取得する。データベースシステム1には、クエリと、クエリが実行された時刻を示す時刻情報と、クエリを実行したユーザを識別するユーザ識別情報とを関連付けたクエリログが記憶されている。クエリ取得部121は、例えば、ユーザ端末2から、ユーザ識別情報を含み、候補クエリの取得を要求するクエリ取得要求を受け付けると、データベースシステム1から、当該ユーザ識別情報に対応するクエリログのうち、時刻情報が示す時刻が相対的に新しいクエリログを一以上取得する。
なお、クエリ取得部121は、ユーザ端末2から、クエリログの取得期間を受け付け、時刻情報が示す時刻が当該取得期間に含まれるクエリログを取得してもよい。また、クエリ取得部121は、ユーザ端末2から、ユーザがデータベースシステム1において実行したクエリを直接取得してもよい。
例えば、クエリ取得部121は、以下に示すように、図3に示すテーブルに関連するクエリQ0を取得したとする。図4は、クエリ取得部121が取得したクエリQ0の実行結果を示す図である。
Q0:select t.team, t.rank from Team t where t.team = ’PIT’ and t.year = 2002
条件特定部122は、クエリ取得部121が取得したクエリと、データベースシステム1における当該クエリの実行結果とに基づいて、クエリリバースエンジニアリングを行うことにより、当該クエリに含まれるデータの抽出条件とは異なる抽出条件であって、当該実行結果と同一の実行結果を抽出するためのデータの抽出条件を特定する。条件特定部122は、クエリ取得部121が取得した一以上のクエリのそれぞれについて、当該クエリの実行結果と同一の実行結果を抽出するためのデータの抽出条件を特定する。
具体的には、まず、条件特定部122は、クエリ取得部121が取得したクエリを解析することにより、当該クエリが参照するテーブルを特定する。また、条件特定部122は、特定したテーブルに含まれる項目をキーとして含む連結対象テーブルを特定する。例えば、条件特定部122は、クエリ取得部121が取得したクエリQ0が参照するテーブルとして、図3に示すTeamテーブルを特定する。また、条件特定部122は、連結対象テーブルとして、図3に示すMasterテーブル及びBattingテーブルを特定する。連結対象テーブルを特定することにより、クエリ推薦装置10は、ユーザにとって未知のテーブルの項目を含むクエリも推薦することができる。
続いて、条件特定部122は、特定したテーブルについて、取得したクエリの実行結果に基づいてリバースエンジニアリングを行うことにより、特定したテーブルからデータを抽出する抽出条件であって、クエリ取得部121が取得したクエリの実行結果と同一の実行結果を抽出するための抽出条件を特定する。例えば、条件特定部122は、特定したテーブルを根ノード、エッジをデータの分岐条件、各ノードを分岐条件に伴い抽出されたデータとする二分木を作成する。1つのノードから下層に延びるエッジは2本ある。右側に延びるエッジは、左側に延びるエッジの分岐条件を否定する条件である。
条件特定部122は、各ノードのそれぞれに対応する条件を、分岐条件によりデータを二分割したときの分割の不均等さを測る評価指標であるジニ係数を用いることにより特定する。二分木のノードに対応する条件に基づいてデータを分類した場合に、当該条件による分岐の左側に含まれるデータ数を|L|、分岐の右側に含まれるデータ数を|R|、分岐の左側に含まれるデータに正例が含まれる割合をfl、分岐の右側に含まれるデータに正例が含まれる割合をfrとすると、当該条件に対応するジニ係数Gini(L,R)は、以下の式(1)で示される。
Gini(L,R)=(1/(|L|+|R|))(|L|Gini(L)+ |R|Gini(R))・・・(1)
ただし、Gini(L)=1-(fl)^2、Gini(R)=1-(fr)^2
条件特定部122は、ノードに対応する条件として、ジニ係数が最小となる条件を特定する。条件特定部122は、根ノードから順番に、ノードに対応する条件によりデータを抽出した結果、データの抽出結果が、取得したクエリの実行結果と等しくなるまで、二分木にノードを追加することにより、二分木を生成する。図5は、クエリ取得部121が取得したクエリQ0に対応する二分木を示す図である。図5は、クエリQ0が参照するテーブル「Team」に対して生成された二分木である。図5において、例えば、ノードN2には、ノードN1(テーブル「Team」)のうち、条件「t.rank<=1」を満たすデータが含まれる。また、ノードN3は、ノードN2のうち、条件「t.year=2002」を満たすデータが含まれる。
条件特定部122は、特定したテーブルと、生成した二分木とに基づいて、クエリQ0の実行結果に対応する同一の実行結果を抽出するためのデータの抽出条件を特定する。具体的には、条件特定部122は、生成した二分木において正例を含むノードを特定する。図5に示す例では、条件特定部122は、正例を含むノードとして、ノードN3を特定する。条件特定部122は、根ノードのテーブルに基づいて、参照するテーブルを特定する。また、条件特定部122は、特定したノードから根ノードまでたどり着く場合に通過するエッジに対応する条件を、当該テーブルからデータを抽出する条件として特定する。例えば、参照するテーブルを特定する条件は、クエリのFROM句に対応し、当該テーブルからデータを抽出する条件は、クエリのWHERE句に対応する。
条件特定部122は、特定した条件を含む、クエリQ0の実行結果に対応する同一の実行結果を出力するクエリQ1を特定する。クエリQ1は、以下に示すとおりである。
Q1:select t.team, t.rank from Team t where t.rank ≦1 and t.year = 2002
また、条件特定部122は、取得したクエリが参照するテーブルと、連結対象テーブルとに基づいて、二分木を作成する。まず、条件特定部122は、テーブル「Team」と、一以上の連結対象テーブルとをキーに基づいて連結する。
条件特定部122は、図3に示す「Batting」テーブルに含まれる項目「team」と、テーブル「Team」に含まれる項目「team」とに基づいてテーブルを連結する。図6は、取得したクエリが参照するテーブルと、連結対象テーブルとの連結テーブルの一例を示す図である。
条件特定部122は、図6に示す連結テーブルについて、上述した手順と同様の手順によって二分木を生成する。図7は、図6に示す連結テーブルに対応する二分木を示す図である。条件特定部122は、特定したテーブル(Batting、Team)と、図7に示す二分木とに基づいて、クエリQ0の実行結果に対応する同一の実行結果を抽出するためのデータの抽出条件を特定する。
条件特定部122は、特定した条件を含む、クエリQ0の実行結果に対応する同一の実行結果を出力するクエリQ2を特定する。クエリQ2は、以下に示すとおりである。
Q2:select t.team, t.rank from Team t, Batting b where t.team = b.team and b.HR > 50
同様に、条件特定部122は、図3に示す「Batting」テーブルに含まれる項目「team」と、テーブル「Team」に含まれる項目「team」と、「Batting」テーブルに含まれる項目「pID」と、テーブル「Master」に含まれる項目「pID」と、に基づいて、3つのテーブル「Team」、「Batting」、「Master」を連結する。図8は、取得したクエリが参照するテーブルと、連結対象テーブルとの連結テーブルの他の一例を示す図である。
条件特定部122は、図8に示す連結テーブルについて、上述した手順と同様の手順によって二分木を生成する。図9は、図8に示す連結テーブルに対応する二分木を示す図である。条件特定部122は、特定したテーブル(Batting、Team、Master)と、図8に示す二分木とに基づいて、クエリQ0の実行結果に対応する同一の実行結果を抽出するためのデータの抽出条件を特定する。
条件特定部122は、特定した条件を含む、クエリQ0の実行結果に対応する同一の実行結果を出力するクエリQ3を特定する。クエリQ3は、以下に示すとおりである。
Q3:select t.team, t.rank from Team t, Batting b, Master m where t.team = b.team and b.pID = m.pID and b.HR > 50 and m.bats=R
なお、クエリ取得部121が複数のクエリを取得した場合に、これらのクエリから特定されたテーブルが共通のテーブルであるとき、複数のクエリのそれぞれに対応して二分木が生成されることがある。例えば、クエリ取得部121が取得したクエリがクエリQ0A、Q0Bである場合に、いずれのクエリもテーブル「Team」を参照しているとき、テーブル「Team」を根ノードとする二分木として、クエリQ0Aに対応する二分木、クエリQ0Bに対応する二分木が生成される。条件特定部122は、一方の二分木が、他方の二分木を包含している場合、又は、2つの二分木に共通部分が含まれている場合、これらの二分木を統合するようにしてもよい。
出力部123は、条件特定部122が特定した抽出条件に対応するクエリを、ユーザに推薦するクエリとして出力する。例えば、出力部123は、ユーザに推薦するクエリを、ユーザ端末2に出力する。上述した例では、出力部123は、条件特定部122が特定した抽出条件に対応するクエリQ1〜Q3を出力する。
なお、出力部123は、クエリ取得部121が、データベースシステム1においてユーザが実行した複数のクエリを取得し、条件特定部122が、取得された複数のクエリのそれぞれについて、データの抽出条件を特定した場合、当該複数のクエリのうち、一部のクエリを出力してもよい。この場合において、出力部123は、当該複数のクエリのうち、実行順序(実行日時)が遅いクエリに対して特定した抽出条件に対応するクエリを、ユーザに推薦するクエリとして優先的に出力してもよい。
ユーザが複数のクエリを連続して実行した場合において、実行順序が遅いクエリは、実行順序が早いクエリについてユーザが検討したことにより考え出された可能性が高い。したがって、相対的に実行順序が遅いクエリに対して特定した抽出条件に対応するクエリは、相対的に実行順序が早いクエリに対して特定した抽出条件に対応するクエリに比べて、ユーザにとって有用なクエリである可能性が高い。したがって、クエリ推薦装置10は、実行順序が遅いクエリに対して特定した抽出条件に対応するクエリを、ユーザに推薦するクエリとして優先的に出力することにより、ユーザにとって有用である可能性が高いクエリを提示することができる。
また、出力部123は、条件特定部122が特定した抽出条件の一部の条件を含むクエリを、ユーザに推薦するクエリとして出力してもよい。例えば、出力部123は、図5に示す二分木に含まれる2つの条件のうち、1つの条件のみを含むクエリを、条件特定部122が特定した抽出条件に対応するクエリとして、ユーザ端末2に出力してもよい。
また、出力部123は、二分木に含まれる2つの条件のうち、負例を抽出する条件に対応するクエリを、ユーザに推薦するクエリとして出力してもよい。例えば、出力部123は、図5に示す二分木に含まれる2つの条件のうち、負例を抽出する条件である、「t.rank>1」を抽出条件として含むクエリを、ユーザに推薦するクエリとして出力してもよいし、「t.rank≦1 and t.Year!=2002」を抽出条件として含むクエリを、ユーザに推薦するクエリとして出力してもよい。さらに、クエリのSELECT句に対応するテーブルの項目は、クエリ取得部121が取得したクエリのSELECT句と同一でなくてもよい。例えば、「t.team, t.rank」ではなく、「t.team, t.rank, t.year」としてもよい。このようにすることで、有用なデータを得られる可能性がある抽出条件を含み、さらにクエリ取得部121が取得したクエリにない項目も含むことで、さらに有用なデータとなる可能性が生じる。
[クエリ推薦装置10における処理の流れ]
続いて、第1実施形態に係るクエリ推薦装置10における処理の流れについて説明する。図10は、第1実施形態に係るクエリ推薦装置10における処理の流れを示すフローチャートである。
まず、クエリ取得部121は、データベースシステム1においてユーザが実行したクエリを取得する(S10)。
続いて、条件特定部122は、取得したクエリを解析することにより、クエリに対応するテーブルを特定する(S20)。クエリに対応するテーブルは、クエリが参照するテーブル、及び、当該テーブルに含まれる項目をキーとして含むテーブル(連結対象テーブル)である。
続いて、条件特定部122は、取得したクエリに含まれるデータの抽出条件とは異なる抽出条件であって、実行結果と同一の実行結果を抽出するためのデータの抽出条件を特定する(S30)。具体的には、条件特定部122は、特定したテーブルを根ノードとし、エッジをデータの分岐条件とする二分木を作成し、当該二分木に基づいて、抽出条件を特定する。
続いて、出力部123は、条件特定部122が特定した抽出条件に対応するクエリを、ユーザに推薦するクエリとして出力する(S40)。
[第1実施形態における効果]
以上説明したように、第1実施形態に係るクエリ推薦装置10は、データベースシステム1においてユーザが実行したクエリと、当該クエリの実行結果とに基づいて、当該クエリと同一の実行結果を抽出するためのデータの抽出条件を特定する。そして、クエリ推薦装置10は、特定した抽出条件に対応するクエリを、ユーザに推薦するクエリとして出力する。このようにすることで、クエリ推薦装置10は、ユーザにとって有用なデータを得られる可能性がある抽出条件を特定し、当該抽出条件を含むクエリを提示することができる。さらに、クエリ推薦装置10は、ユーザが実行したクエリが参照するテーブルならびに当該テーブルに含まれる項目をキーとして含む連結対象テーブルを特定することで、ユーザにとって未知のデータを含む連結対象テーブルを対象とした抽出条件を特定し、当該抽出条件を含むクエリを提示することもできる。
<第2実施形態>
[ユーザから受け付けたクエリの評価に基づいて次回以降に推薦するクエリを選択する]
続いて、第2実施形態に係るクエリ推薦装置10について説明する。第2実施形態に係るクエリ推薦装置10は、ユーザからクエリの評価を受け付けるとともに、次回以降にクエリを推薦する場合に、受け付けた評価に基づいて推薦するクエリを選択する点で第1実施形態と異なる。以下に、第2実施形態に係るクエリ推薦装置10について説明する。なお、第1実施形態と同じ部分については適宜説明を省略する。
図11は、第2実施形態に係るクエリ推薦装置10の構成を示す図である。図11に示すように、クエリ推薦装置10の制御部12は、評価部124をさらに備える。評価部124は、条件特定部122が特定した二分木のそれぞれのノードに、評価値の初期値を設定する。ここで、初期値は、予め定められている値であり、例えば、全てのノードに対して同じ値が設定される。評価値は高ければ高いほど、高い評価であることを示す。また、根に対応するノードは、評価対象外であるものとする。また、条件特定部122が特定した二分木に対応する評価値が記憶部11に記憶されている場合、初期値の再設定は行われず、過去に行われた評価に対応する評価値が維持されるものとする。
評価部124は、出力部123が出力した抽出条件に対応するクエリの評価をユーザから受け付ける。例えば、評価部124は、出力部123が抽出条件に対応するクエリを出力した後、当該クエリを含み、当該クエリを評価するか否かを受け付けるための評価受付ページをユーザ端末2に表示させ、当該クエリの評価を受け付ける。評価部124は、評価受付ページにおいて、クエリが有用であるか否かの選択を受け付ける。
評価部124は、ユーザ端末2を介して当該クエリの評価を受け付けると、当該クエリに対応する抽出条件と、当該評価を示す情報を関連付けて記憶部11に記憶させる。評価部124は、当該クエリに対応する二分木の一以上のノードを特定し、ユーザから受け付けた評価に基づいて、特定したノードに関連付けられている評価値を更新する。例えば、評価部124は、クエリが有用であるとユーザが評価すると、特定したノードに関連付けられている評価値を所定量だけ増加させ、クエリが有用ではないとユーザが評価すると、特定したノードに関連付けられている評価値を所定量だけ減少させる。
出力部123は、条件特定部122が特定した抽出条件に対応するクエリを出力する場合に、評価が相対的に高い抽出条件に対応するクエリを出力する。出力部123は、条件特定部122が特定した二分木のノードのうち、関連付けられている評価値が相対的に高いノードを特定し、当該ノードに対応するクエリを生成する。出力部123は、関連付けられている評価値が相対的に高いノードの親ノード(ただし、根ノードは除く)又は子ノードがある場合、これらの親ノード又は子ノードに対応するクエリも生成してもよい。出力部123は、生成したクエリを、ユーザに推薦するクエリとして出力する。
ここで、ユーザがクエリ推薦装置10を使用し始めた場合には、条件特定部122が特定した二分木の各ノードの評価値は、ほぼ同じ値である。この場合、出力部123は、二分木のノードから、任意のノードを選択し、選択したノードに対応するクエリを生成するようにしてもよい。
[クエリ推薦装置10における処理の流れ]
続いて、第2実施形態に係るクエリ推薦装置10における処理の流れについて説明する。図12は、第2実施形態に係るクエリ推薦装置10における処理の流れを示すフローチャートである。
S10からS30までの処理は、第1実施形態と同じであるので説明を省略する。
S31において、評価部124は、評価値が設定されていない抽出条件の評価値の初期化を行うことにより、当該抽出条件の評価値を設定する。
続いて、出力部123は、条件特定部122が特定した抽出条件のうち、相対的に評価が高い抽出条件に対応するクエリを、ユーザに推薦するクエリとして出力する(S41)。
続いて、評価部124は、出力部123が出力した抽出条件に対応するクエリの評価をユーザから受け付ける(S50)。
続いて、評価部124は、ユーザ端末2を介して当該クエリの評価を受け付けると、当該クエリに対応する抽出条件と、当該評価を示す情報を関連付けて記憶部11に記憶させることにより評価を更新する(S60)。
[第2実施形態における効果]
以上説明したように、第2実施形態に係るクエリ推薦装置10は、クエリの評価をユーザから受け付け、当該クエリに対応する抽出条件と、評価を示す情報とを関連付けて記憶部11に記憶させておき、記憶部11を参照して、評価が相対的に高い抽出条件に対応するクエリを出力する。このようにすることで、ユーザが同じクエリを反復して実行する場合に、過去にユーザが有用であると評価したクエリを選択することができる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の全部又は一部は、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を併せ持つ。
1・・・データベースシステム、2・・・ユーザ端末、10・・・クエリ推薦装置、11・・・記憶部、12・・・制御部、121・・・クエリ取得部、122・・・条件特定部、123・・・出力部、124・・・評価部

Claims (6)

  1. データベースシステムにおいてユーザが実行したクエリを取得するクエリ取得部と、
    前記クエリ取得部が取得した前記クエリと、前記データベースシステムにおける前記クエリの実行結果とに基づいて、前記クエリに含まれるデータの抽出条件とは異なる抽出条件であって、前記実行結果と同一の実行結果を抽出するためのデータの抽出条件を特定する条件特定部と、
    前記条件特定部が特定した前記抽出条件に対応するクエリを、前記ユーザに推薦するクエリとして出力する出力部と、
    を備えるクエリ推薦装置。
  2. 前記条件特定部は、前記クエリ取得部が取得した前記クエリを解析することにより前記クエリが参照するテーブルを特定し、当該テーブルを参照する前記抽出条件を特定する、
    請求項1に記載のクエリ推薦装置。
  3. 前記条件特定部は、前記クエリ取得部が取得した前記クエリを解析することにより前記クエリが参照するテーブルを特定するとともに、前記テーブルに含まれる項目をキーとして含む連結対象テーブルを特定し、当該テーブルと、当該連結対象テーブルとを参照する前記抽出条件を特定する、
    請求項2に記載のクエリ推薦装置。
  4. 前記出力部が出力した前記抽出条件に対応するクエリの評価を前記ユーザから受け付け、当該抽出条件と、前記評価を示す情報とを関連付けて記憶部に記憶させる評価部をさらに備え、
    前記出力部は、前記評価が相対的に高い抽出条件に対応するクエリを出力する、
    請求項1から3のいずれか1項に記載のクエリ推薦装置。
  5. 前記クエリ取得部は、データベースシステムにおいてユーザが実行した複数のクエリを取得し、
    前記条件特定部は、前記クエリ取得部が取得した前記複数のクエリのそれぞれについて、当該クエリに含まれるデータの抽出条件とは異なる抽出条件であって、前記実行結果と同一の実行結果を抽出するためのデータの抽出条件を特定し、
    前記出力部は、前記クエリ取得部が取得した前記複数のクエリのうち、実行順序が遅いクエリに対して前記条件特定部が特定した前記抽出条件に対応するクエリを、前記ユーザに推薦するクエリとして優先的に出力する、
    請求項1から4のいずれか1項に記載のクエリ推薦装置。
  6. コンピュータが実行する、
    データベースシステムにおいてユーザが実行したクエリを取得するステップと、
    取得された前記クエリと、前記データベースシステムにおける前記クエリの実行結果とに基づいて、前記クエリに含まれるデータの抽出条件とは異なる抽出条件であって、前記実行結果と同一の実行結果を抽出するためのデータの抽出条件を特定するステップと、
    特定された前記抽出条件に対応するクエリを、前記ユーザに推薦するクエリとして出力するステップと、
    を備えるクエリ推薦方法。
JP2019034314A 2019-02-27 2019-02-27 クエリ推薦装置及びクエリ推薦方法 Active JP7022712B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019034314A JP7022712B2 (ja) 2019-02-27 2019-02-27 クエリ推薦装置及びクエリ推薦方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019034314A JP7022712B2 (ja) 2019-02-27 2019-02-27 クエリ推薦装置及びクエリ推薦方法

Publications (2)

Publication Number Publication Date
JP2020140349A true JP2020140349A (ja) 2020-09-03
JP7022712B2 JP7022712B2 (ja) 2022-02-18

Family

ID=72280431

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019034314A Active JP7022712B2 (ja) 2019-02-27 2019-02-27 クエリ推薦装置及びクエリ推薦方法

Country Status (1)

Country Link
JP (1) JP7022712B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023049129A (ja) * 2021-09-29 2023-04-10 三菱電機株式会社 内燃機関の制御装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040254928A1 (en) * 2003-06-13 2004-12-16 Vronay David P. Database query user interface
JP2010003266A (ja) * 2008-06-23 2010-01-07 Nippon Telegr & Teleph Corp <Ntt> クエリ生成装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体
US20100153428A1 (en) * 2008-12-11 2010-06-17 Microsoft Corporation History answer for re-finding search results
US20100325133A1 (en) * 2009-06-22 2010-12-23 Microsoft Corporation Determining a similarity measure between queries
US20190005092A1 (en) * 2017-06-30 2019-01-03 Microsoft Technology Licensing, Llc Query optimization using propagated data distinctness

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040254928A1 (en) * 2003-06-13 2004-12-16 Vronay David P. Database query user interface
JP2007500408A (ja) * 2003-06-13 2007-01-11 マイクロソフト コーポレーション データベースクエリユーザインターフェース
JP2010003266A (ja) * 2008-06-23 2010-01-07 Nippon Telegr & Teleph Corp <Ntt> クエリ生成装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体
US20100153428A1 (en) * 2008-12-11 2010-06-17 Microsoft Corporation History answer for re-finding search results
US20100325133A1 (en) * 2009-06-22 2010-12-23 Microsoft Corporation Determining a similarity measure between queries
US20190005092A1 (en) * 2017-06-30 2019-01-03 Microsoft Technology Licensing, Llc Query optimization using propagated data distinctness

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023049129A (ja) * 2021-09-29 2023-04-10 三菱電機株式会社 内燃機関の制御装置

Also Published As

Publication number Publication date
JP7022712B2 (ja) 2022-02-18

Similar Documents

Publication Publication Date Title
TWI557664B (zh) Product information publishing method and device
CN104063523B (zh) 一种电子商务搜索评分与排名的方法及系统
US8019778B2 (en) System, method, and apparatus for searching information across distributed databases
CN109240901B (zh) 性能分析方法、性能分析装置、存储介质和电子设备
US20110202533A1 (en) Dynamic Search Interaction
US20100217742A1 (en) Generating A Domain Corpus And A Dictionary For An Automated Ontology
Van Hooland et al. Evaluating the success of vocabulary reconciliation for cultural heritage collections
EP3217296A1 (en) Data query method and apparatus
US20160092556A1 (en) Generation of data for a dendrogrammatic tree data structure
Tay et al. UpSizeR: Synthetically scaling an empirical relational database
Kolonko Performance comparison of the most popular relational and non-relational database management systems
Li et al. Schema-free SQL
CN106682190B (zh) 标签知识库的构建方法、装置、应用搜索方法和服务器
US10831746B2 (en) Query generation method, query generation apparatus, and computer-readable recording medium
JP7022712B2 (ja) クエリ推薦装置及びクエリ推薦方法
Glenis et al. Pyexplore: Query recommendations for data exploration without query logs
US11875240B1 (en) Tuning a generative artificial intelligence model
CN111737608B (zh) 企业信息检索结果排序方法及装置
US10936611B2 (en) Search promotion systems and method
US20200042506A1 (en) Method and component for classifying resources of a database
CN111160699A (zh) 一种专家推荐方法及系统
JP2008197976A (ja) 連結情報生成プログラム及び連結情報生成方法
JP2018005403A (ja) 課題推定装置、課題推定方法および課題推定プログラム
TWI547888B (zh) A method of recording user information and a search method and a server
US10324991B2 (en) Search promotion systems and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220118

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220207

R150 Certificate of patent or registration of utility model

Ref document number: 7022712

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150