データベース

グラフDB(Neptune) ぐらふでぃーびー(ねぷちゅーん)

グラフDBNeptuneNeo4jノードエッジ知識グラフ
グラフDB(Neptune)について教えて

簡単に言うとこんな感じ!

「人と人のつながり」や「商品と購買者の関係」をネットワーク図そのままの形で保存・検索できるデータベースだよ。SNSの「友達の友達を探す」や「不正送金のルートを追う」みたいな複雑なつながり分析が得意なんだ!


グラフDB(Neptune)とは

グラフDB(グラフデータベース)は、データを**ノード(節点)とエッジ(辺)のグラフ構造で表現・保存するデータベースです。「AがBと友達で、BがCと取引がある」といった関係(リレーションシップ)**を効率よく処理することに特化しています。

RDBでも「友達テーブル」「取引テーブル」で関係を表現できますが、「6次以上のつながりを辿る」ような深い関係探索はJOINが多段になって急激に遅くなります。グラフDBはこのようなグラフトラバーサル(関係の辿り歩き)をネイティブにサポートするため、深い関係でも高速です。

Amazon NeptuneはAWSが提供するフルマネージドグラフDBサービスです。Gremlin(グラフトラバーサル言語)とSPARQL(RDF用クエリ言語)の両方をサポートし、プロパティグラフとRDFグラフの2モデルに対応しています。


グラフDBの主要概念

概念説明
ノードグラフの頂点。エンティティを表すユーザー、商品、会社
エッジノード間の関係。必ず方向を持つ「友達である」「購入した」「属する」
プロパティノード・エッジに付与できる属性名前、日時、金額
ラベルノード・エッジの種類分け:Person、:Product
パスノードとエッジを辿った経路Alice→Bob→Carol

グラフDBが得意なユースケース

  • ソーシャルグラフ — 友人推薦、インフルエンサー分析
  • 不正検知 — 口座間の不審な資金移動経路の追跡
  • レコメンデーション — 「この商品を買った人はこれも」
  • 知識グラフ — 企業・人物・出来事の関係マッピング
  • サプライチェーン — 部品・製造者・依存関係の管理

歴史と背景

  • 2007年 — Neo4jが商用グラフDBとして登場
  • 2012年 — W3CがSPARQLをRDFクエリ標準として勧告
  • 2017年 — Amazon NeptuneがAWS re:Inventで発表
  • 2018年 — Neptune GA。GremlinとSPARQL両対応
  • 2019年 — Neo4j 4.0がマルチDB対応でエンタープライズ向けを強化
  • 2023年 — Neptune AnalyticsリリースでグラフMLに対応

グラフDB vs RDB の関係表現

RDB(テーブルで関係表現) グラフDB(ノード+エッジ) usersテーブル id | name 1 | Alice 2 | Bob friendsテーブル user_id | friend_id 1 | 2 深い関係探索は 多段JOINが必要 Alice Bob Carol 友達 友達 関係を直接辿れる

関連する規格・RFC

規格内容
RDF (Resource Description Framework)W3C勧告。SPARQLで操作するグラフデータモデル
SPARQL 1.1RDFグラフのクエリ言語(W3C標準)
GremlinApache TinkerPop準拠のグラフトラバーサル言語
openCypherNeo4j発のグラフクエリ言語。ISO標準化作業中

関連用語