本文へスキップ
BecomeCoder

Neo4jコース · 第1章 グラフデータベースとは · レッスン1

グラフデータベースとは ― データを「点」と「線」で表す

ローカル実施

導入

グラフデータベースとは、データを 点(ノード) と、点同士をつなぐ 線(リレーションシップ) で表現するデータベースです。SNSの「友達関係」を思い浮かべると、この形がいかに自然かがすぐ分かります。

説明

「グラフ」と聞くと棒グラフや折れ線グラフを想像するかもしれませんが、ここでいう グラフ(graph) は数学のグラフ理論の意味で、「点(ノード)」と「点をつなぐ線(エッジ/リレーションシップ)」の集まりのことです。

たとえば「アリスとボブは友達」「ボブとキャロルは友達」という情報を図にすると、次のようになります。

graph LR
    Alice((Alice)) -- KNOWS --> Bob((Bob))
    Bob((Bob)) -- KNOWS --> Carol((Carol))
    Alice((Alice)) -- KNOWS --> Carol((Carol))

この図で、丸(○)が ノード(node)=人物というデータそのもの、矢印が リレーションシップ(relationship)=人物同士の関係を表しています。グラフデータベースは、この図をほぼそのままの形でコンピュータの中に保存します。

  • ノード … データの主役(人・商品・場所など、名詞にあたるもの)
  • リレーションシップ … ノード同士のつながり(「知り合い」「購入した」など、動詞にあたるもの)

表(テーブル)で管理する一般的なデータベース(リレーショナルデータベース/RDB)では、「つながり」は別の表(中間テーブル)や外部キーという間接的な形でしか表せません。グラフデータベースは、つながりそのものをデータの一級市民として直接保存するのが最大の特徴です。この違いは次のレッスン以降で詳しく見ていきます。