【ぐらふでーたべーす】
グラフデータベース とは?
最終更新:
💡 データの人間関係を丸ごと記憶するつながりの達人
ノード(頂点)とエッジ(辺)でデータ同士の関係を表し、保存・検索するデータベース。人や物のつながりをたどる用途などに使い、Neo4jやAmazon Neptuneが例。
📌 このページのポイント
グラフデータベースの「グラフ」って円グラフとかのグラフ?
数学のグラフ理論のグラフで、点と線で関係を表すものだよ。たとえば人をノードにし、「AliceがBobをフォローしている」という関係をエッジにする。数字の増減を描くグラフとは意味が違うんだ。
普通のデータベースでも関係は表せるよね?
どんな場面で使われるの?
人や商品のつながりを利用する推薦、送金などの関係を調べる不正検知、知識の関係を整理するナレッジグラフなどが例だよ。グラフ構造を使うことと、必ず特定のグラフDB製品で保存することは別なんだ。
Neo4jってよく聞くけど、どう検索するの?
Cypherというクエリ言語を使うよ。たとえばPersonラベルとname属性を持つ人、FOLLOWSという関係を用意した例なら、MATCH (a:Person {name: "Alice"})-[:FOLLOWS]->(b) RETURN b でAliceがフォローする相手を取得する。aを絞る条件を指定しなければ、全体の該当関係が対象になるんだ。
全部のグラフDBが同じ仕組みなの?
まとめ:ざっくりこれだけ覚えればOK!
「グラフデータベース」って出てきたら「データ同士のつながりを保存・検索するのが得意なデータベース」と思えればだいたいOK!
📖 おまけ:英語の意味
「Graph Database」 = グラフデータベース
💬 ここでのGraphは棒グラフや折れ線グラフではなく、数学のグラフ理論(ノードとエッジのネットワーク)のことだよ