JP5873935B2 - データベースの管理方法、管理計算機及び記憶媒体 - Google Patents

データベースの管理方法、管理計算機及び記憶媒体 Download PDF

Info

Publication number
JP5873935B2
JP5873935B2 JP2014556246A JP2014556246A JP5873935B2 JP 5873935 B2 JP5873935 B2 JP 5873935B2 JP 2014556246 A JP2014556246 A JP 2014556246A JP 2014556246 A JP2014556246 A JP 2014556246A JP 5873935 B2 JP5873935 B2 JP 5873935B2
Authority
JP
Japan
Prior art keywords
database
graph
query
node
relational database
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.)
Active
Application number
JP2014556246A
Other languages
English (en)
Other versions
JPWO2014109009A1 (ja
Inventor
一智 牛嶋
一智 牛嶋
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of JP5873935B2 publication Critical patent/JP5873935B2/ja
Publication of JPWO2014109009A1 publication Critical patent/JPWO2014109009A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、グラフ型データベースに格納されたデータを、関係型データベースのインターフェースを用いて効率的にアクセスする技術に関する。
グラフ型データベースは、ソーシャルネットワークにおける人間関係、あるいは物流網における配送状況などの複雑な関係を表現するためのデータを、そのままの形で格納する事が出来、関係型データベース(Relational Data Base)のように格納前にスキーマ設計を必要としない柔軟性が大きな利点である。
関係型データベースでは、SQL(Structured Query Language)と呼ばれる問合せ要求を用いてデータベースに格納されたデータに対する複雑な検索及び分析処理を行う事ができる(例えば、非特許文献1)。グラフ型データベースにおいても同等の処理機能を有するSPARQL(SPARQL Protocol and RDF Query Language)と呼ばれる問合せ要求を用いて複雑な処理を行う事が出来る(例えば、非特許文献2)。
しかし、既存の業務システムの構築においては、関係型データベースを用いることがこれまで一般的であり、数多くの業務システムのデータが関係型データベースに格納されて利用されている。そのためグラフ型データベースに格納されたデータと関係型データベースに格納されたデータを組合せて検索及び分析処理を行うことが出来ないという問題があった。
「SQLスーパーテキスト」、山平耕作、土田正士、小寺孝著、技術評論社、2004年03月 発行 「セマンティックWebプログラミング」、Toby Segaran, Colin Evans, Jamie Taylor著、オライリージャパン/オーム社、2010年06月 発行
上記の問題に対して、データベースにアクセスを行う上位プログラム側で、関係型データベース(RDB)とグラフ型データベースの両者に格納されたデータの組合せを行う。あるいは、関係型データベース側にグラフ型データベースに格納されたデータを格納するためのテーブルを別途用意し、SPARQLを用いて用意したテーブルに合せてグラフ型データベースに格納されたデータを取り出し、関係型データベースに格納し直すことが考えられる。
このとき、関係型データベースとグラフ型データベースの組合せ方法を変更する毎に上位プログラムの再開発が必要となる。あるいは、グラフ型データベースに格納されたデータを抽出するためのSPAQL文を用意すると共にデータの移動に時間とコストが必要となることが問題であった。
そこで本発明は、上記問題点に鑑みてなされたもので、グラフ型データベースに格納されたデータと関係型データベースに格納されたデータとを組合せて効率的に検索及び分析処理を行うことを目的とする。
本発明は、プロセッサとメモリを備えた計算機で、グラフ型データベースと関係型データベースを管理するデータベースの管理方法であって、前記計算機が、前記グラフ型データベースのノードの種別毎に参照頻度を取得する第1のステップと、前記計算機が、前記参照頻度が閾値以上のノードの種別を抽出する第2のステップと、前記計算機が、前記抽出したノードを表構造に変換し、中間表として保持する第3のステップと、前記計算機が、前記関係型データベースの問合せを受け付けて、前記中間表を参照する第4のステップと、を含む。
したがって、本発明によれば、グラフ型データベースに格納されたデータと関係型データベースに格納されたデータの対応関係を定義することで、両者のデータを組合せた検索及び分析処理を、関係型データベースのインターフェースを用いて実行することが可能となる。また、関係型データベースとグラフ型データベースのそれぞれのデータベースに格納されたデータに対する参照統計情報を参照して、中間表データを生成することで、関係型とグラフ型の両者のデータベースの効率的な検索が可能になる。
本発明の実施例を示し、計算機システムの一例を示すブロック図である。 本発明の実施例を示し、計算機システムで行われる処理の概要を示すブロック図である。 本発明の実施例を示し、計算機システムで行われる処理の概要を示すフローチャートである。 本発明の実施例を示し、検索対象となるグラフ型データベースの一例(組織グラフ)を示す図である。 本発明の実施例を示し、検索対象となるグラフ型データベースの一例(課目グラフ)を示す図である。 本発明の実施例を示し、検索対象となる関係型データベースの一例を示した説明図である。 本発明の実施例を示し、グラフ型データベースと関係型データベースの対応関係を定義する処理の一例を示すフローチャートである。 本発明の実施例を示し、検索対象となるグラフ型データベースと関数型データベースのノード種別及びカラム種別の一覧を抽出したグラフ表現の一例である。 本発明の実施例を示し、グラフ型データベース(組織グラフ)と関係型データベースの対応関係を定義する画面の一例を示す説明図である。 本発明の実施例を示し、グラフ型データベース(課目グラフ)と関係型データベースの対応関係を定義する画面の一例を示す説明図である。 本発明の実施例を示し、関係型データベースを定義する画面の一例を示す説明図である。 本発明の実施例を示し、グラフ型データベースと関係型データベースを対応付ける画面の一例を示す説明図である。 本発明の実施例を示し、フロントエンド計算機で行われる参照統計情報の取得及び中間表の生成処理の一例を示すフローチャートである。 本発明の実施例を示し、フロントエンド計算機で行われる問合せの受付と、参照統計情報を設定する処理の一例を示すフローチャートである。 本発明の実施例を示し、グラフ型データベースに対する問合せの一例を示す説明図である。 本発明の実施例を示し、グラフ型データベースに対する問合せの一例を示す説明図である。 本発明の実施例を示し、関係型データベースに対する問合せの一例を示す説明図である。 本発明の実施例を示し、グラフ表現に参照統計情報を加味した図である。 本発明の実施例を示し、ノードの参照統計情報を示すテーブルである。 本発明の実施例を示し、エッジの参照統計情報を示すテーブルである。 本発明の実施例を示し、高頻度参照範囲を決定する処理の一例を示すフローチャートである。 本発明の実施例を示し、中間表を生成する処理の一例を示すフローチャートである。 本発明の実施例を示し、全体グラフを示す説明図である。 本発明の実施例を示し、高頻度参照範囲のエッジを含むグラフを示す説明図である。 本発明の実施例を示し、高頻度参照範囲のノードとして特定されたグラフである。 本発明の実施例を示し、同じく、高頻度参照範囲のノードとして特定されたグラフである。 本発明の実施例を示し、同じく、高頻度参照範囲のノードとして特定されたグラフである。 本発明の実施例を示し、同じく、高頻度参照範囲のノードとして特定されたグラフである。 本発明の実施例を示し、同じく、高頻度参照範囲のノードとして特定されたグラフである。 本発明の実施例を示し、中間表の一例を示す図である。 本発明の実施例を示し、中間表生成後の問合せの受付と実行に関する処理の一例を示すフローチャートである。 本発明の実施例を示し、中間表生成後の問合せの変換例を示した図である。
以下、本発明の一実施形態を添付図面に基づいて説明する。
図1は、本発明の実施例を示し、複数のデータベースを管理する計算機システムの一例を示すブロック図である。
図1において、フロントエンド計算機100は、ネットワーク400を介してグラフ型データベースを管理するバックエンド計算機200と、関係型データベース(Relational database)を管理するバックエンド計算機300に接続される。フロントエンド計算機100は、ネットワーク400を介して図示しない計算機から問合せを受け付けると、関係型データベースへの問合せと、グラフ型データベースへの問合せを自動的に振り分けて、バックエンド計算機200、300に問合せを発行する。そして、フロントエンド計算機100は、バックエンド計算機200、300からの問合せ結果を、図示しない問合せ元の計算機に応答する。フロントエンド計算機100は、グラフ型データベース220と関係型データベース320を管理する管理計算機として機能する。
バックエンド計算機(#1)200は、プロセッサ201と、メモリ202と、記憶デバイス203と、ネットワークアダプタ204を備える。メモリ202には、グラフ型データベース処理部210がロードされプロセッサ201によって実行される。
記憶デバイス203には、グラフ型データベース220が格納される。グラフ型データベース220としては、ログデータ、動画や映像、文書などのメディアデータ、センサからのセンシングデータなどの非構造化データを含む。
グラフ型データベース処理部210は、フロントエンド計算機100から問合せを受け付けるグラフ型問合せ要求受付部211と、受け付けた問合せ要求を実行し、問合せ結果をフロントエンド計算機100へ出力するグラフ型問合せ処理実行部212を備える。グラフ型データベースへの問合せは、例えば、SPARQL(SPARQL Protocol and RDF Query Language)を採用することができる。
ここで、プロセッサ201は、各機能部のプログラムに従って動作することによって、所定の機能を実現する機能部として動作する。例えば、プロセッサ201は、グラフ型データベース処理プログラムに従って動作することで、グラフ型データベース処理部210として機能する。他のプログラムについても同様である。さらに、プロセッサ201は、各プログラムが実行する複数の処理のそれぞれを実現する機能部としても動作する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
グラフ型データベース処理部210の各機能を実現するプログラム、テーブル等の情報は、記憶デバイス203や不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
バックエンド計算機(#2)300は、プロセッサ301と、メモリ302と、記憶デバイス303と、ネットワークアダプタ304を備える。メモリ302には、関係型データベース処理部310がロードされプロセッサ301によって実行される。
記憶デバイス303には、関係型データベース320が格納される。関係型データベース320としては、表などの構造化データを含む。
関係型データベース処理部310は、フロントエンド計算機100から問合せを受け付ける関係型問合せ要求受付部311と、受け付けた問合せを実行し、問合せ結果をフロントエンド計算機100へ出力する関係型問合せ処理実行部312を備える。関係型データベースへの問合せは、例えば、SQL(Structured Query Language)を採用することができる。
ここで、プロセッサ301は、各機能部のプログラムに従って動作することによって、所定の機能を実現する機能部として動作する。例えば、プロセッサ301は、関係型データベース処理プログラムに従って動作することで、関係型データベース処理部310として機能する。他のプログラムについても同様である。さらに、プロセッサ301は、各プログラムが実行する複数の処理のそれぞれを実現する機能部としても動作する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
関係型データベース処理部310の各機能を実現するプログラム、テーブル等の情報は、記憶デバイス303や不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
フロントエンド計算機100は、プロセッサ101と、メモリ102と、記憶デバイス103と、ネットワークアダプタ104を備える。メモリ102には、問合せ要求受付部110と問合せ処理実行部120がロードされプロセッサ101によって実行される。
記憶デバイス103には、後述するように、アクセス状況を格納する参照統計情報130と、グラフ型データベース処理部210の一部を抽出した中間表(中間データ)140が格納される。なお、中間表140は、メモリ102と記憶デバイス103の両者に格納されても良い。
問合せ要求受付部110は、ネットワーク400を介して図示しない計算機や端末から問合せを受け付ける問合せ受付部111と、構造化データの定義を管理するスキーマ情報管理部112と、グラフ型データベース220のうちアクセス頻度の高いデータの範囲を保持する高頻度参照範囲決定部113と、関係型データベース320の問合せ(例えば、SQL)をグラフ型データベース220の問合せ(例えば、SPAQL等)へ変換する問合せ要求変換部114と、を含む。
問合せ要求受付部110は、関係型データベース320への問合せ(SQL等)またはグラフ型データベース220への問合せ(SPAQL等)を受信して、問合せ処理実行部120へ問合せの実行を指令する。また、問合せ要求受付部110は、受信した問合せがSQLで記述され、グラフ型データベース220への問合せであれば、問合せ要求変換部114でSPARQL等のグラフ型データベース220の問合せに変換して、問合せ処理実行部120に問合せの実行を指令する。
問合せ処理実行部120は、問合せ要求受付部110からの指令に基づいて、バックエンド計算機200のグラフ型データベース220とバックエンド計算機300の関係型データベース320または中間表140への問合せを実行する。
問合せ処理実行部120は、問合せ処理を行ったデータの統計情報を参照統計情報130として生成し、問合せに関する値を更新する統計情報管理部121と、問合せを受け付けたデータの所在を管理する格納データ管理部122と、を含む。
問合せ処理実行部120は、問合せ要求受付部110からの問合せに応じて、後述するように、中間表140またはバックエンド計算機200、300に問合せを実行する。格納データ管理部122は、受け付けた問合せの対象となるデータが、関係型データベース320、グラフ型データベース220あるいは中間表140の何れに格納されているかを管理する。
ここで、プロセッサ101は、各機能部のプログラムに従って動作することによって、所定の機能を実現する機能部として動作する。例えば、プロセッサ101は、問合せ要求受付プログラムに従って動作することで問合せ要求受付部110として機能する。他のプログラムについても同様である。さらに、プロセッサ101は、各プログラムが実行する複数の処理のそれぞれを実現する機能部としても動作する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
問合せ要求受付部110及び問合せ処理実行部120の各機能を実現するプログラム、テーブル等の情報は、記憶デバイス103や不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
参照統計情報130は、問合せ処理実行部120がバックエンド計算機200、300へ問合せを実施する度に、アクセス対象と頻度を記録する。そして、問合せ要求受付部110の高頻度参照範囲決定部113は、参照統計情報130を読み込んで、グラフ型データベース220のうちアクセス頻度の高い範囲(高頻度参照範囲)を特定し、高頻度参照範囲のノードを抽出する。そして、グラフ型データベース220と関係型データベース320の対応関係を取得してから、抽出したノードを関係型データベース320と結合して表構造に変換して中間表140を生成する。この中間表140は、表構造で構成されており、関係型データベースの問合せでアクセス可能となっている。
中間表140の生成は、例えば、高頻度参照範囲決定部113で行う。高頻度参照範囲決定部113は、グラフ型データベース220のうちアクセス頻度の高い範囲を特定する。そして、高頻度参照範囲決定部113は、アクセス頻度が高いと特定された範囲のグラフ型データベース220のノード(またはノードの種別)を抽出し、この範囲に対応する関係型データベース320を抽出し、これらを結合したデータを表構造に変換して中間表140として生成する。なお、参照頻度は、グラフ型データベース220のノードの種別毎に参照した回数(または参照頻度)と、グラフ型データベース220にアクセスした回数の総和の比から演算することができる。また、中間表140は、記憶デバイス103に加えてメモリ102の一部にも格納することができる。
ここで、高頻度参照範囲決定部113は、検索対象となる関係型データベース320とグラフ型データベース220の対応関係を取得して、表構造のスキーマ(RDBスキーマ1)を生成し、スキーマ情報管理部112に格納する。なお、表構造の関係型データベース320に対するスキーマ(RDBスキーマ2)は、スキーマ情報管理部112へ格納される。関係型データベース320に対するスキーマ(RDBスキーマ2)は、関係型データベース320を定義する際や、更新する際に設定される。
図2は、フロントエンド計算機100で行われる処理の概要を示すブロック図である。フロントエンド計算機100は、ネットワーク400から表構造またはグラフ構造の問合せを受け付けて、参照されたデータについて参照統計情報130を生成する。
そして、フロントエンド計算機100は、参照統計情報130に基づいてグラフ型データベース220の一部と関係型データベース320の一部を結合して表構造に変換した中間表140を生成する。
中間表140のアクセスについては、表構造であるので関係型データベース320の問合せを利用して、グラフ型データベース220の要素にアクセスすることが可能となる。また、中間表140は、グラフ型データベース220と関係型データベース320を結合した表であるので、グラフ型データベース220と関係型データベース320の参照を並列的に行うことも実現できる。
さらに、中間表140に存在しないデータについては、グラフ型データベース220と関係型データベース320への問合せに振り分けて、バックエンド計算機200のグラフ型データベース220と、バックエンド計算機300の関係型データベース320への問合せを並列的に実行する。
ここで、グラフ型データベース220への問合せについては、問合せ要求変換部114が、表構造の問合せをグラフ型データベース220の問合せに変換してバックエンド計算機200に問い合わせることができる。例えば、問合せ要求変換部114は、関係型データベース(RDBスキーマ1)に対する問合せ(例えば、SQL)を、SPARQL等のグラフ型データベース220への問合せに変換して、バックエンド計算機200に問合せを実行する。
このように、フロントエンド計算機100では、参照頻度の高いグラフ型データベース220の一部を、関係型データベース320と対応付けて中間表140として抽出しておく。そして、ネットワーク400から問合せを受け付けると、スキーマ1で中間表140をアクセスし、問合せたデータが中間表140に存在しない場合のみ、問合せ要求変換部114でSQLをSPARQL等に変換しグラフ型データベース220にアクセスし、また、SQLによって関係型データベース320にも並列的にアクセスすることができる。
したがって、中間表140に問合せたデータがある場合には、バックエンド計算機200、300へのアクセスが発生しないため、高速に処理を実行することができる。
なお、図2において、ネットワーク400からの問合せからRDBスキーマ2を用いて関係型データベース320へアクセスを行っても良い。また、ネットワーク400からの問合せからRDBスキーマ1を用いてグラフ型データベース220へアクセスを行っても良い。また、ネットワーク400からグラフ型データベース220の問合せを受け付けて、グラフ型データベース220にアクセスしてもよい。
次に、バックエンド計算機200、300のデータベースについて説明する。図4は、グラフ型データベース220のうち、大学の組織(Organization)のグラフを示す。図5は、グラフ型データベース220のうち、大学の課目(Syllabus)のグラフを示す。図6は、関係型データベース320のうち、生徒の評価(Evaluation)テーブル320Aを示す。
図4の大学の組織グラフは、国(Country)N1をルートとして、場所(Location)N2、大学(University)N3、学部(Faculty)N4、教授(Professor)N5のノードまでを辿るグラフを構成している。
図5の課目グラフは、教授(Professor)N6をルートとして、講義(Lecture)N7、教室(Classroom)N8、生徒(Student)N9のノードまでを辿るグラフを構成している。
図6の評価テーブル320Aは、生徒(Student)3201と、講義(Lecture)3202と、成績(Grade)3203から1つのレコードが構成される。なお、図6において、N10、N11、N12の符号は、生徒(Student)3201と、講義(Lecture)3202と、成績(Grade)3203のフィールドをグラフ構造で表すときのノード名を示す。
図3は、フロントエンド計算機100で行われる処理の概要を示すフローチャートである。この処理は、フロントエンド計算機100の起動後から開始されて、問合せを受け付けて参照統計情報130を蓄積した後に中間表140を作成し、中間表140を利用して問合せを受け付けるまでの処理を示す。
まず、ステップS1において、フロントエンド計算機100は、検索対象となるグラフ型データベース220と、関係型データベース320の対応関係を定義する。例えば、フロントエンド計算機100のスキーマ情報管理部112は、グラフ型データベース220のノードに格納されている値と、関係型データベース320のフィールドに格納されている値を関連付けるキーを抽出してRDBスキーマ1を定義する。
上記図3〜図5の例では、図4のグラフの講義(Lecture)と、図5の評価テーブル320Aの講義(Lecture)3202のフィールドを対応付け、図4のグラフの生徒(student)と、図5の評価テーブル320Aの生徒(student)3201のフィールドを対応付ける。
フロントエンド計算機100のスキーマ情報管理部112は、この対応関係をRDBスキーマ1として保持する。
このように、一例としては、ノードの種別と、フィールドの名称が一致するグラフ型データベース220のノードと、関係型データベース320のフィールドを対応関係にあると定義することができる。この他、ノードの種別と、フィールドの名称に共通する単語が含まれる場合に対応関係にあると定義するようにしてもよい。
次に、ステップS2において、フロントエンド計算機100では、バックエンド計算機200、300に格納されているデータベースに対する問合せを受け付けて、データベースへのアクセスを実行する。
フロントエンド計算機100は、ネットワーク400に接続された計算機(クライアント等、図示省略)から問合せを受け付けると、バックエンド計算機200または300にアクセスして問合せを実行する。このとき、フロントエンド計算機100の統計情報管理部121は、グラフ型データベース220のノードの問合せの履歴を参照統計情報130として蓄積する。
そして、フロントエンド計算機100は、所定のタイミングでアクセス頻度の高いグラフ型データベース220のノードを抽出して中間表140を生成する。中間表140の生成については後述する。なお、所定のタイミングは、例えば、フロントエンド計算機100が中間表140を作成するコマンドを受信したときや、所定の周期となったとき等である。
次に、ステップS3において、フロントエンド計算機100では、図2で示したように、グラフ型データベース220へのアクセスを含む問合せを受け付けると、RDBスキーマ1を介して中間表140にアクセスする。そして、フロントエンド計算機100は、中間表140に問合せ結果があれば、中間表140から問合せ結果をネットワーク400の計算機(図示省略)へ応答する。一方、中間表140に問合せ結果がなければ、バックエンド計算機200及び300に問合せを実行し、グラフ型データベース220と関係型データベース320にアクセスする。
図7は、図3のステップS1で行われるサブルーチンを示すフローチャートである。この処理は、フロントエンド計算機100のスキーマ情報管理部112で行うことができる。
まず、ステップS11で、検索対象となるバックエンド計算機200のグラフ型データベース220から、グラフを構成するノードの種別の一覧を取得する。
次に、ステップS12で、検索対象となるバックエンド計算機300の関係型データベース320から、カラムの種別(フィールドの名称)の一覧を取得する。
そして、ステップS13では、上述のように、ノードの種別と、カラムの種別(フィールドの名称)が一致するグラフ型データベース220のノードと、関係型データベース320のフィールドを対応関係にあると定義する。
上記サブルーチンにより、グラフ型データベース220のノードと、関係型データベース320のフィールド(カラム)の対応関係が抽出され、RDBスキーマ1を構成する要素が生成される。
図8は、検索対象となるグラフ型データベースと関数型データベースのノード種別及びカラム種別の全体の関連をグラフで表現した例を示す説明図である。
図中Type:CountryN1〜ProfessorN5は、図4に示した大学の組織のグラフを構成するノードの種別を示す。また、図中Type:ProfessorN6〜StudentN9は、図5に示した大学の課目のグラフを構成するノードの種別を示す。そして、図中Type:LetureN10〜GradeN12は、図6に示した生徒の評価テーブル320Aのカラムの種別を、StudentN10、LectureN11、GradeN12のノードとしてグラフ型で示したものである。
そして、図8において、C1、C2は、後述する図9Dの設定画面220Dで設定される結合条件の一例を示す。ここで、結合条件C1は、図4のグラフのエンドポイント#1のノードとなる種別=ProfessorN5と、図5のグラフのルート(エンドポイント#2)ノードとなる種別=ProfessorN6の値が等しければ、図4のグラフと図5のグラフを結合する。
一方、結合条件C2は、図5のグラフのエンドポイント#1のノードとなる種別=ProfessorN5の値が、図6のノードのN10と一致し、かつ、図5のグラフの図中Type:StudentN9の値が、図6のノードN12の値と一致する場合、図5のグラフと図6のグラフ表現を結合することを示している。
以上のように、本発明では、関係型データベース320のカラムの種別を、一時的にグラフ表現にすることで、グラフ型データベース220と関係型データベース320の対応関係を抽出することができる。
図9A〜図9Dは、グラフ型データベース220と関係型データベース320の対応関係を定義する画面の一例を示す説明図である。グラフ型データベース220と関係型データベース320の対応関係を定義する画面は、フロントエンド計算機100に接続された図示しない端末の表示装置に出力される。管理者などは、これらの画面から対応関係を設定するノードを図示しない入力装置から入力する。
図9Aは、グラフ型データベース220のうち大学の組織グラフのノードを設定する画面である。この設定画面220Aは、例えば、表構造で構成され、ノード番号を格納する#2201と、ノードの種別を格納するType2202と、抽出元のデータベース名を格納するSource2203と、射影の有無を設定するProjection2204と、他のデータベースと結合するか否かを設定するConnection2205から一つのエントリが構成される。
設定画面220Aを使用する管理者等は、入力装置を操作して射影が必要な場合にはProjection2204に「+」を入力する。なお、射影は利用するノードまたはカラムに対して「+」を設定すればよい。また、他のデータベースと結合するノードでは、Connection2205に「+」を設定する。図示の例では、ノード番号2201=N5が他のデータベースと結合するように「+」が設定される。
図9Bは、グラフ型データベース220のうち課目グラフのノードを設定する画面である。この設定画面220Bも上記図9Aと同様に、表構造で構成される。設定画面220Bも、図9Aと同じく、ノード番号を格納する#2201と、ノードの種別を格納するType2202と、抽出元のデータベース名を格納するSource2203と、射影の有無を設定するProjection2204と、他のデータベースと結合するか否かを設定するConnection2205から一つのエントリが構成される。
設定画面220Bを使用する管理者等は、入力装置を操作して射影が有る場合にはProjection2204に「+」を入力する。また、他のデータベースと結合するノードでは、Connection2205に「+」を設定する。図示の例では、ノード番号2201=N7,N9が他のデータベースと結合するように「+」が設定される。
図9Cは、関係型データベース320のカラムを設定する画面である。この設定画面220Cも上記図9Aと同様に、表構造で構成される。設定画面220Cは、カラムに対応するノード番号を格納する#2201Cと、カラムの種別を格納するType2202Cと、抽出元のデータベース名を格納するSource2203Cと、射影の有無を設定するProjection2204Cと、他のデータベースと結合するか否かを設定するConnection2205Cから一つのエントリが構成される。
設定画面220Cを使用する管理者等は、入力装置を操作して射影が有る場合にはProjection2204Cに「+」を入力する。また、他のデータベースと結合するノードでは、Connection2205Cに「+」を設定する。図示の例では、ノード番号2201=N10、N11が他のデータベースと結合するように「+」が設定される。
図9Dは、図9A〜図9CのConnection2205、2205Cに「+」を設定したノードの結合条件を設定する設定画面220Dの説明図である。
この設定画面220Cは、例えば、表構造で構成される。設定画面220Dは、結合条件の番号を格納する#2201Dと、結合するノードの一方を格納するEndpoint1(2202D)と、結合するノードの他方を格納するEndpoint2(2203D)と、結合条件を格納するJoin Connection2204Dから一つのエントリが構成される。
図中、結合条件番号=C1では、ノードN5の値と、ノードN6の値が等しければ、大学の組織グラフと大学の課目グラフを結合する条件が設定されている。この設定は、管理者等が前記端末の図示しない入力装置より入力した情報である。
同様に、図中結合条件番号=C2では、ノードN5の値と、ノードN10の値が等しく、かつ、ノードN9の値と、ノードN11の値が等しければ、大学の課目グラフと関係型データベース320のグラフ表現を結合する条件が設定されている。この設定も、上記と同様であり、管理者等が入力装置より入力した情報である。
以上のように、フロントエンド計算機100では、グラフ型データベース220と関係型データベース320のノードの種別とカラムの種別が抽出され、結合するノード及びカラムのグラフ表現の条件を管理者が操作する端末等から設定することで、グラフ型データベース220と関係型データベース320の対応関係を定義することができる。
図10は、フロントエンド計算機100で行われる参照統計情報の取得及び中間表の生成処理の一例を示すフローチャートである。このフローチャートは、図3のステップS2で行われる処理のひとつを示すサブルーチンである。
まず、ステップS21では、フロントエンド計算機100の統計情報管理部121が、問合せの実行によって参照されたノードとエッジについて参照統計情報130を取得する。
次に、ステップS22では、高頻度参照範囲決定部113が、ノードとエッジに関する統計情報に基づいて、高頻度で参照されたグラフ型データベース220の範囲を演算する。この処理については、図15等で後述する。
ステップS23では、格納データ管理部122が決定された高頻度参照範囲からデータを抽出して、中間表140を生成する。この処理については、図15等で後述する。なお、フロントエンド計算機100は、中間表140を作成する指令を受信したときに、当該ステップS23を実行する。フロントエンド計算機100は、中間表140を作成する指令を受信していない場合には、このステップ23をスキップすることができる。
図11は、フロントエンド計算機100で行われる参照統計情報130を設定する処理の一例を示すフローチャートである。この処理は、フロントエンド計算機100の起動後から実行され、終了要求を受け付けるまで繰り返して処理を実行する。
ステップS31では、統計情報管理部121が、参照統計情報130に対して所定の初期化を行う。次に、ステップS32では、問合せ要求受付部110が、ネットワーク400から問合せや、その他の要求を受け付ける。
ステップS33では、問合せ受付部111が、ネットワーク400から終了要求を受け付けたか否かを判定する。終了要求を受け付けた場合には、当該処理を終了する。一方、問合せを受け付けた場合は、ステップS34へ進む。
ステップS34では、問合せ受付部111が受け付けた問合せが、グラフ型データベース220への問合せ(SPARQL等)であるか否かを判定する。グラフ型データベース220への問合せであれば、ステップS35へ進み、関係型データベース320への問合せであればステップS37へ進む。ここで問合せ受付部111は、統計情報管理部121へ問合せを送信して、参照統計情報130の更新を指令する。
問合せ要求受付部110が受け付ける問合せの一例を図12A〜図12Cに示す。図12A、図12Bは、グラフ型データベース220への問合せをSPAQLで記述した例である。図12Cは、関係型データベース320への問合せをSQLで記述した例である。
グラフ型データベース220への問合せがSPAQLの場合、ステップS35において統計情報管理部121は、SPAQL文のWHERE句で参照される各ノードの種別を参照統計情報130から特定し、このノードの種別の参照回数に1を加算する。なお、当該ノードの種別が参照統計情報130に存在しない場合には、統計情報管理部121が当該ノードの種別を参照統計情報130に加えて、参照回数に1を加える。
次に、ステップS36において統計情報管理部121は、SPAQL文のWHERE節で参照される各エッジの種別を参照統計情報130から特定し、このエッジの種別の参照回数に1を加算する。なお、当該エッジの種別が参照統計情報130に存在しない場合には、統計情報管理部121が当該エッジの種別を参照統計情報130に加えて、参照回数に1を加える。その後、ステップS32へ戻って次の問合せを受け付ける。
関係型データベース320への問合せがSQLの場合、ステップS37において統計情報管理部121は、SQL文のSELECT句、WHERE句及びGROUP BY句で参照される各カラムの種別を参照統計情報130から特定し、このカラムの種別の参照回数に1を加算する。なお、当該カラムの種別が参照統計情報130に存在しない場合には、統計情報管理部121が当該ノードの種別を参照統計情報130に加えて、参照回数に1を加える。
次に、ステップS38において統計情報管理部121は、SQL文のFROM句で参照される各表について参照統計情報130から特定し、この表の参照回数に1を加算する。なお、当該表が参照統計情報130に存在しない場合には、統計情報管理部121が当該表の種別を参照統計情報130に加えて、参照回数に1を加える。その後、ステップS32へ戻って次の問合せを受け付ける。
ここで、参照回数を管理する参照統計情報130の一例を図14A、図14Bに示す。図14Aは、ノードに関する統計情報を格納する参照統計情報130Aを示す。図14Bは、エッジに関する統計情報を格納する参照統計情報130Bを示す。なお、カラムと表に関する参照統計情報は図示を省略するが、参照統計情報130A、130Bと同様に構成される。これらの参照統計情報130A,130Bの総称を参照統計情報130とする。
図14Aに示す参照統計情報130Aは、ノードの番号を格納する#1301Aと、ノードの種別の名称を格納するノード種別名1302Aと、参照回数1303Aと、参照回数を総数(Total)で除した参照頻度1304Aからひとつのレコードが構成される。なお、参照頻度1304Aの演算は、参照回数の設定時など所定のタイミングで統計情報管理部121が実行する。
図14Bに示す参照統計情報130Bは、エッジの番号を格納する#1301Bと、エッジの種別の名称を格納するエッジ種別名1302Bと、参照回数1303Bと、参照回数を総数(Total)で除した参照頻度1304Bからひとつのレコードが構成される。なお、参照頻度1304Bの演算は、参照回数の設定時など所定のタイミングで統計情報管理部121が実行する。
なお、参照統計情報130A、130Bは、統計情報管理部121の初期化時に、統計情報管理部121がグラフ型データベース220からノードの種別などを取得して生成してもよい。また、エッジの参照統計情報130Bは、予めエッジ種別名を設定した参照統計情報130Bを用意しておいても良い。
上記図11の処理を繰り返した結果、図14A、図14Bで示すように参照統計情報130A、130Bが更新され、ノードとエッジの参照回数及び参照頻度が更新される。また、図示はしないが、関係型データベース320のカラムと表の参照回数も更新される。そして、上記図8のグラフ表現に参照回数(または参照頻度)を加味すると、図13に示すようになる。
図13は、図8に示した全体関連図のグラフ表現に、図14A,図14B等の参照統計情報130を加味したグラフ表現である。図13は、グラフ表現のエッジの太さを、参照回数(または参照頻度)の値に応じて設定した図である。図13において、参照回数が多いほどエッジの線は太く設定される。図13では、エッジE5、E7、E8に対する参照頻度が高頻度であることが示される。
図15は、高頻度参照範囲決定部113が高頻度参照範囲を決定する処理の一例を示すフローチャートである。この処理は、図10のステップS22で行われる処理のサブルーチンを示す。
ステップS41では、高頻度参照範囲決定部113が、高頻度参照範囲を決定するための値として、参照頻度の総和の上限値Uを設定する。上限値Uは、予め設定した値である。
ステップS42では、高頻度参照範囲決定部113が、参照統計情報130から参照回数及び参照頻度を取得し、図13に示したグラフ型データベース220と関係型データベース320の全体関連図であるグラフ表現のエッジに重み付けを実施する。この重み付けは、図13で示したように、グラフ型データベース220と関係型データベース320を結合した全体関連図のグラフについて、図14Bに示した参照統計情報130Bの参照頻度1304Bを各エッジ種別名1302Bの重みとする。
次に、ステップS43において、高頻度参照範囲決定部113は抽出対象のエッジを格納するエッジ集合Eを空集合にして初期化する。
ステップS44では、高頻度参照範囲決定部113は、図13に示したグラフ型データベース220と関係型データベース320を結合したグラフGを構成するエッジについて、重みの小さい順にソートし、このソートした結果をエッジ候補Cとする。すなわち、図14Bに示した参照統計情報130Bを、参照頻度の小さい順に並べ替えたものをエッジ候補Cとする。
次に、ステップS45において、高頻度参照範囲決定部113は、エッジ候補Cから、重みが最小のエッジeを選択する。
ステップS46では、高頻度参照範囲決定部113がエッジeをエッジ集合Eへ加えた場合、閉路が形成されるか否かを判定する。閉路が形成されなければステップS45に戻って、次のエッジeを選択する。
一方、エッジ集合E内で閉路が形成された場合は、ステップS47に進み、高頻度参照範囲決定部113は、現在選択したエッジeは選択対象外と判定して、エッジ候補Cから削除する。ここで、閉路は、グラフ上の経路で、同じノードから出発して同じノードに戻り、すべてのエッジを一回だけ通る経路を示す。
ステップS48において、高頻度参照範囲決定部113は、エッジ集合Eに含まれるエッジと、選択したエッジeの参照頻度の総和Tを演算する。
ステップS49において、高頻度参照範囲決定部113は、総和Tが上限値Uを超えていないことを判定する。総和Tが上限値U以下であれば、ステップS50へ進み、総和Tが上限値Uを超えていればステップS51に進む。
ステップS50では、高頻度参照範囲決定部113が選択中のエッジeをエッジ集合Eに追加した後、ステップS45の処理に戻って次のエッジeを処理する。
一方、ステップS51では、総和Tが上限値U以下のため、高頻度参照範囲決定部113は、エッジ集合Eに含まれるエッジeに接続されるノードの集合を、高頻度参照範囲として特定する。すなわち、エッジ集合Eに含まれるエッジeの両端に位置するノードの集合を高頻度参照範囲として特定する。
上記の処理の結果、図14Bに示す参照統計情報130Bを参照頻度1304Bの小さい順にソートして、エッジ候補Cとする。エッジ候補Cから重みの小さい順に順次エッジeを選択し、閉路を形成するエッジeの場合、エッジ集合Eとエッジeの参照頻度の総和Tが上限値Uを超えるまで、エッジ集合Eにエッジeを加えていく。そして、エッジ集合Eのエッジに接続するノードの集合が高頻度参照範囲として特定される。
上記処理により、例えば、図18に示したエッジE5、E7、E8が参照頻度の高いエッジとしてエッジ集合Eに保持され、これらのエッジに対応するノードN6,N7、N9、N12が、高頻度参照範囲として特定される。
なお、上記では、参照頻度の総和Tと上限値Uを比較したが、各ノードの種別毎の参照回数が閾値以上のデータを高頻度参照範囲としてもよい。あるいは、各ノードの種別毎の参照頻度が閾値以上のデータを高頻度参照範囲としてもよい。
図16は、高頻度参照範囲決定部113が中間表140を作成する処理の一例を示すフローチャートである。この処理は、図10のステップS23で行われる処理のサブルーチンである。
まず、ステップS51では、高頻度参照範囲決定部113が、参照統計情報130を参照して、データベースの全体関連図を表現する全体グラフG(図17参照)から、高頻度参照範囲に含まれるノードを残して、他を削除する。さらに高頻度参照範囲決定部113は、エッジの両端のノードが共に高頻度参照範囲に含まれるエッジを残して、他を削除した抽出後グラフを生成する。
図17の例では、高頻度参照範囲のエッジE5、E7、E8に対応するノードN6,N7、N9、N12を残す一方、ノードN1〜N4、N8が削除され、図18で示すグラフとなる。この結果、図19A〜図19Eで示すようなノードが高頻度参照範囲として抽出される。
次に、ステップS52では、高頻度参照範囲決定部113が、一つのノードから同じタイプを持つノードに対して複数本のエッジが接続されている場合、そのエッジ数分のノードの複製を行う。
ステップS53では、高頻度参照範囲決定部113が、高頻度参照範囲に含まれるノードの種別をカラム名とする表を中間表140として定義する。すなわち、図20で示すように、高頻度参照範囲決定部113は、中間表140のカラムを教授(Professor)1401と、講義(Lecture)1402と、生徒(Student)1403と、成績(Grade)1044でひとつのレコードを構成する表を定義する。
ステップS53では、高頻度参照範囲決定部113が、高頻度参照範囲として特定した図19A〜図19Eのグラフのノードの種別名と、中間表140のカラム名1401〜1403を対応させ、図19A〜図19Eにおいて連結された一連のノードを、1レコードとして、各ノードの値を中間表140に設定する。
これにより、表構造の中間表140が構成され、グラフ型データベース220の講義(Lecture)と生徒(Student)を、表構造の関係型データベース320の成績(Grade)とい結合し、グラフ型データベース220への問合せをSQL等の関係型データベース320の問合せでアクセスすることが可能となる。
図21は、中間表140の生成後にフロントエンド計算機100で行われる参照統計情報130を設定する処理の一例を示すフローチャートである。この処理は、中間表140の生成後に、図11の処理に代わって実行され、終了要求を受け付けるまで繰り返して処理を実行する。
ステップS61では、問合せ要求受付部110の問合せ受付部111が、ネットワーク400から問合せや、その他の要求を受け付ける。
ステップS62では、問合せ受付部111が、ネットワーク400から終了要求を受け付けたか否かを判定する。終了要求を受け付けた場合には、当該処理を終了する。一方、問合せを受け付けた場合は、ステップS64へ進む。
ステップS63では、問合せ受付部111が受け付けた問合せが、中間表140を利用可能な問合せであるか否かを判定する。すなわち、受け付けた問合せとは異なる形式でのノードの種別を参照するか否かを判定することは、表構造のデータベースに対する問合せで、グラフ型データベース220へアクセスするか否かを判定することであり、グラフ型データベース220と関係型データベース320を結合した中間表140を参照するか否かを意味する。
この判定は、例えば、受け付けた問合せの中に中間表140のカラムが含まれていれば、ステップS64へ進む。すなわち、受け付けた問合せとは異なる形式でのノードの種別を参照する。一方、受け付けた問合せの中に中間表140のカラムが含まれていなけければステップS65に進んで、図11と同様に、グラフ型データベース220または関係型データベース320の問合せを実行する。
ステップS64では、問合せ要求変換部114が、中間表140に対する問合せをSQLで、中間表140に含まれないグラフ型データベース220への問合せをSPAQLに変換する。この変換は、例えば、図22で示すように行われる。図22の変換前の問合せはSQLで記述され、大学(University)、学部(Faculty)、成績(Grade)の平均を問い合わせている。ここで、問合せ要求変換部114は、大学(University)と学部(Faculty)は中間表140に含まれないので、SPAQLに変換してグラフ型データベース220に問い合わせる。一方、成績(Grade)については中間表140に保持しているので、SQLのままアクセスする。図22の変換後の問合せで、「CacheTable」が中間表140に相当する。
そして、ステップS65では、上記問合せ要求変換部114で変換した問合せを問合せ処理実行部120に指令して、中間表140とグラフ型データベース220にアクセスすることができる。問合せの実行が完了すると、ステップS61の処理に戻って、次の問合せを受け付ける。
上記処理により、グラフ型データベース220のうちアクセス頻度の高いデータを、関係型データベース320と結合した表構造のデータベースである中間表140として抽出しておくことで、頻繁にアクセスするグラフ型データベース220を関係型データベースの問合せで参照することが可能となる。
以上のように、本発明では、グラフ型データベース220のうち、参照頻度の総和Tが上限値Uを超えないエッジ集合Eを、参照頻度の高いデータとして抽出し、表構造の中間表140に変換する。これにより、関係型データベース320の問合せを用いて、中間表140にアクセスすることでグラフ型データベース220を参照することが可能なる。なお、上記実施例では、参照頻度の総和を上限値Uと比較したが、ノードの種別毎の参照回数が所定値以上のデータを高頻度参照範囲としてもよい。
そして、中間表140は、参照頻度が閾値以上の高頻度参照範囲のデータを抽出したので、関係型データベース320の問合せをグラフ型データベース220の問合せに変換する頻度を低減し、グラフ型データベース220を高速に利用することができる。
また、中間表140は、グラフ型データベース220と関係型データベース320の対応関係に基づいて、中間表140に抽出したグラフ型データベース220の一部と、関係型データベース320を結合した。これにより、ひとつの表構造の問合せで、グラフ型データベース220と関係型データベース320へ同時にアクセスすることが可能となって、異なるデータベースを効率よく利用すること画家可能となる。
また、中間表140を生成する際には、関係型データベース320のデータをグラフ型データに変換してから結合する。これにより、グラフ型データベース220のルートからリーフ(エンドポイント)までの関係を維持して、異種のデータベースを結語することが可能となる。
上記実施例では、データベースを管理する問合せ要求受付部110及び問合せ処理実行部120をフロントエンド計算機100で実行し、グラフ型データベース220と関係型データベース320をバックエンド計算機200、300で提供する例を示したが、図示はしないが、ひとつの計算機でこれらの機能を提供しても良い。
なお、本発明において説明した計算機等の構成、処理部及び処理手段等は、それらの一部又は全部を、専用のハードウェアによって実現してもよい。
また、本実施例で例示した種々のソフトウェア(プログラム)は、電磁的、電子的及び光学式等の種々の記録媒体(例えば、非一時的な計算機読取り可能な記憶媒体)に格納可能であり、インターネット等の通信網を通じて、コンピュータにダウンロード可能である。
また、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明をわかりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。

Claims (15)

  1. プロセッサとメモリを備えた計算機で、グラフ型データベースと関係型データベースを管理するデータベースの管理方法であって、
    前記計算機が、前記グラフ型データベースのノードの種別毎に参照頻度を取得する第1のステップと、
    前記計算機が、前記参照頻度が閾値以上のノードの種別を抽出する第2のステップと、
    前記計算機が、前記抽出したノードを表構造に変換し、中間表として保持する第3のステップと、
    前記計算機が、前記関係型データベースの問合せを受け付けて、前記中間表を参照する第4のステップと、
    を含むことを特徴とするデータベースの管理方法。
  2. 請求項1に記載のデータベースの管理方法であって、
    前記第3のステップは、
    前記グラフ型データベースと関係型データベースの対応関係を取得するステップと、
    前記対応関係に基づいて前記表構造に変換したノードと、前記関係型データベースを結合するステップと、
    を含むことを特徴とするデータベースの管理方法。
  3. 請求項2に記載のデータベースの管理方法であって、
    前記第4のステップは、
    前記関係型データベースの問合せを受け付けて、前記グラフ型データベースから抽出したノードと結合した関係型データベースを参照することを特徴とするデータベースの管理方法。
  4. 請求項1に記載のデータベースの管理方法であって、
    前記第4のステップは、
    前記中間表に前記問合せに該当するデータが存在しないときには、前記関係型データベースの問合せを前記グラフ型データベースの問合せに変換するステップと、
    前記変換されたグラフ型データベースの問合せで前記グラフ型データベースを参照するステップと、
    を含むことを特徴とするデータベースの管理方法。
  5. 請求項2に記載のデータベースの管理方法であって、
    前記対応関係に基づいて前記表構造に変換したノードと、前記関係型データベースを結合するステップは、
    前記関係型データベースをグラフ型データに変換してから前記抽出したノードと結合することを特徴とするデータベースの管理方法。
  6. プロセッサとメモリを備えて、グラフ型データベースと関係型データベースを参照する管理計算機であって、
    前記グラフ型データベースのノードの種別毎に参照頻度を取得する統計情報管理部と、
    前記参照頻度が閾値以上のノードの種別を抽出し、前記抽出したノードを表構造に変換して中間表として保持する高頻度参照範囲決定部と、
    前記関係型データベースの問合せを受け付けて、前記中間表を参照する問合せ実行部、とを備えたことを特徴とする管理計算機。
  7. 請求項6に記載の管理計算機であって、
    前記高頻度参照範囲決定部は、
    前記グラフ型データベースと関係型データベースの対応関係を取得し、前記対応関係に基づいて前記表構造に変換したノードと、前記関係型データベースを結合することを特徴とする管理計算機。
  8. 請求項7に記載の管理計算機であって、
    前記問合せ実行部は、
    前記関係型データベースの問合せを受け付けて、前記グラフ型データベースから抽出したノードと結合した関係型データベースを参照することを特徴とする管理計算機。
  9. 請求項6に記載の管理計算機であって、
    前記問合せ実行部は、
    前記中間表に前記問合せに該当するデータが存在しないときには、前記関係型データベースの問合せを前記グラフ型データベースの問合せに変換し、前記変換されたグラフ型データベースの問合せで前記グラフ型データベースを参照することを特徴とする管理計算機。
  10. 請求項7に記載の管理計算機であって、
    前記高頻度参照範囲決定部は、
    前記関係型データベースをグラフ型データに変換してから前記抽出したノードと結合することを特徴とする管理計算機。
  11. プロセッサとメモリを備えた計算機を制御するプログラムを格納した記憶媒体であって、
    グラフ型データベースのノードの種別毎に参照頻度を取得する第1の手順と、
    前記計算機が、前記参照頻度が閾値以上のノードの種別を抽出する第2の手順と、
    前記計算機が、前記抽出したノードを表構造に変換し、中間表として保持する第3の手順と、
    前記計算機が、関係型データベースの問合せを受け付けて、前記中間表を参照する第4の手順と、
    を前記計算機に実行させるプログラムを格納した非一時的な計算機読み取り可能な記憶媒体。
  12. 請求項11に記載の記憶媒体であって、
    前記第3の手順は、
    前記グラフ型データベースと関係型データベースの対応関係を取得する手順と、
    前記対応関係に基づいて前記表構造に変換したノードと、前記関係型データベースを結合する手順と、
    を含むことを特徴とするプログラムを格納した非一時的な計算機読み取り可能な記憶媒体。
  13. 請求項12に記載の記憶媒体であって、
    前記第4の手順は、
    前記関係型データベースの問合せを受け付けて、前記グラフ型データベースから抽出したノードと結合した関係型データベースを参照することを特徴とするプログラムを格納した非一時的な計算機読み取り可能な記憶媒体。
  14. 請求項11に記載の記憶媒体であって、
    前記第4の手順は、
    前記中間表に前記問合せに該当するデータが存在しないときには、前記関係型データベースの問合せを前記グラフ型データベースの問合せに変換する手順と、
    前記変換されたグラフ型データベースの問合せで前記グラフ型データベースを参照する手順と、
    を含むことを特徴とするプログラムを格納した非一時的な計算機読み取り可能な記憶媒体。
  15. 請求項12に記載の記憶媒体であって、
    前記対応関係に基づいて前記表構造に変換したノードと、前記関係型データベースを結合する手順は、
    前記関係型データベースをグラフ型データに変換してから前記抽出したノードと結合することを特徴とするプログラムを格納した非一時的な計算機読み取り可能な記憶媒体。
JP2014556246A 2013-01-09 2013-01-09 データベースの管理方法、管理計算機及び記憶媒体 Active JP5873935B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/050178 WO2014109009A1 (ja) 2013-01-09 2013-01-09 データベースの管理方法、管理計算機及び記憶媒体

Publications (2)

Publication Number Publication Date
JP5873935B2 true JP5873935B2 (ja) 2016-03-01
JPWO2014109009A1 JPWO2014109009A1 (ja) 2017-01-19

Family

ID=51166682

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014556246A Active JP5873935B2 (ja) 2013-01-09 2013-01-09 データベースの管理方法、管理計算機及び記憶媒体

Country Status (3)

Country Link
US (1) US20150310129A1 (ja)
JP (1) JP5873935B2 (ja)
WO (1) WO2014109009A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9710568B2 (en) 2013-01-29 2017-07-18 Oracle International Corporation Publishing RDF quads as relational views
JP2014153961A (ja) * 2013-02-08 2014-08-25 Toshiba Corp 情報処理装置、情報処理方法及び情報処理プログラム
US9836503B2 (en) * 2014-01-21 2017-12-05 Oracle International Corporation Integrating linked data with relational data
US20210216516A1 (en) * 2014-05-28 2021-07-15 GraphSQL Inc. Management of a secondary vertex index for a graph
JP2016201043A (ja) * 2015-04-13 2016-12-01 株式会社日立製作所 アクセス制御装置、およびアクセス制御方法
US11687527B2 (en) * 2015-10-28 2023-06-27 Qomplx, Inc. System and method for analysis of graph databases using intelligent reasoning systems
WO2017078710A1 (en) * 2015-11-04 2017-05-11 Hewlett-Packard Enterprise Development LP Processing data between data stores
US9465832B1 (en) * 2016-02-04 2016-10-11 International Business Machines Corporation Efficiently committing large transactions in a graph database
US10467229B2 (en) 2016-09-30 2019-11-05 Microsoft Technology Licensing, Llc. Query-time analytics on graph queries spanning subgraphs
US10545945B2 (en) 2016-10-28 2020-01-28 Microsoft Technology Licensing, Llc Change monitoring spanning graph queries
US10445361B2 (en) 2016-12-15 2019-10-15 Microsoft Technology Licensing, Llc Caching of subgraphs and integration of cached subgraphs into graph query results
US10402403B2 (en) * 2016-12-15 2019-09-03 Microsoft Technology Licensing, Llc Utilization of probabilistic characteristics for reduction of graph database traversals
US10644971B2 (en) * 2017-01-31 2020-05-05 Cisco Technology, Inc. Graph search in structured query language style query
US10242223B2 (en) 2017-02-27 2019-03-26 Microsoft Technology Licensing, Llc Access controlled graph query spanning
US11151031B2 (en) * 2017-06-29 2021-10-19 Microsoft Technology Licensing, Llc Optimized record placement in defragmenting graph database
US10425437B1 (en) * 2017-11-27 2019-09-24 Lacework Inc. Extended user session tracking
JP6707754B2 (ja) * 2017-11-30 2020-06-10 株式会社日立製作所 データベース管理システム及び方法
US10872120B2 (en) * 2018-05-31 2020-12-22 Vmware, Inc. Visualizing data center inventory and entity relationships
US11086909B2 (en) 2018-11-27 2021-08-10 International Business Machines Corporation Partitioning knowledge graph
JP2021099545A (ja) * 2019-12-19 2021-07-01 エヌ・ティ・ティ・コムウェア株式会社 情報検索装置、情報検索方法、およびプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10222539A (ja) * 1996-10-02 1998-08-21 Jangree Corp 半構造化情報の照会および解釈を構造化する方法および装置
JP2003256455A (ja) * 2002-03-06 2003-09-12 Nec Corp Xml文書格納/検索装置及びそれに用いるxml文書格納/検索方法並びにそのプログラム
JP2006053724A (ja) * 2004-08-11 2006-02-23 Hitachi Ltd Xmlデータ管理方法
US20060235837A1 (en) * 2005-04-18 2006-10-19 Oracle International Corporation Rewriting table functions as SQL strings
US20100250577A1 (en) * 2009-03-31 2010-09-30 International Business Machines Corporation Translation system and method for sparql queries

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8239778B2 (en) * 2007-02-08 2012-08-07 Kgmp Trust Graphical database interaction system and method
US8949225B2 (en) * 2012-05-22 2015-02-03 Oracle International Corporation Integrating applications with an RDF repository through a SPARQL gateway
DE112012006412T5 (de) * 2012-05-24 2015-02-12 Hitachi, Ltd. System zur verteilten Datensuche, Verfahren zur verteilten Datensuche und Managementcomputer

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10222539A (ja) * 1996-10-02 1998-08-21 Jangree Corp 半構造化情報の照会および解釈を構造化する方法および装置
JP2003256455A (ja) * 2002-03-06 2003-09-12 Nec Corp Xml文書格納/検索装置及びそれに用いるxml文書格納/検索方法並びにそのプログラム
JP2006053724A (ja) * 2004-08-11 2006-02-23 Hitachi Ltd Xmlデータ管理方法
US20060235837A1 (en) * 2005-04-18 2006-10-19 Oracle International Corporation Rewriting table functions as SQL strings
US20100250577A1 (en) * 2009-03-31 2010-09-30 International Business Machines Corporation Translation system and method for sparql queries

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015052701; 小島 功: '分散RDFデータベース応用のためのグリッド基盤に基づくミドルウェアの実現' 日本データベース学会Letters Vol.6 No.3, 20071221, 9-12ページ, 日本データベース学会 *

Also Published As

Publication number Publication date
JPWO2014109009A1 (ja) 2017-01-19
WO2014109009A1 (ja) 2014-07-17
US20150310129A1 (en) 2015-10-29

Similar Documents

Publication Publication Date Title
JP5873935B2 (ja) データベースの管理方法、管理計算機及び記憶媒体
JP7130600B2 (ja) ファーストクラスデータベース要素としての半構造データの実装
CN102521416B (zh) 数据关联查询方法和数据关联查询装置
US11068439B2 (en) Unsupervised method for enriching RDF data sources from denormalized data
CN110362727B (zh) 用于搜索系统的第三方搜索应用
CN105630881B (zh) 一种rdf的数据存储方法和查询方法
CN110543517A (zh) 一种基于Elasticsearch实现海量数据复杂查询方法、装置及介质
US8880463B2 (en) Standardized framework for reporting archived legacy system data
US11243987B2 (en) Efficient merging and filtering of high-volume metrics
US20160328445A1 (en) Data Query Method and Apparatus
US11520733B2 (en) Source data assignment based on metadata
JP5844895B2 (ja) データの分散検索システム、データの分散検索方法及び管理計算機
WO2014034383A1 (ja) 情報処理装置、レコード位置情報特定方法および情報処理プログラム
US20140067853A1 (en) Data search method, information system, and recording medium storing data search program
Calçada et al. Evaluation of Couchbase, CouchDB and MongoDB using OSSpal.
US11520763B2 (en) Automated optimization for in-memory data structures of column store databases
US9881055B1 (en) Language conversion based on S-expression tabular structure
US11954105B2 (en) Method and system for storing query plans in a cache and method for querying a database system
KR102646588B1 (ko) 맞춤형 지식 그래프 생성을 위한 시스템 및 방법
US11449504B2 (en) Database partition pruning using dependency graph
KR102062139B1 (ko) 지능형 자료구조 기반의 데이터 처리 방법 및 그를 위한 장치
KR101679011B1 (ko) 데이터베이스에서 데이터 이동을 처리하는 방법 및 장치
JP2016062522A (ja) データベース管理システム、データベースシステム、データベース管理方法およびデータベース管理プログラム
US20190163810A1 (en) Search User Interface
Elzein et al. Distributed join query processing for big RDF data

Legal Events

Date Code Title Description
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: 20160105

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160118

R150 Certificate of patent or registration of utility model

Ref document number: 5873935

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150