プロパティグラフ【property graph】
概要

ノードは人物や商品、場所など個々の実体を表し、名前や年齢、価格のようなプロパティを持つ。エッジはノード間の関係を表し、関係の種類や日時、数量などのプロパティを持たせられる。プロパティはキーと値の組で表され、対象ごとに異なる属性を柔軟に追加できる。
ノードとエッジには、種類を識別する「ラベル」を付与する仕組みも備わっている。ノードには「Person」「Product」のような分類用ラベルが、エッジには「PURCHASED」「FRIENDS_WITH」のような関係の種類を示すラベルが付く。エッジには向きが設定されることが多く、始点と終点が同じ組み合わせでも複数のエッジを持たせたり、始点と終点が同じノードになる自己エッジを持たせたりできる。
従来の行と列で構成される表形式のリレーショナルデータベースでは、要素間の複雑な関連を表現する際に複数の表を結合する処理が必要となり、関連が深くなるほど処理負荷が高まりやすい。これに対し、プロパティグラフではデータ同士の結びつき自体が直接保存されるため、複雑に絡み合ったネットワーク状のデータを高速に検索・追跡できる。ある対象から別の対象までの経路や、複数段階にわたる関係を順にたどって調べる処理は「グラフ探索」と呼ばれる。
プロパティグラフは、SNSの利用者間の関係分析や商品の推薦、金融取引、不正行為の検出、Webページ間のリンク、物流ネットワークなど、要素間のつながり自体が重要な意味を持つ分野で活用されている。代表的なグラフデータベース管理システム(GDBMS)の一つである「Neo4j」もこのモデルを採用しており、ノードとリレーションシップ、ラベル、プロパティを組み合わせてデータを表現する。近年では標準的な問い合わせ言語である「GQL」(Graph Query Language)や、SQLにグラフ操作を組み合わせた「SQL/PGQ」(SQL Property Graph Queries)といった仕様の整備も進んでいる。