データベース編 第8章 / 全13章
グラフDBとは
Graph Database
NoSQL ・ つながりをたどる人間関係の相関図。「友達の友達」を、線をたどるだけで見つけられる。
図とさわれるデモで確かめる →
ポイント
- データを「点(ノード)」と「線(エッジ)」で表す
- 線をたどる検索が速く、つながりが何段も続いても平気
- おすすめ表示や不正検知など、「関係」そのものが大事な用途に強い
名前の由来
graph図(ギリシャ語 graphein:書く・描く)
ここでの「グラフ」は棒グラフではなく、点と線でつながりを描いた図のこと。
仕事の現場では
「この商品を買った人はこれも買っています」や、取引の流れから不正な口座のつながりを見つける用途などで使われます。
くわしく(正確な話)
- 代表例はNeo4j。クラウドではNeptune・Cosmos DB(Gremlin)・Spanner Graph。
- RDBで「友達の友達の友達」を探すと、JOINが何重にもなって遅くなる。
- 問い合わせの言葉にはCypherやGremlinがある。
- 2024年に、グラフ用の国際標準の問い合わせ言語GQLが制定された。
この章の用語(意味と語源)
- グラフDB Graph Database
データを「点」と「線」でつなげて保存するDB。
語源graph はギリシャ語 graphein(書く・描く)から。点と線で描いた図のこと。
- ノード / エッジ Node / Edge
グラフの「点(人・モノ)」と「線(関係)」。
「山田さん」「田中さん」がノード、「友達」という関係がエッジです。
語源node はラテン語 nodus(結び目)から。edge は「ふち・へり」。
- GQL / Cypher / Gremlin グラフ用の問い合わせ言語
グラフDBに頼みごとをするための言葉。
Cypher は Neo4j で生まれた言語で、GQL のもとにもなりました。
語源GQL は Graph Query Language。Cypher は「暗号」、Gremlin は「いたずら小鬼」の意味です。
- Neo4j ネオフォージェー
もっとも有名なグラフDB。
語源neo(新しい)+ 4j(for Java:Java向け)。