導入
グラフデータベースとは、データを 点(ノード) と、点同士をつなぐ 線(リレーションシップ) で表現するデータベースです。SNSの「友達関係」を思い浮かべると、この形がいかに自然かがすぐ分かります。
説明
「グラフ」と聞くと棒グラフや折れ線グラフを想像するかもしれませんが、ここでいう グラフ(graph) は数学のグラフ理論の意味で、「点(ノード)」と「点をつなぐ線(エッジ/リレーションシップ)」の集まりのことです。
たとえば「アリスとボブは友達」「ボブとキャロルは友達」という情報を図にすると、次のようになります。
graph LR
Alice((Alice)) -- KNOWS --> Bob((Bob))
Bob((Bob)) -- KNOWS --> Carol((Carol))
Alice((Alice)) -- KNOWS --> Carol((Carol))
この図で、丸(○)が ノード(node)=人物というデータそのもの、矢印が リレーションシップ(relationship)=人物同士の関係を表しています。グラフデータベースは、この図をほぼそのままの形でコンピュータの中に保存します。
- ノード … データの主役(人・商品・場所など、名詞にあたるもの)
- リレーションシップ … ノード同士のつながり(「知り合い」「購入した」など、動詞にあたるもの)
表(テーブル)で管理する一般的なデータベース(リレーショナルデータベース/RDB)では、「つながり」は別の表(中間テーブル)や外部キーという間接的な形でしか表せません。グラフデータベースは、つながりそのものをデータの一級市民として直接保存するのが最大の特徴です。この違いは次のレッスン以降で詳しく見ていきます。