本文へスキップ
BecomeCoder

Neo4jコース · 第1章 グラフデータベースとは · レッスン2

プロパティグラフモデル ― ノード・ラベル・リレーションシップ・プロパティ

ローカル実施

導入

Neo4jが採用しているグラフの表現方法を プロパティグラフモデル と呼びます。ノードとリレーションシップという2つの要素に加えて、「ラベル」と「プロパティ」という2つの付加情報を組み合わせることで、現実世界のデータを柔軟かつ正確に表現します。

説明

プロパティグラフモデルは、次の4つの要素からできています。

要素意味例
ノード(Node)データの実体(点)人物・映画・会社
ラベル(Label)ノードの種類を表す分類名:Person、:Movie
リレーションシップ(Relationship)ノード同士のつながり(線・必ず向きを持つ):KNOWS、:ACTED_IN
プロパティ(Property)ノードやリレーションシップが持つ属性(key: value)name: 'Alice'、since: 2020

図で表すと、次のようになります。

graph LR
    A["(:Person)<br/>name: 'Alice'<br/>born: 1990"] -- "KNOWS<br/>since: 2020" --> B["(:Person)<br/>name: 'Bob'<br/>born: 1988"]

ここでのポイントは、プロパティはノードだけでなくリレーションシップにも付けられることです。「いつから知り合いか(since)」のような、関係そのものにまつわる情報を関係の側に持たせられるのは、グラフデータベースならではの表現力です(第7章で詳しく扱います)。

Neo4jでは、命名の慣習として次のルールがよく使われます。

  • ラベルは PascalCase(先頭大文字の単語をつなげる)… :Person、:Movie
  • リレーションシップの種類は UPPER_SNAKE_CASE(大文字とアンダースコア)… :KNOWS、:ACTED_IN
  • プロパティ名は camelCase(先頭小文字)… name、releaseYear

この慣習に沿って書くと、Cypherのクエリが「ノードは丸括弧・関係は角括弧で大文字」と見た目でひと目で区別できるようになります。

次のレッスンへ →