:play concepts
というコマンドを叩いた際に出力されるドキュメントの翻訳です。
GraphDB 101
グラフデータベースはいくつかのシンプルなコンセプトを使って
どんな種類のデータも格納できます。
- Nodes(ノード) グラフデータのレコード
- Relationships(関係) ノード同士をつなげる
- Properties(プロパティ) 名前が付けられたデータの値(key-value)
グラフデータベース
Neo4jはNodeと呼ばれるレコードを使ってGraphにデータを格納します。
最も単純なグラフはただ1つのノードを持ち、Propertyと呼ばれるいくつかの
名前付きの値を持ちます。
Neo4jチーム内のソーシャルグラフを描いてみましょう。
- ノードのために円を描きます
- name=Emilを追加します。
- Sweden出身であることを記述します。
- ノードはグラフ内のデータレコードの名前です。
- データはプロパティとして格納されます。
- プロパティはシンプルなname/valueのペアです。
Labels
ノードのセットを結びつけます。
ノードはそれぞれのメンバーに対してラベルを付けることにより
一緒のグループにすることができます。我々のソーシャルグラフ内では
それぞれのノードをPersonとしてラベル付けします。
- 生成したEmilノードに対し、"Person"とラベルを付けます
- "Person"ノードは赤で表すことにします。
- ノードは0以上のラベルを持つことができます。
- ラベルはプロパティを持ちません。
More Nodes
任意のデータベースと同様に、Neo4j内にデータを格納することはより多くのレコードの追加と同じくらいに簡単です。我々はいくつかのノードを追加します。
- Emiは99のスコアを持ちます
- JohanはSweden出身でsurfを勉強しています。
- lanはEngland出身で、編集者です。
- Rikはベルギー出身で、Orvalという猫を買っています。
- Allisonはカリフォルニア出身のサーファーです。
- 似たノードは異なるプロパティを持つことができます。
- プロパティは文字列、数値、bool値が設定できます。
- Neo4jは数十億のノードを格納できます。
Consider Relationships
Neo4jの本当の力はデータの接続です。任意の2つのノードを関連付け、関係性を定義した上でRelationshipを追加します。
我々のソーシャルグラフ内ではシンプルにKNOWS(知人)と呼ぶことにします。
- EmilはJohanとlanを知っています。
- JohanはlanとRikを知っています。
- RikとlanはAllisonを知っています。
- Relationshipは常に直線を持ちますです。
- Relationshipは常にタイプを持ちます。
- Relationshipはデータのパターンからなります。