2016年08月31日 08時00分 UPDATE
特集/連載

グラフ型データベースとは?今さら聞けないグラフ型データベース基礎の基礎

グラフ型データベースとは何か。何ができて、どのようなメリットがあるのか。グラフ型データベースについて、一から分かりやすく解説する。

[Clive Longbottom,Computer Weekly]
Computer Weekly

 リレーショナルデータベースがその役目を終える日は近いとかねて予想されていたが、最近注目されているグラフ型データベースがそのとどめを刺すのではないかとみられている。

Computer Weekly日本語版 8月24日号無料ダウンロード

本記事は、プレミアムコンテンツ「Computer Weekly日本語版 8月24日号」(PDF)掲載記事の抄訳版です。本記事の全文は、同プレミアムコンテンツで読むことができます。

なお、同コンテンツのEPUB版およびKindle(MOBI)版も提供しています。

ボタンボタン

 グラフ型データベースは、本当に挑戦者としてふさわしい力を持っているのだろうか。それとも、“新しいデータ操作方式が単にまた1つ考案された”だけのことなのだろうか。グラフ型データベースは、単なる新種のデータベース(JADB:Just Another Database)なのか。このアプローチには、何か注目に値するものがあるのではないか。

 グラフ型データベースは、特に目新しいものではない。現時点で目新しいことがあるとすれば、リレーショナルデータベース(「IBM DB2」や「Microsoft SQL Server」など)や非リレーショナルデータベース(「MongoDB」「Riak」「Apache Cassandra」)ほどは普及していないということぐらいだ。

 グラフ型データベースが他のデータベース並みに普及するためには、成熟した非リレーショナルプラットフォームへと進化する必要がある。そこで今、このアプローチへの関心が高まっている。

 そもそも、「グラフ型データベース」という名前の由来は何だろう。リレーショナルデータベースの基本的な概念は行と列であり、インデックスを使った検索や複数のテーブルのJOIN(結合)が可能だ。データポイント間の関係は基本的にクエリの実行時に構築されるが、リソースの観点からは、この処理の負荷が高くなる場合がある。

 これに対して、グラフ型データベースはデータ格納時にデータポイント間の関係を調べ、システムの運用を続ける中で、異なるデータアイテム同士を関連付けるためのメタデータを維持する。グラフ型データベースでは、関係の「グラフ」を作成する。データクエリの処理効率は、リレーショナルデータベースや従来型の非リレーショナルデータベースのクエリよりも格段に優れている。

 グラフ型データベースのパフォーマンスは、本質的にデータベースのサイズに依存しない。グラフ型データベースに、検索したい「パターン」を指定すると、対象外と判断したデータは全て無視し、関連のありそうなデータに集中するためだ。

関連付け可能なアセット

 グラフ型データベースを構築する場合、幾つかの基本的な概念と複数の異なるデータアセット間の関係を理解する必要がある。

 データベースは、階層構造の関連付けを持つ。その中で1つのアイテムは他のアイテムと関係を持つことができ、同時にプロパティを持つ場合もある。

 ここで使われる(基本的な)概念は、ノード(アセットの一種)、プロパティ(ノードに関する情報)、エッジ(ノード間の関係を定義する接続)だ。

 これは、リソースを記述するための規格(RDF)に基づいている。RDFでは各エンティティに「トリプル」が必要だ。トリプルは主語、述語、目的語の3つで1組を成す。

 RDFは、インターネットを支える基礎の多くを担っている。URIはRDFのトリプルをベースとしているからだ。セマンティックWebの全体的な発想(より標準化されたWebで、データに対するグローバルなアクセスや分析が可能)は、RDFをベースとしている。

 例えばここに、1軒の家が道沿いに建っていたとする。この家がメインノードであり、同じ道沿いに建つ他の住宅と関係(リレーションシップ)を持っている。またこの家は、道路や電気、ガス、水道などの公共インフラとも関係を持っている。

 家はまた、プロパティも保有している。半分つながっている客室3室、応接間2室、キッチンなどがこれに相当する。

 キッチンにもプロパティは含まれている。据え付け型の洗濯機、食器洗い機などが挙げられる。キッチンはさらに、いつ洗濯機を購入したのか、洗濯機を前回修理したのはいつなのかを定義するエッジを保有している。これら以外の理由による洗濯機との何らかの関係を定義するエッジも考えられる。

 このシナリオでは、キッチンがRDFの主語、述語は「キッチンに置かれているもの」、目的語は洗濯機に相当する。

 リレーショナルデータベースでは、クエリを実行するたびにこうした関係を探索しなければならない。しかしグラフ型データベースの場合、関係はデータの格納方法よりも重要な位置を占めている。

一気に丸ごと全部削除

 グラフ型データベースの「隠し味」の1つとして、アセットを削除する方法が挙げられる。

この記事を読んだ人にお薦めのホワイトペーパー

この記事を読んだ人にお薦めの関連記事

Loading

注目テーマ

ITmedia マーケティング新着記事

news108.jpg

「LINE LIVE」にインストリーム広告、配信者に収益を還元
LINEは「LINE LIVE」上の運用型広告「LIVE Video Ads」の提供を開始した。

news098.jpg

「Best Global Brands 2017」が発表、NetflixとSalesforce.comが初のランクイン
インターブランドジャパンは世界のブランド価値評価ランキング「Best Global Brands 2016...

news078.jpg

オールアバウト、ネイティブアドネットワーク「All Aboutプライムアド」を開始
オールアバウトは、総合情報サイト「All About」において、独自の基準で選定したライフス...