JP2019144679A - データベース装置、データ管理方法、及びコンピュータ・プログラム - Google Patents

データベース装置、データ管理方法、及びコンピュータ・プログラム Download PDF

Info

Publication number
JP2019144679A
JP2019144679A JP2018026175A JP2018026175A JP2019144679A JP 2019144679 A JP2019144679 A JP 2019144679A JP 2018026175 A JP2018026175 A JP 2018026175A JP 2018026175 A JP2018026175 A JP 2018026175A JP 2019144679 A JP2019144679 A JP 2019144679A
Authority
JP
Japan
Prior art keywords
query
database
inquiry
trend
data
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
JP2018026175A
Other languages
English (en)
Other versions
JP7119411B2 (ja
Inventor
悠太 並木
Yuta Namiki
悠太 並木
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2018026175A priority Critical patent/JP7119411B2/ja
Publication of JP2019144679A publication Critical patent/JP2019144679A/ja
Application granted granted Critical
Publication of JP7119411B2 publication Critical patent/JP7119411B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】利用者がデータ分析をより効率的に実行することができるデータベース装置などを提供する。【解決手段】データベース装置は、データを記憶するテーブルを有するデータ記憶部に関する問合せを受け付ける問合せ処理部と、問合せ処理部が受け付けた問合せに関連するテーブルへのアクセスの傾向を表すモデルを記憶する傾向記憶部と、問合せ処理部が受け付けた他の問合せに関連するテーブルと、傾向記憶部に記憶されたモデルとに基づいて、当該他の問合せに関連して実行可能な操作を提案する傾向判断部と、を備える。【選択図】 図1

Description

本開示は、データベース装置等に関する。
多様なデータを管理するために、データベースなどのデータ管理システムが用いられている。データベースに関連して、例えば、以下のような技術が知られている。
例えば、特許文献1には、複数のテーブルを含むデータベースにおいて、各テーブルからカラムを選択してカラム対を特定し、カラム対のうち、一方のカラムが他方のカラムの外部キーであるか否かを推定する技術が記載されている。特許文献2には、データベースに蓄積されたデータを用いてデータマイニングを実行する際に、データベースへのアクセス処理を解析し、同じアトミックな論理作業単位に関連するカラムの組合せを、分析対象として生成する技術が記載されている。特許文献3には、データベースへの問合せ文におけるカラムの出現位置に得点を付与し、その得点を統計処理することで、予め設定されたルールにとって有用なカラムを特定する技術が記載されている。
特開2014−186488号公報 特開2013−125429号公報 特許第3006525号公報
データベースには、多様なデータが格納されることがあり、データベースに登録されたデータを組み合わせることで新たな知見が得られることがある。一方、複数の利用者がデータベースにデータを格納する場合、各利用者がデータベースに格納されたデータの全容や、データの構造を把握することは難しい可能性がある。この場合、例えば、データベースに登録されたデータやその組合せを利用して、利用者がデータ分析を実行することが容易ではない、という問題がある。
これに対して、特許文献1、特許文献2に記載された技術は、データベースへのアクセスを処理する何らかのプログラムを解析することで、データ間の関係を特定することを企図した技術であり、そのようなプログラムが予め与えられない状況に適用することはできない。また、特許文献3に記載された技術は、データベースに対する問合せに含まれるカラムの位置に基づいて、ドメイン知識としてのカラムを特定することを企図した技術であり、上記問題を解決可能な技術ではない。
本開示にかかる技術は、上記のような事情を鑑みて開発されたものである。即ち、本開示の目的の一つは、利用者がデータ分析をより効率的に実行することを可能とする技術を提供することにある。
上記目的を達成すべく、本開示の1態様にかかるデータベース装置は、以下のように構成される。即ち、本開示の1態様にかかるデータベース装置は、データを記憶するテーブルを有するデータ記憶部に関する問合せを受け付ける問合せ処理部と、問合せ処理部が受け付けた問合せに関連するテーブルへのアクセスの傾向を表すモデルを記憶する傾向記憶部と、問合せ処理部が受け付けた他の問合せに関連するテーブルと、傾向記憶部に記憶されたモデルとに基づいて、当該他の問合せに関連して実行可能な操作を提案する傾向判断部と、を備えるよう構成される。
本開示の他の1態様にかかるデータ管理方法は、データを記憶するテーブルを有するデータベースに関する問合せを受け付け、受け付けた問合せに関連するテーブルへのアクセスの傾向を表すモデルを記憶し、他の問合せに関連するテーブルと、記憶されたモデルとに基づいて、当該他の問合せに関連して実行可能な操作を提案することを含む。
また、同目的は、上記構成を有するデータベース装置、データ管理方法等をコンピュータによって実現するコンピュータ・プログラム(データ管理プログラム)、及び、そのコンピュータ・プログラムが格納されているコンピュータ読み取り可能な記録媒体等によっても達成される。
即ち、本開示の更に他の1態様にかかるデータ管理プログラムは、データを記憶するテーブルを有するデータベースに関する問合せを受け付ける問合せ処理と、受け付けた問合せに関連するテーブルへのアクセスの傾向を表すモデルを記憶する記憶処理と、他の問合せに関連するテーブルと、記憶されたモデルとに基づいて、当該他の問合せに関連して実行可能な操作を提案する傾向判断処理とを、データベース装置として機能するコンピュータに実行させる。また、本開示の1態様にかかる記録媒体には、上記したコンピュータ・プログラムが記録されてもよい。
本開示によれば、利用者がデータ分析をより効率的に実行することができる。
図1は、本開示の第1実施形態にかかるデータベース装置の機能的な構成を例示するブロック図である。 図2は、本開示の第1実施形態にかかるデータベース装置の動作を例示するフローチャート(その1)である。 図3は、本開示の第1実施形態にかかるデータベース装置の動作を例示するフローチャート(その2)である。 図4は、本開示の第1実施形態にかかるデータベース装置が問合せを処理する動作の具体例を示す説明図(その1)である。 図5は、本開示の第1実施形態にかかるデータベース装置が問合せを処理する動作の具体例を示す説明図(その2)である。 図6は、本開示の第1実施形態にかかるデータベース装置が、利用者に対して提示する提案情報を例示する説明図である。 図7は、本開示の第2実施形態にかかるデータベースシステムの機能的な構成を例示するブロック図である。 図8は、本開示にかかる各実施形態を実現可能なハードウェア装置の構成を例示する説明図である。
<実施形態の概要>
各実施形態の詳細な説明に先立って、本開示における技術的な検討事項等について説明する。
IoT(Internet of Things)という言葉に象徴されるように、多くのデバイスが通信ネットワークに接続されるようになった。典型的には、そのようなデバイスには、データを収集可能な各種センサー(例えば、温度、湿度、振動、重量、人感センサーなど)が設けられる。これらのセンサーは、例えば、定期的にデータを収集して、通信ネットワークを介してデータセンターに送信する。データセンターにおいては、収集したデータをデータベースに記憶することで、後の活用に備えてデータを蓄積する。なお、データセンターは、例えば、データベースなどを用いて、各種のデータを蓄積及び管理するシステム(又は、そのようなシステムが稼働する物理的及び仮想的な施設)である。
このようなデバイスは、今後も増加することが予想される。デバイスの増加に伴い、収集されるデータ量が増加するとともに、そのデータを表す表現形式も増加することが予想される。例えば、センサーのベンダーや、センサーの利用目的によって、温度の表現形式(例えば、華氏又は摂氏)が、センサーごとに異なる状況が想定される。同様に、例えば、重量の表現形式として、kg単位、mg単位などが用いられる状況が想定される。即ち、同じ計測対象に関するセンサーデータであっても、表現形式が異なる状況が生じ得る。
また、こうしたセンサーデータを活用する際、センサーデータと、他のデータとを組み合わせることがある。具体例として、生鮮食品を扱う店舗が、気温センサーのデータと、売上データとを組み合わせることで気温ごとの売れ筋の商品を分析し、天気予報に基づいて仕入れを行うことで、欠品による売上ロスや過剰在庫の最小化を図ることが考えられる。
上記した例のように、センサーを搭載したデバイスの増加や、収集されたデータの分析に関する幅広いニーズなどから、様々なデータソース(例えば、センサーや既存システムのデータなどの情報源)からデータを集めて分析を行う基盤としてのデータベース(分析用データベース)が構築されるようになった。
このような分析用データベースについては、(i)データベースの利用者が、蓄積されたデータをすべて把握しているとは限らない、(ii)データベースに蓄積されたデータの表現形式が統一されているとは限らない、という傾向がある。
上記(i)の具体例として、例えば、複数の利用者(データを活用して分析を行う複数の担当者)が、それぞれ自身の分析に有用と判断したデータソースからデータを収集することにより、各利用者がデータベースに格納されたデータの全容を把握することが困難になる状況が考えられる。このような状況では、例えば、同じ内容のデータが異なる名前(名称)で重複して収集されていることもありえる。
上記(ii)の具体例としては、例えば、データを収集したセンサーによって、温度の表現形式が異なる(例えば、あるセンサーは「摂氏」を用い、別のセンサーは「華氏」を用いる)状況が考えられる。また、別の具体例として、あるデータベースにおいて、「名前」のデータを格納する列(カラム)が、あるテーブルでは「名前」列であり、別のテーブルでは「氏名」列であり、更に別のテーブルでは「NAME」列である、という状況が考えられる。上記(ii)のような状況は、例えば、多様なデータソースからデータを収集した際に、データソースにおける表現形式をそのまま用いて、収集したデータをデータベースに蓄積することにより発生する。
こうした状況は、利用者がデータを活用することを困難にする可能性がある。具体的には、例えば、以下のような課題が生じ得る。即ち、データベースを用いてデータ分析を実行する際、分析の目的に有用なデータがデータベースに格納されているにもかかわらず、利用者がそのデータの存在を認識できない可能性がある。また、仮に、利用者が有用そうなデータを認識したとしても、そのデータを、利用者自身が使おうとしているデータとどのように組み合わせることが適切かわかりにくい可能性がある。
上記したように、多様なデータソースから収集されたデータを組み合わせることで、有用な知見が得られることがある。データベースにおいては、こうしたデータの組合せは、例えば、「結合(join)」と呼ばれる操作(結合操作)により行われる。結合操作では、例えば”顧客.顧客ID = 売上.購入者”のように2つのデータソース(例えば、リレーショナルデータベースにおけるテーブル)間の関係を結合条件として与える。この例は、顧客表(顧客テーブル)における「顧客ID」列の値と、売上表(売上テーブル)における「購入者」列の値とが等しいものを関連付ける操作を表す。
例えば、テーブルを構成するデータ形式(例えば、テーブルや列の名前)が体系的に管理されている場合、データベースの利用者は、例えば、おおよそのテーブルの内容を予想して、データを結合する条件を記述することができる。しかし、前述した傾向を持つデータベースでは、ある利用者が(例えば他の利用者が収集した)有用そうなデータを見つけたとしても、例えば同じような値のデータを含む列が複数存在するような状況が想定される。一具体例として、あるテーブルに、顧客を特定する識別子(顧客ID(Identifier))がCID(Customer ID)という名前で格納され、「AID」や「BID」などの名前で、CIDと同じような値を含む列があるような状況が想定される。そのような場合、分析に有用なデータが存在していても利用者(分析者)がそのデータを活用できないような状況が発生する。
これに対して、本開示においては、対象データベースに格納されているデータや、そのデータの形式に対して十分な知識を有さず、当該データベースを用いた分析が不慣れな利用者を支援可能な技術が提供される。以下において説明する、本開示にかかる技術が実現されたデータベースシステムは、例えば、あるデータベースにおける問合せ(クエリ)の履歴などの情報から、このデータベースにおける分析処理のモデル(分析を行う処理の流れ(過程)を表現したモデル)を構築する。かかるデータベースシステムは、このモデルを利用することで、利用者に対して、そのデータベースに関する問合せを提案する。
具体的には、本開示にかかるデータベースシステムは、例えば、各利用者のデータベースに対するアクセス(問合せ等)の傾向を記憶するよう構成されてよい。ある利用者によって、記憶されている傾向に沿ったアクセスが行われた場合、本開示にかかるデータベースシステムは、その記憶された傾向に従い、その利用者に対して次のステップ(例えば、問合せ)を提案するよう構成されてよい。より具体的には、データベースシステムは、例えば、利用者に対して以下のような提案を提示するよう構成されてよい。即ち、本開示にかかるデータベースシステムは、例えば、同一セッション内でテーブルのアクセス順序を記憶し、同一の順序によるアクセスが行われたときに、次にアクセスするテーブルを提案してもよい。例えば、本開示にかかるデータベースシステムは、ある利用者がテーブルA、テーブルB、テーブルC、テーブルDの順でテーブルにアクセスした際、そのアクセス順序を記憶する。そして、本開示にかかるデータベースシステムは、例えば、別の利用者がテーブルA、テーブルBの順でテーブルにアクセスした際、その利用者に対して次に確認すべきテーブルとしてテーブルCを提案してもよい。これにより、例えば、別の利用者がテーブルCに含まれるデータの存在を認識していない場合であっても、テーブルCに格納されたデータの利用を、利用者に提案することができる。
また、本開示にかかるデータベースシステムは、例えば、テーブル間の関連性を記憶し、他の利用者にこれを提案するよう構成されてもよい。例えば、本開示にかかるデータベースシステムは、ある利用者が、”A.CID = B.顧客ID”(A表とB表とにおいて、A表のCID列とB表の顧客ID列とに同じ値が設定されている行を関連付ける)を条件として結合操作を行った際、このテーブル間の関連性を記憶してもよい。そして、本開示にかかるデータベースシステムは、例えば、別の利用者がテーブルA又はテーブルBにアクセスした際、その利用者に対して、上記の条件によるもう一方の表との結合を提案してもよい。これにより、例えば、別の利用者に対して、有用なデータの組み合わせ方を提案することができる。上記のように構成された本開示にかかるデータベースシステムを用いることで、利用者は、例えば、その利用者が十分な知識を有さないデータベースにおいても、効率よくデータ分析を行うことが可能になる。
以下、本開示にかかる技術について、具体的な実施形態を用いて更に詳細に説明する。なお、以下の実施形態(及びその変形例)の構成は一つの具体例であり、本開示にかかる技術の範囲は、それらには限定されない。以下に示す各実施形態における構成要素の分割(例えば、機能的な単位による分割)は、その実施形態を実現可能な一例である。各実施形態を実現可能な構成は、以下の例示に限定されず、様々な構成が想定され得る。以下の各実施形態を構成する構成要素は、更に分割されてもよく、また、以下の各実施形態を構成する1以上の構成要素が統合されてもよい。以下に例示する各実施形態が1以上の物理的装置、仮想的装置、及びその組合せを用いて実現される場合、1以上の構成要素が1以上の装置により実現されてもよく、1つの構成要素が複数の装置を用いて実現されてもよい。
なお、本開示に係る技術の一態様であるデータ管理方法は、以下の各実施形態におけるデータベース装置の動作として実現されてもよい。また、本開示に係る技術の一態様であるコンピュータ・プログラムは、以下の各実施形態におけるデータベース装置において、本開示に係る技術の一態様であるデータ管理方法を実行するプログラムとして実装されてもよい。
<第1実施形態>
以下、本開示にかかる技術の第1の実施形態について説明する。本実施形態においては、本開示にかかる技術が実現されたデータベース装置を具体例として、本開示にかかる技術について具体的に説明する。なお、本開示におけるデータベース装置は、単体の装置として実現されてもよく、複数の装置を用いたデータベースシステムとして実現されてもよい。なお、本実施形態におけるデータベース装置を実現可能な具体的なハードウェア構成については、後述する。
[構成]
図1は、本実施形態におけるデータベース装置100の機能的な構成を例示するブロック図である。図1に例示するように、本実施形態におけるデータベース装置100は、クライアント200と、通信可能に接続される。
クライアント200は、利用者がデータベース装置100に対して問合せ(SQLなどの問合せ言語を用いたデータの挿入、更新、参照などのクエリ)を発行する装置である。クライアント200は、例えば、コンピュータなどの通信機能を備えた情報処理装置により構成されてもよい。クライアント200が発行する問合せは、特定の問合せ言語(例えばSQL)に限定されず、適切な問合せ言語が用いられてよい。データベース装置100と、クライアント200とを接続する通信ネットワークは特に限定されず、適切な通信方法(有線、無線、およびそれらの組み合わせ)を採用することができる。
以下、本実施形態におけるデータベース装置100を構成する構成要素について説明する。図1に例示するように、データベース装置100は、問合せ処理部101と、データ記憶部102と、傾向記憶部103と、傾向判断部104と、を備える。データベース装置100を構成するこれらの構成要素は、適切な通信方法を用いて、通信可能に接続されていてよい。また、各構成要素は、例えば、後述するハードウェア装置によって実行されるソフトウェア・プログラムとして実現されてもよく、専用のハードウェア(例えば、演算処理、記憶処理、通信処理などを実行可能な回路要素等)を用いて実現されてもよい。
問合せ処理部101(問合せ処理手段)は、クライアント200から発行された問合せを処理するよう構成される。問合せ処理部101は、例えば、クライアント200から発行されたデータベースに関する問合せ(SQL等)を解釈し、その問合せに含まれるデータベース操作の命令を実行してもよい。
データ記憶部102(データ記憶手段)は、データベース装置100に格納されたデータを記憶するよう構成される。データ記憶部102がデータを記憶する形式は特に限定されない。例えば、データ記憶部102は、リレーショナルデータベースとして、表(テーブル)形式によりデータを記憶してもよく、その他の形式(例えば、KVS(Key Value Store)等)によりデータを記憶してもよい。本位実施形態においては、具体例として、データ記憶部102は、表形式を用いてデータを記憶することを想定する。
傾向記憶部103(傾向記憶手段)は、クライアント200が発行した問合せをモデル化して記憶するよう構成される。具体的には、傾向記憶部103は、クライアント200から受け付けた問合せに含まれるテーブルへのアクセスの傾向を表すモデルを記憶してもよい。傾向記憶部103の詳細な動作については、後述する。
傾向判断部104(傾向判断手段)は、クライアント200が発行した問合せに応じて、傾向記憶部103に記憶されたモデルに基づいて、その問合せに関連した実行可能な他の操作を提案するか否かを判断するよう構成される。傾向判断部104は、例えば、クライアント200から受け付けた問合せに、傾向記憶部103に蓄積されたモデルに類似する問合せが含まれるか否かを判断してもよい。傾向判断部104は、クライアント200が発行した問合せに適合するモデルがある場合、そのモデルに基づいて、クライアント200に対して、別の問合せを提案してもよい。傾向判断部104の具体的な動作については、後述する。
[動作]
以下、上記のように構成されたデータベース装置100の動作について、説明する。データベース装置100は、大別して、以下の二つの処理(第1の処理、第2の処理)を実行する。即ち、データベース装置100は、クライアント200が発行した問合せをモデル化し(モデルを作成し)、記憶する処理(第1の処理)を実行するよう構成される。データベース装置100は、また、作成したモデルに基づいて、クライアント200に対して、次に実行する操作(例えば、次に実行する問合せ等)を提案する処理(第2の処理)を実行するよう構成される。データベース装置100は、これらの処理を必ずしも排他的に実行する必要はなく、両方の処理を並行して実行してもよい。
以下、第1の処理について、図2に例示するフローチャートを用いて説明する。
問合せ処理部101は、クライアント200が発行した問合せを受け付け、その問合せを解析する(ステップS201)。以下、具体例として、クライアント200が発行する問合せはリレーショナルデータベースにおいて一般的に用いられるSQLを用いて記述されることを想定する。なお、本開示にかかる技術はこれに限定されず、他の問合せ言語にも適用可能である。
問合せ処理部101は、以前の問合せにおいてアクセスしたテーブルの情報を読み出す(ステップS202)。問合せ処理部101は、例えば、前回第1の処理を実行した際に、後述するステップS203において記憶したテーブルの情報を、傾向記憶部103から読み出してもよい。なお、クライアント200から受け付けた問合せが、あるセッションにおいて最初の問合せである場合、問合せ処理部101は、ステップS202を実行せずともよい。セッションは、例えば、データベース装置100に対する一連の操作のまとまり(操作のセット)であってよい。例えば、ある利用者がデータベース装置100に接続した際に一つのセッションが開始され、その利用者がデータベース装置100から切断した際に、そのセッションが終了してもよい。この場合、そのセッションには、ある利用者がデータベース装置100に接続してからデータベース装置100から切断されるまでの間に実行された操作が含まれる。
問合せ処理部101は、ステップS201において受け付けた問合せを処理する際にアクセスするテーブルを、傾向記憶部103に記憶する(ステップS203)。具体的には、問合せ処理部101は、クライアント200から受け付けた問合せが、あるセッションにおいて最初の問合せである場合、その問合せにおいてアクセスされたテーブルを表す情報を傾向記憶部103に記憶してよい。クライアント200から受け付けた問合せが、あるセッションにおいて最初の問合せではなく、ステップS202において以前にアクセスしたテーブルの情報が読み込まれている場合、問合せ処理部101は、以前の問合せにおいてアクセスしたテーブルと、今回の問合せにおいてアクセスしたテーブルとの関係を表す情報を傾向記憶部103に記憶してよい。即ち、問合せ処理部101は、ある特定のタイミングまでに受け付けた問合せにおいてアクセスされたテーブル間の関係を表す情報を、傾向記憶部103に記憶してよい。かかる特定のタイミングは、特に限定されず、例えば、あるセッションにおいて最後に問合せを受け付けたタイミング(最新の問合せを受け付けたタイミング)であってもよく、それ以前の適切なタイミングであってもよい。かかるタイミングは、例えば、予め設定値等として問合せ処理部101に設定されていてもよい。
具体例として、問合せ処理部101が、ステップS201において以下のような問合せ(SQL)を受け付けたことを想定する。
SELECT * FROM t1 WHERE c1 = 42・・・(問合せ1).
上記(問合せ1)において、”t1”は、今回の問合せにおいてアクセスされるテーブルを表す(この場合は、テーブル”t1”がアクセスされる)。このとき、問合せ処理部101は、傾向記憶部103に、「(t_prv)→t1」という情報を記憶する。”t_prv”は、ステップS202において読み出されたテーブルを仮に表している。実際の処理においては、”t_prc”には、ステップS202において読み出されたテーブル名などが設定される。また、”→”は、テーブルがアクセスされた順番(順序)を表す。上記具体例においては、”→”は、あるセッションにおいて、テーブル”t_prv”がアクセスされたのち、テーブル”t1”がアクセスされたことを表す。なお、問合せ処理部101は、”→”に限定されず、他の適切な表現方法を用いてもよい。このように、問合せ処理部101は、傾向記憶部103に、ある特定のタイミング(例えば、今回の問い合わせを受け付けたタイミング)までに受け付けた1以上の問合せに含まれるテーブルのアクセス順序を、テーブルへのアクセスの傾向を表すモデルとして傾向記憶部103に記憶することができる。
なお、ステップS201における問合せが、あるセッションにおける最初の問合せである場合(ステップS202が実行されていない場合)、問合せ処理部101は、傾向記憶部103に、「t1」という情報を記憶してよい。
また、他の具体例として、問合せ処理部101が、ステップS201において以下のような問合せ(SQL)を受け付けたことを想定する。
SELECT * FROM t1, t2 WHERE t1.c1 = t2.c2 ・・・(問合せ2).
この場合、問合せ処理部101は、傾向記憶部103に、「(t_prev)→t1,t2」という形式の情報になる。上記(問合せ2)においては、複数のテーブル”t1”、”t2”がアクセスされる。
問合せ処理部101は、ステップS201において受け付けた問合せに、複数のテーブルが含まれるか否か(問合せにおいて複数のテーブルがアクセスされるか否か)を判断する(ステップS204)。上記の具体例を用いて説明すると、(問合せ1)の場合、アクセスされるテーブルの数は1つ(”t1”)なので、問合せ処理部101は、ステップS204において”No”と判断する。また、上記(問合せ2)の場合、複数のテーブル(”t1”、”t2”)がアクセスされるので、問合せ処理部101は、ステップS204において”Yes”と判断する。
ステップS204においてYesの場合、問合せ処理部101は、ステップS201において受け付けた問合せに含まれるテーブル間の関係性を表す情報を傾向記憶部103に記憶する(ステップS205)。問合せ処理部101は、例えば、ある問合せに含まれるテーブルを結合する結合条件を、テーブル間の関係性を表す情報として、傾向記憶部103に記憶してもよい。これにより、問合せ処理部101は、複数のテーブル間を関連付ける結合条件を、テーブルへのアクセスの傾向を表すモデルとして傾向記憶部103に記憶することができる。上記(問合せ2)の具体例の場合、問合せ処理部101は、例えば、「t1.c1 = t2.c2」を、傾向記憶部103に記憶してもよい。
上記説明したステップS203、S205の処理により、問合せ処理部101は、データベースに格納されたテーブルに対するアクセスをモデル化することができる。より具体的には、問合せ処理部101は、例えば、データベースに格納されたテーブルに対するアクセスの順番を、モデル化することができる。また、問合せ処理部101は、データベースに格納されたテーブル間の関係性をモデル化することができる。より具体的には、問合せ処理部101は、あるテーブルと、他のテーブルとの結合関係(それらのテーブルを結合する結合条件)をモデル化することができる。
以下、第2の処理について、図3に例示するフローチャートを用いて説明する。
問合せ処理部101は、クライアント200から問合せを受け付け、その問合せを解析することで、その問合せに関係するテーブルを特定する(ステップS301)。例えば、クライアント200から、上記(問合せ2)に例示するような問合せを受け付けた場合、問合せ処理部101は、テーブル”t1”、及び”t2”を特定する。
問合せ処理部101は、ステップS301において特定された各テーブルについて、以下において説明するステップS302からステップS304を繰り返し実行する(ステップS302−ステップS305)。上記した(問合せ2)の例において、テーブル”t1”及びテーブル”t2”のそれぞれについて、以下の各ステップ(ステップS302−S304)において説明する処理を行う。なお、以下のステップの説明においては、説明の便宜上処理対象とするテーブルを”t”と記載する。
問合せ処理部101は、傾向記憶部103からテーブル”t”に関連する情報を読み出す(ステップS302)。問合せ処理部101は、読み出した情報を傾向判断部104に提供してもよい。この際、読み出される情報は、例えば、上記説明したステップS203、S205において傾向記憶部103に記憶された情報(例えば、テーブルのアクセス順序、テーブル間の結合関係等)であってよい。
傾向判断部104は、ステップS302において”t”に関連する情報が得られたか否かを判定する(ステップS303)。ステップS303においてYesの場合、傾向判断部104は、ステップS302で得られたテーブル”t”に関連する情報に基づいて、利用者に対して次に実行する処理に関する情報を提案する(ステップS304)。傾向判断部104は、次に実行する処理に関する情報をクライアント200に提供することで、かかる情報を利用者に提案してもよい。ステップS303においてNoの場合、及び、ステップS304における処理を実行した場合、傾向判断部104は、ステップS301において特定された全てのテーブルについて、上記処理を実行した否かを確認する(ステップS305)。ステップS305においてNoの場合、傾向判断部104は、ステップS302に戻って処理を続行してよい。また、ステップS305においてYesの場合、傾向判断部104は、処理を終了してよい。
以下、ステップS304における処理について具体的に説明する。傾向判断部104は、ステップS302で得られたテーブル”t”に関連する情報に基づいて、利用者に対して、次にアクセスするテーブルを提示してもよい。また、傾向判断部104は、利用者に対して、次にアクセスする他のテーブルと、当該他のテーブルとテーブル”t”と結合条件を提示してもよい。
傾向判断部104は、傾向記憶部103から取得したテーブル”t”に関する情報を、そのまま利用者に提示してもよい。傾向判断部104は、傾向記憶部103から取得したテーブル”t”に関する情報のうち、ステップS301において受け付けた問合せに応じて、特定の条件を満たす情報を選択して、利用者に提示してもよい。
以下、図4及び図5に例示する具体例を用いて、データベース装置100の動作について、更に具体的に説明する。
図4は、同一セッション内で実行される上記第1の処理の具体例を示す説明図である。図4において、符号400a−400dには、傾向記憶部103に記憶されている情報(問合せを表すモデル)を表す。符号400a−400dにおいて、”()”内に示される情報は、ある問合せに関連するテーブルを表す。例えば、符号400aにより表される情報の場合、問合せに関連するテーブルは”t1”、”t2”である。また、”<>”内に示される情報は、ある問合せに複数のテーブルが含まれる場合に、それらのテーブルの関連性を表す情報(例えば、結合条件等)を表す。例えば、符号400aにより表される情報の場合、テーブル”t1”、”t2”の結合条件は、”t1.c1=t2.c2”である。以下、図4に示す処理の流れについて説明する。
利用者1は、データベース装置100(問合せ処理部101)に対して、図4のS401に例示する問合せ(
「SELECT * FROM t1,t2 WHERE t1.c1=t2.c2」)を実行する。問合せ処理部101は、この問合せによりアクセスされるテーブル”t1”、”t2”を特定し、それらを傾向記憶部103に記憶する。この際、問合せ処理部101は、例えば、傾向記憶部103に対して、図4のS402に例示する命令(「append(t1、t2)」)を通知してもよい。また、問合せ処理部101は、テーブル”t1”と、”t2”との間の関係性を表す情報(例えば、結合条件等)を、傾向記憶部103に記憶してもよい。これにより、傾向記憶部103には、図4の400aに例示する情報(モデル)が記憶される。
利用者1は、データベース装置100(問合せ処理部101)に対して、図4のS403に例示する問合せ(
「SELECT * FROM t3」)を実行する。問合せ処理部101は、この問合せによりアクセスされるテーブル”t3”を特定し、それを傾向記憶部103に記憶する。この際、問合せ処理部101は、例えば、傾向記憶部103に対して、図4のS404に例示する命令(「append(t3)」)を通知してもよい。傾向記憶部103には、図4の400bに例示する情報が記憶される。これにより、同一セッションにおけるテーブルのアクセス順序(この場合は、テーブル(”t1”,t2”)の後に、テーブル”t3”がアクセスされる)を表す情報(モデル)が、傾向記憶部103に記憶される。
利用者1は、データベース装置100(問合せ処理部101)に対して、図4のS405に例示する問合せ(
「SELECT * FROM t3,t4 WHERE t3.c3=t4.c4」)を実行する。問合せ処理部101は、この問合せによりアクセスされるテーブル”t3”、”t4”を特定し、それらを傾向記憶部103に記憶する。この際、問合せ処理部101は、例えば、傾向記憶部103に対して、図4のS406に例示する命令(「append(t3、t4)」)を通知してもよい。また、問合せ処理部101は、テーブル”t3”と、”t4”との間の関係性を表す情報(例えば、結合条件等)を、傾向記憶部103に記憶してもよい。傾向記憶部103には、図4の400cに例示する情報が記憶される。これにより、同一セッションにおけるテーブルのアクセス順序(この場合は、テーブル(”t1”,t2”)、テーブル”t3”、テーブル(”t3”、”t4”)の順にアクセスされる)を表す情報(モデル)が、傾向記憶部103に記憶される。
利用者1は、データベース装置100(問合せ処理部101)に対して、図4のS407に例示する問合せ(
「SELECT * FROM t5」)を実行する。問合せ処理部101は、この問合せによりアクセスされるテーブル”t5”を特定し、それを傾向記憶部103に記憶する。この際、問合せ処理部101は、例えば、傾向記憶部103に対して、図4のS404に例示する命令(「append(t5)」)を通知してもよい。傾向記憶部103には、図4の400dに例示する情報が記憶される。これにより、同一セッションにおけるテーブルのアクセス順序(この場合は、テーブル(”t1”,t2”)、テーブル”t3”、テーブル(”t3”、”t4”)、テーブル”t5”の順にアクセスされる)を表す情報(モデル)が、傾向記憶部103に記憶される。
図5は、第2の処理の具体例を示す説明図である。図5に例示する処理においては、事前に図4に示す処理が実行され、図4における400a−400dに例示する情報を表すモデルが構築されていることを想定する。なお、図4に例示する利用者1と、図5に例示する利用者2とは、異なる利用者であってもよく、同一の利用者であってもよい。
利用者2は、データベース装置100(問合せ処理部101)に対して、図5のS501に示す問合せ(「SELECT * FROM t3」)を実行する。
問合せ処理部101は、その問合せを受け付けると、問合せの対象であるテーブル”t3”に関連する情報を、傾向記憶部103から読み出す。この際、問合せ処理部101は、例えば、傾向記憶部103に対して、図5の502に示すような命令(「get_related(t3)」)を送信してもよい。
図4に示す具体例において説明したように、傾向記憶部103は以下の情報(モデル)を記憶している。
「[(t1, t2 <t1.c1 = t2.c2>), (t3), (t3, t4 <t3.c3 = t4.c4>), (t5)]」.
問合せ処理部101からの要求に対し、傾向記憶部103は、例えば、以下の情報(関連情報)を、問合せ処理部101に返してもよい。即ち、傾向記憶部103は”(t3、t4)”を記憶していることから、テーブル”t3”と同時にアクセスされるテーブルとして、テーブル”t4”を表す情報を、関連情報として問合せ処理部101に返してもよい。また、傾向記憶部103は、テーブル”t3”と、”t4”との関連性を表す情報として、”t3.c3 = t4.c4”を、関連情報として問合せ処理部101に返してもよい。これは、図4のS405においてテーブル”(t3、t4)”にアクセスする問合せが実行された際、結合条件として、”t3.c3 = t4.c4”が用いられたからである。また、傾向記憶部103は、次にアクセスするテーブルの候補として、テーブル”t5”を表す情報を、関連情報として問合せ処理部101に返してもよい。これは、図4に例示するS403−S408の処理において、テーブル”t3”の後に、テーブル”t5”がアクセスされているからである。
問合せ処理部101は、傾向記憶部103から取得した情報(関連情報)を、傾向判断部104に送る。この際、問合せ処理部101は、傾向判断部104に対して、図5の503に例示するような命令(「get_suggestion(t3)」)を送信してもよい。
傾向判断部104は、問合せ処理部101から受け付けた情報を、利用者に提案する操作の候補(提案候補)として用い、特定の判定基準を用いて、提案候補から利用者に提案する情報を決定する。
傾向判断部104は、例えば、すべての提案候補を利用者に提案してもよい。
また、傾向判断部104は、例えば、特定の判定基準として問合せに関する条件を考慮して、利用者に提案する情報を決定してもよい。即ち、傾向判断部104は、例えば、利用者(この場合は「利用者2」)から受け付けた問合せにおいて参照される列が、提案する結合条件に含まれるか否かに基づいて、利用者に提案する情報を判定してもよい。具体例として、例えば、利用者から「SELECT c1 FROM t3」という内容の問合せを受け付けた場合を想定する。この場合、傾向記憶部103に記憶されている結合条件(”t3.c3=t4.c4”)に含まれる列”t3.c3”は、問合せにおいて参照される列(”t3.c1”)に含まれない。このため、”t3.c3”は利用者の興味の対象外であると考えられる。したがって、傾向判断部104は、提案候補に含まれる「テーブル”t3”に対して、テーブル”t4”を条件”t3.c3 = t4.c4”により結合する」ことを表す情報を提案から除外する。換言すると、傾向判断部104は、提案候補のうち、問合せにおいて参照される列を含む結合条件を、利用者に提案する情報とし判断してよい。なお、傾向判断部104は、上記に限定されず、他の判定基準を用いて、利用者に提案する情報を決定してもよい。
傾向判断部104は、利用者(この場合は利用者2)に対して、図5のS504に例示するように、提案する情報(提案情報)を提供してもよい。なお、傾向判断部104は、問合せ処理部101に対して提案情報を提供し、問合せ処理部101が、利用者(この場合は利用者2)に対して、提案情報を提供してもよい。
図6は、図5に例示する問合せを実行した利用者に対して、データベース装置100から提供される提案の具体例と示す説明図である。図6に示す600は、例えば、クライアント200に表示される表示画面や、ユーザインタフェースの一部として、利用者に提供されてもよい。
図6の601には、利用者が実行した問合せの内容(「SELECT * FROM t3」)が表示されている。利用者は、例えば、クライアント200に表示されたユーザインタフェースに、図6の601に例示する問合せを入力することで、データベース装置100に対する問合せを実行してもよい。
図6の602には、601における問合せの処理結果が表示される。この場合、テーブル”t3”の内容が表示されている。
図6の603には、利用者に対する提案情報が表示される。図6の603において、”t2”、”t3”、”t4”、”t5”、”t6”、”t7”、”t13”、及び”t15”はテーブルを表す。テーブル間を接続する矢印は、アクセスする順序を表す。”You are here”は、利用者が直近に実行したクエリによりアクセスされたテーブル(この場合はテーブル”t3”)を表す。また、”JOIN”は、二つのテーブルを、特定の結合条件により結合することを表す。結合条件は、図6に例示する具体例の場合、”JOIN”の近傍に文字列として表示されている。
図6に示すように、利用者がテーブル”t3”を”SELECT”した問合せに対し、データベース装置100は、次のステップとして(a)テーブル”t3”とテーブル”t4”とを、”t3.c3 = t4.c4”という条件で結合すること、及び、(b)テーブル”t5”を参照することを提案している。また、mapとして、矢印で次のステップを提案する。
なお、図6に示す具体例の場合、データベース装置100が、更にその次のステップ(例えばテーブル”t5”を参照した後に(矢印で接続された)テーブル”t6”又はテーブル”t7”の参照や、テーブル”t5”とテーブル”t4”とを”t5.c5=t4.c4”という結合条件により結合することが)を提案可能であることを示している。
上記のように構成されたデータベース装置100によれば、利用者がデータ分析をより効率的に実行することができる。その理由は以下のとおりである。即ち、データベース装置100は、あるユーザが実行した問合せを解析し、データベースに対する操作をモデル化する。より具体的には、データベース装置100は、あるセッションにおけるデータベースのアクセス順序をモデルとして記憶することができる。このため、データベース装置100は、例えば、利用者がある順序でテーブルをアクセスした際に、次にアクセスするテーブルの候補を提示することができる。これにより、利用者は、例えば、利用者自身が存在を認識していなかったデータを提案されたテーブルの中から発見することが可能であり、他のデータと、提案されたテーブルに含まれるデータとを組み合わせることで、効果的なデータ分析を行えるようになることが期待できる。
また、データベース装置100は、テーブル間の関連性(例えば、ある二つのテーブルに関する結合条件)をモデルとして記憶することができる。このため、データベース装置100は、例えば、ある利用者があるテーブルにアクセスした際、モデルとして記憶している結合条件に基づいて他のテーブルとの結合を提案することができる。これより、例えば、結合条件が不明等の理由により、利用者が活用できていなかったデータについても、データベース装置100からの提案に応じて、利用者がデータの組み合わせ方を発見し、より効果的なデータ分析を行えるようになることが期待できる。
[第1実施形態の変形例1]
本変形例におけるデータベース装置100の基本的な構成は第1実施形態と同様としてよい。本変形例においては、データベース装置100を構成する各構成要素の動作の一部が、第1実施形態から拡張されている。
具体的には、データベース装置100(問合せ処理部101)は、第1の処理において、テーブルに関連する情報を傾向記憶部103に記憶する際に、そのテーブルへアクセスした時間を記憶する。そして、第2の処理において、データベース装置100(傾向判断部104)は、特定の判定基準として、テーブルにアクセスした時間を考慮して、提案候補から利用者に提案する情報を決定する。
より具体的には、傾向判断部104は、提案候補に含まれるテーブルのうち、そのテーブルにアクセスした時間が、ある特定の時間(特定時間)より前のテーブルを利用者に提案しないよう除外する。換言すると、傾向判断部104は、提案候補に含まれるテーブルのうち、そのテーブルにアクセスした時間が、ある特定の時間(特定時間)以降のテーブルを利用者に提案してもよい。テーブルに対するアクセスの傾向は時間の経過に応じて変化する可能性あり、古い情報を提案しても有益ではない状況が考えられるからである。
上記のように構成された本変形例によるデータベース装置100は、比較的新しいアクセスの傾向に基づいて、利用者に対して、処理の候補(例えば、テーブルのアクセス、結合等)を提案することができる。
[第1実施形態の変形例2]
本変形例におけるデータベース装置100の基本的な構成は第1実施形態と同様としてよい。本変形例においては、データベース装置100を構成する各構成要素の動作の一部が、第1実施形態から拡張されている。
本変形例におけるデータベース装置100(傾向判断部104)は、第2の処理において、特定の判定基準として、テーブルにアクセスする利用者のアクセス権限を考慮して、提案候補から利用者に提案する情報を決定する。
より具体的には、傾向判断部104は、提案候補に含まれるテーブルのうち、各利用者ごとに、その利用者がアクセスする権限を有しないテーブルに関する情報を、その利用者に提案しないよう除外する。換言すると、傾向判断部104は、提案候補に含まれるテーブルのうち、各利用者ごとに、その利用者がアクセスする権限を有するテーブルに関する情報を、その利用者に提案する。テーブルごとに利用者に応じたアクセス権限が設定されている場合、アクセス権のないテーブルを提案されても、利用者がその情報を有効に活用できないからである。また、これにより、利用者が無用な混乱をまねく可能性を低減できる。テーブルに対するアクセス権限は、例えば、データベース装置100を利用者が利用する際に、クライアント200を介して提供されてもよい。
[第1実施形態の変形例3]
本変形例におけるデータベース装置100の基本的な構成は第1実施形態と同様としてよい。本変形例においては、データベース装置100を構成する各構成要素の動作の一部が、第1実施形態から拡張されている。
具体的には、データベース装置100(問合せ処理部101)は、第1の処理において、テーブルに関連する情報を傾向記憶部103に記憶する際に、その情報が記録される回数を併せて記憶する。問合せ処理部101は、例えば、テーブルごとに、そのテーブルに関連する問合せを受け付けた回数を、傾向記憶部103に記憶してもよい。より具体的には、問合せ処理部101は、例えば、第1の処理において、あるテーブルに関するアクセスの回数をカウントし、その回数を傾向記憶部103に記憶してもよい。問合せ処理部101は、例えば、問合せに含まれる結合条件ごとに、その結合条件が用いられた回数をカウントし、その回数を傾向記憶部103に記憶してもよい。
第2の処理において、データベース装置100(傾向判断部104)は、特定の判定基準として、提案候補ごとに記憶されている回数を考慮して、提案候補から利用者に提案する情報を決定してよい。より具体的には、傾向判断部104は、記憶された回数が特定値を超える提案候補を、利用者に提案する。この特定値は、例えば、利用者が設定可能としてもよい。本変形例におけるデータベース装置100は、例えば、利用者の多様な分析行動により、第2の処理において利用者に提案される情報が過剰になることを防ぐことができる。具体例として、第1の処理において、テーブル”tA”の次にテーブル”tB”にアクセスする問合せが50回、テーブル”tA”の次にテーブル”tC”にアクセスする問合せが10回記録されたことを想定する。仮に、特定値に”20”が設定されている場合、第2の処理において、テーブル”tA”に関する問合せが実行された際、データベース装置100は、次にテーブル”tB”を提案する。即ち、データベース装置100は、比較的アクセス回数が多いテーブル”tB”を利用者に提案し、比較的アクセス回数が少ないテーブル”tC”を除外することで、利用者に提案される情報が過剰になることを防ぐことができる。
<第2実施形態>
以下、本開示にかかる技術の第2実施形態について説明する。第2実施形態は、第1実施形態及びその変形例にかかるデータベース装置を、複数の離間した物理的又は仮想的な装置により構成されるデータベースシステムとして実現する実施形態である。
図7は、本実施形態におけるデータベースシステム700の機能的な構成を例示するブロック図である。図7に例示するように、データベースシステム700は、問合せ処理装置701と、データ記憶装置702と、傾向記憶装置703と、傾向判断装置704と、を備える。データベースシステム700を構成するこれらの構成要素は、適切な通信方法(例えば、無線通信、有線通信、及びそれらの組合せ)を用いて、通信可能に接続されていてよい。また、各構成要素は、例えば、後述する汎用のハードウェア装置及びかかる装置により実行されるソフトウェア・プログラムを用いて単体の装置として実現されてもよく、専用のハードウェア(例えば、演算処理、記憶処理、通信処理などを実行可能な回路要素等)を用いて実現されてもよい。
問合せ処理装置701は、上記第1実施形態及びその変形例における問合せ処理部101と同様に、データ記憶装置に記憶されるテーブルに関する問合せを受け付ける。問合せ処理装置701は、例えば、上記第1実施形態及びその変形例における問合せ処理部101と同様の機能を実現するよう構成されてもよい。
データ記憶装置702は、上記第1実施形態及びその変形例におけるデータ記憶部102と同様に、データが格納されたテーブルを記憶する。データ記憶装置702は、例えば、上記第1実施形態及びその変形例におけるデータ記憶部102と同様の機能を実現するよう構成されてもよい。
傾向記憶装置703は、上記第1実施形態及びその変形例における傾向記憶部103と同様に、テーブルへのアクセスの傾向を表すモデルを記憶する。傾向記憶装置703は、例えば、上記第1実施形態及びその変形例における傾向記憶部103と同様の機能を実現するよう構成されてもよい。
傾向判断装置704は、上記第1実施形態及びその変形例における傾向判断部104と同様に、問合せ処理装置701が受け付けた他の問合せに含まれるテーブルに応じて、傾向記憶装置703に記憶されたモデルに基づいて、他の問合せに関連して実行可能な他の操作を提案する情報を提供する。傾向判断装置704は、例えば、上記第1実施形態及びその変形例における傾向判断部104と同様の機能を実現するように構成されてもよい。このように構成された本実施形態におけるデータベースシステム700によれば、上記第1実施形態におけるデータベース装置100と同様、利用者がデータ分析をより効率的に実行することができる。
<ハードウェア及びソフトウェア・プログラム(コンピュータ・プログラム)の構成>
以下、上記説明した各実施形態を実現可能なハードウェア構成について説明する。以下の説明においては、上記各実施形態において説明した各データベース装置100を、単にデータベース装置と記載する。
上記各実施形態において説明したデータベース装置は、1つ又は複数の専用のハードウェア装置により構成されてもよい。その場合、上記図1に示した各構成要素は、一部又は全部を統合したハードウェア(処理ロジックを実装した集積回路等)として実現してもよい。例えば、データベース装置をハードウェア装置により実現する場合、データベース装置の構成要素は、それぞれの機能を提供可能な集積回路(例えば、SoC(System on a Chip)等)として実装されてもよい。この場合、例えば、データベース装置の構成要素が有するデータは、SoCに統合されたRAM(Random Access Memory)領域やフラッシュメモリ領域に記憶されてもよい。
この場合、データベース装置は、例えば、問合せ処理部101、データ記憶部102、傾向記憶部103、及び傾向判断部104の機能を実現可能な1以上の処理回路(processing circuitry)、通信回路、及び記憶回路等を用いて実現されてよい。なお、データベース装置を実現する回路構成の実装においては、様々なバリエーションが想定される。データベース装置を複数のハードウェア装置により構成する場合、それぞれのハードウェア装置の間は、適切な通信方法(有線、無線、またはそれらの組み合わせ)により通信可能に接続されていてもよい。
また、上述したデータベース装置は、図8に例示するような汎用のハードウェア装置800と、ハードウェア装置800によって実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。この場合、データベース装置は、1以上の適切な数のハードウェア装置800及びソフトウェア・プログラムにより構成されてもよい。
図8におけるプロセッサ801は、例えば、汎用のCPU(中央処理装置:Central Processing Unit)やマイクロプロセッサである。プロセッサ801は、例えば、後述する不揮発性記憶装置803に記憶された各種ソフトウェア・プログラムをメモリ802に読み出し、そのソフトウェア・プログラムに従って処理を実行してもよい。この場合、上記各実施形態におけるデータベース装置の構成要素は、例えば、プロセッサ801により実行されるソフトウェア・プログラムとして実現可能である。
この場合、上記各実施形態におけるデータベース装置は、例えば、問合せ処理部101、データ記憶部102、傾向記憶部103、及び傾向判断部104の機能を実現可能な1以上のプログラムにより実現されてよい。なお、かかるプログラムの実装においては、様々なバリエーションが想定される。
メモリ802は、プロセッサ801から参照可能な、RAM等のメモリデバイスであり、ソフトウェア・プログラムや各種データ等を記憶する。なお、メモリ802は、揮発性のメモリデバイスであってもよい。
不揮発性記憶装置803は、例えば磁気ディスクドライブや、半導体記憶装置(フラッシュメモリ等)のような、不揮発性の記憶装置である。不揮発性記憶装置803は、各種ソフトウェア・プログラムやデータ等を記憶可能である。上記データベース装置における各種テーブル及びモデルは、例えば、不揮発性記憶装置803に記憶されてもよい。
リーダライタ804は、例えば、後述する記録媒体805に対するデータの読み込みや書き込みを処理する装置である。データベース装置は、例えば、リーダライタ804を介して、記録媒体805に記録されたデータを読み込んでもよい。
記録媒体805は、例えば光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な記録媒体である。本開示において、記録媒体の種類及び記録方法(フォーマット)は、特に限定されず、適宜選択されてよい。
ネットワークインタフェース806は、通信ネットワークに接続するインタフェース装置であり、例えば有線及び無線のLAN(Local Area Network)接続用インタフェース装置等を採用してもよい。データベース装置は、例えば、ネットワークインタフェース806を介して、クライアント200と通信可能に接続されていてよい。
入出力インタフェース807は、外部装置との間の入出力を制御する装置である。外部装置は、例えば、ユーザからの入力を受け付け可能な入力機器(例えば、キーボード、マウス、タッチパネル等)であってもよい。また、外部装置は、例えばユーザに対して各種出力を提示可能な出力機器(例えば、モニタ画面、プリンタ等)であってもよい。例えば、入出力インタフェースを介して各種データを出力してよい。
本開示にかかる技術は、例えば、ハードウェア装置800に対して供給されたソフトウェア・プログラムを、プロセッサ801が実行することによって実現されてもよい。この場合、ハードウェア装置800で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト等のミドルウェアなどが、各処理の一部を実行してもよい。
上述した各実施形態において、上記各図に示した各部は、上述したハードウェアにより実行されるソフトウェア・プログラムの機能(処理)の単位である、ソフトウェアモジュールとして実現されてもよい。例えば、上記各部をソフトウェアモジュールとして実現する場合、これらのソフトウェアモジュールは、不揮発性記憶装置803に記憶されてもよい。そして、プロセッサ801が、それぞれの処理を実行する際に、これらのソフトウェアモジュールをメモリ802に読み出してもよい。また、これらのソフトウェアモジュールは、共有メモリやプロセス間通信等の適宜の方法により、相互に各種データを伝達できるように構成されてもよい。
更に、上記各ソフトウェア・プログラムは、記録媒体805に記録されてもよい。この場合、上記各ソフトウェア・プログラムは、適当な治具(ツール)を利用してハードウェア装置800内にインストールされてもよい。また、各種ソフトウェア・プログラムは、インターネット等の通信回線を介して外部からダウンロードされてもよい。ソフトウェア・プログラムを供給する方法として、各種の一般的な手順を採用することができる。
このような場合において、本開示にかかる技術は、ソフトウェア・プログラムを構成するコード、あるいはコードが記録されたところの、コンピュータ読み取り可能な記録媒体によって構成されてもよい。この場合、記録媒体は、ハードウェア装置800と独立した非一時的な記録媒体であってもよく、LANやインターネットなどにより伝送されたソフトウェア・プログラムをダウンロードして記憶又は一時記憶した記録媒体であってもよい。
また、上述したデータベース装置、あるいは、当該データベース装置の構成要素は、図8に例示するハードウェア装置800を仮想化した仮想環境と、その仮想環境において実行されるソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。この場合、図8に例示するハードウェア装置800の構成要素は、仮想環境における仮想デバイスとして提供される。
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができ、上記各実施形態の変形例や、その組合せも、本発明の技術的範囲に含まれる。
100 データベース装置
101 問合せ処理部
102 データ記憶部
103 傾向記憶部
104 傾向判断部
700 データベースシステム
701 問合せ処理装置
702 データ記憶装置
703 傾向記憶装置
704 傾向判断装置

Claims (10)

  1. データを記憶するテーブルを有するデータ記憶手段に関する問合せを受け付ける問合せ処理手段と、
    前記問合せ処理手段が受け付けた問合せに関連する前記テーブルへのアクセスの傾向を表すモデルを記憶する傾向記憶手段と、
    前記問合せ処理手段が受け付けた他の問合せに関連する前記テーブルと、前記傾向記憶手段に記憶された前記モデルとに基づいて、当該他の問合せに関連して実行可能な操作を提案する傾向判断手段と、を備える
    データベース装置。
  2. 前記問合せ処理手段は、ある特定のタイミングまでに受け付けた1以上の問合せによる前記テーブルのアクセス順序を、前記モデルとして前記傾向記憶手段に記憶し、
    前記傾向判断手段は、前記モデルとして記憶された前記テーブルのアクセス順序に基づいて、前記問合せ処理手段が受け付けた他の問合せに関連する前記テーブルへのアクセスの後にアクセス可能な1以上の前記テーブルへのアクセスを含む操作を、提案する操作の候補である提案候補として選択し、前記提案候補の中から1以上の操作を提案する
    請求項1に記載のデータベース装置。
  3. 前記問合せ処理手段は、受け付けた問合せに含まれる複数の前記テーブルを関連付ける結合条件を、前記モデルとして前記傾向記憶手段に記憶し、
    前記傾向判断手段は、前記モデルとして記憶された1以上の前記結合条件に基づいて、前記問合せ処理手段が受け付けた他の問合せに含まれる前記テーブルと、他の前記テーブルとを関連付ける操作を、提案する操作の候補である提案候補として選択し、前記提案候補の中から1以上の操作を提案する
    請求項1又は請求項2に記載のデータベース装置。
  4. 前記傾向判断手段は、前記問合せ処理手段が他の問合せを受け付けた際、前記問合せ処理手段が受け付けた他の問合せに含まれる前記テーブルと、他の前記テーブルとを関連付ける前記結合条件のうち、当該他の問合せにおいて参照される前記テーブルの列を含む前記結合条件により前記テーブルを関連付ける操作を提案する
    請求項3に記載のデータベース装置。
  5. 前記問合せ処理手段は、問合せを受け付けた際、その問合せを受け付けた時間を前記傾向記憶手段に記憶し、
    前記傾向判断手段は、前記問合せ処理手段が他の問合せを受け付けた際、前記提案候補のうち、ある特定時間以降に受け付けた問合せに関連して記憶された前記モデルに基づいて選択された前記提案候補から、1以上の操作を提案する
    請求項2から請求項4のいずれかに記載のデータベース装置。
  6. 前記傾向判断手段は、前記問合せ処理手段が受け付けた他の問合せを実行した利用者の、前記テーブルに対するアクセス権に応じて、その利用者がアクセス可能な前記テーブルに関連する前記提案候補から1以上の操作を提案する
    請求項2から請求項5のいずれかに記載のデータベース装置。
  7. 前記問合せ処理手段は、問合せを受け付けた際、
    その問合せに含まれる前記テーブルについて、当該テーブルに関する問合せが実行された回数と、
    複数の前記テーブルの間を関連付ける前記結合条件がその問合せに含まれる場合、当該結合条件を含む問合せが実行された回数と、の少なくとも一方を前記傾向記憶手段に記憶し、
    前記傾向判断手段は、前記問合せ処理手段が他の問合せを受け付けた際、前記提案候補のうち、ある特定回数以上問合せが実行された前記テーブルと、前記結合条件との少なくとも一方を含む操作を提案する
    請求項3に記載のデータベース装置。
  8. データを記憶するテーブルを有するデータ記憶装置に関する問合せを受け付ける問合せ処理装置と、
    前記問合せ処理装置が受け付けた問合せに関連する前記テーブルへのアクセスの傾向を表すモデルを記憶する傾向記憶装置と、
    前記問合せ処理装置が受け付けた他の問合せに関連する前記テーブルと、前記傾向記憶装置に記憶された前記モデルとに基づいて、当該他の問合せに関連して実行可能な操作を提案する傾向判断装置と、を備え、
    前記問合せ処理装置と、前記傾向記憶装置と、前記傾向判断装置とが通信ネットワークを介して相互に通信可能に接続されている
    データベースシステム。
  9. データを記憶するテーブルを有するデータベースに関する問合せを受け付け、
    受け付けた問合せに関連する前記テーブルへのアクセスの傾向を表すモデルを記憶し、
    他の問合せに関連する前記テーブルと、記憶された前記モデルとに基づいて、当該他の問合せに関連して実行可能な操作を提案する
    データ管理方法。
  10. データを記憶するテーブルを有するデータベースに関する問合せを受け付ける問合せ処理と、
    受け付けた問合せに関連する前記テーブルへのアクセスの傾向を表すモデルを記憶する記憶処理と、
    他の問合せに関連する前記テーブルと、記憶された前記モデルとに基づいて、当該他の問合せに関連して実行可能な操作を提案する傾向判断処理とを、データベース装置として機能するコンピュータに実行させる
    コンピュータ・プログラム。
JP2018026175A 2018-02-16 2018-02-16 データベース装置、データ管理方法、及びコンピュータ・プログラム Active JP7119411B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018026175A JP7119411B2 (ja) 2018-02-16 2018-02-16 データベース装置、データ管理方法、及びコンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018026175A JP7119411B2 (ja) 2018-02-16 2018-02-16 データベース装置、データ管理方法、及びコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2019144679A true JP2019144679A (ja) 2019-08-29
JP7119411B2 JP7119411B2 (ja) 2022-08-17

Family

ID=67772353

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018026175A Active JP7119411B2 (ja) 2018-02-16 2018-02-16 データベース装置、データ管理方法、及びコンピュータ・プログラム

Country Status (1)

Country Link
JP (1) JP7119411B2 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090313278A1 (en) * 2005-06-14 2009-12-17 Enterprise Elements, Inc. Database Data Dictionary
JP2012137870A (ja) * 2010-12-24 2012-07-19 Internatl Business Mach Corp <Ibm> アクセス予測に基づいてテーブルのミラーリングを制御する管理システム、プログラムおよび方法
JP2013122701A (ja) * 2011-12-12 2013-06-20 Canon Inc 情報検索装置及び情報検索方法
US20170124487A1 (en) * 2015-03-20 2017-05-04 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing machine learning model training and deployment with a rollback mechanism
WO2017073714A1 (ja) * 2015-10-29 2017-05-04 株式会社ディビイ データベース処理プログラム、データベース処理方法及びデータベース処理装置
US20170139927A1 (en) * 2015-11-15 2017-05-18 Microsoft Technology Licensing, Llc Providing data presentation functionality associated with collaboration database
US20170308595A1 (en) * 2016-04-26 2017-10-26 Informatica Llc Learning from historical logs and recommending database operations on a data-asset in an etl tool

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090313278A1 (en) * 2005-06-14 2009-12-17 Enterprise Elements, Inc. Database Data Dictionary
JP2012137870A (ja) * 2010-12-24 2012-07-19 Internatl Business Mach Corp <Ibm> アクセス予測に基づいてテーブルのミラーリングを制御する管理システム、プログラムおよび方法
JP2013122701A (ja) * 2011-12-12 2013-06-20 Canon Inc 情報検索装置及び情報検索方法
US20170124487A1 (en) * 2015-03-20 2017-05-04 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing machine learning model training and deployment with a rollback mechanism
WO2017073714A1 (ja) * 2015-10-29 2017-05-04 株式会社ディビイ データベース処理プログラム、データベース処理方法及びデータベース処理装置
US20170139927A1 (en) * 2015-11-15 2017-05-18 Microsoft Technology Licensing, Llc Providing data presentation functionality associated with collaboration database
US20170308595A1 (en) * 2016-04-26 2017-10-26 Informatica Llc Learning from historical logs and recommending database operations on a data-asset in an etl tool

Also Published As

Publication number Publication date
JP7119411B2 (ja) 2022-08-17

Similar Documents

Publication Publication Date Title
US9471647B2 (en) Node-level sub-queries in distributed databases
WO2014167647A1 (ja) データ管理装置、データ管理方法及び非一時的な記録媒体
US20070106671A1 (en) Computer-readable recording medium storing data collection program and data collection apparatus
JP5844895B2 (ja) データの分散検索システム、データの分散検索方法及び管理計算機
US9405821B1 (en) Systems and methods for data mining automation
US20180329873A1 (en) Automated data extraction system based on historical or related data
US20170270161A1 (en) Method for query execution planning
CN108959454B (zh) 一种提示子句指定方法、装置、设备及存储介质
KR102277240B1 (ko) 키워드 관계 구조를 이용한 동의어 추출 방법 및 시스템
US20230401209A1 (en) Columnar Cache Query Using Hybrid Query Execution Plan
JP2008243033A (ja) 検索システム、検索方法、プログラムおよび記憶媒体
JP7119411B2 (ja) データベース装置、データ管理方法、及びコンピュータ・プログラム
US20180150519A1 (en) Extreme Value Estimation for Query Optimization in Analytical Databases
KR20200097949A (ko) 키워드 관계 구조를 이용한 동의어 추출 방법 및 시스템
US20220019597A1 (en) Data management device and data management method
JP2005267501A (ja) ストレージ管理方法及びシステム
JP2019101829A (ja) ソフトウェア部品管理システム、計算機および方法
JP3565117B2 (ja) 複数異種情報源アクセス方法及びクライアント装置及び複数異種情報源アクセスプログラムを格納した記憶媒体
CN112287204A (zh) 一种搜索方法、装置、设备和存储介质
JP5108660B2 (ja) 情報収集方法、装置及びプログラム
JP5950369B2 (ja) 入力支援システム、入力支援方法および入力支援プログラム
JP7101631B2 (ja) 識別id付与システム及び識別id付与方法
JP2014092836A (ja) 図面管理サーバ及びこれを用いた図面管理システム
US20230259536A1 (en) Data processing device, data processing method, and data processing program
KR102240454B1 (ko) 키워드 관계 구조 기반의 질의 분석을 이용한 복합키워드 동의어 추출 방법 및 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210115

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20211020

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211119

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: 20220131

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: 20220705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220718

R151 Written notification of patent or utility model registration

Ref document number: 7119411

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151