1. Neo4jとは
- NoSQLのグラフ型データベース。データをノード(nodes)とエッジ(relationships)によるグラフ構造で表現する。
- Javaで開発され、オープンソースとして提供されている。
- 2000年ごろ、スウェーデンで開発された。後に本社をシリコンバレーに移転した。
- 「Cypher」と呼ばれる専用のクエリ言語を使用する。ノードや関係に対するクエリを直感的に記述できる。
- トランザクション処理をサポートしており、データの一貫性(整合性)を確保できる。
2. Neo4jの導入
Neo4jとJDKを各々ダウンロードし、インストールする。
<JAVAのパス設定>
(1) スタートメニューから 「Windowsシステムツール」→「コントロールパネル」を開く
(2)「システムとセキュリティ」→「システム」→「システム詳細設定」→「環境変数」を開く
(3)「システム環境変数」で下記のように登録
変数名: JAVA_HOME
変数値: C:\Java\jdk-11.0.2
(4)「Path」を選んで、次のように登録
%JAVA_HOME%\bin
3. Neo4jの起動
Neo4j Desktopをダブルクリックして起動する。
4. Neo4j 新規プロジェクトの作成
(1) Neo4jのGUI画面から、Project → Add → Local DBMS をクリックする。
(2) プロジェクトの名前(name)とパスワード(password)を設定し、「Create」をクリックする。
(3) 作成したプロジェクトを選択し、「start」をクリックすると、neo4j browserが起動する。
5. Neo4jのコマンド
5-1. ノードとリレーションシップの作成
■ ノード
- ノードは、ラベルとプロパティで構成される。ラベルはノードの名前、プロパティはノードの属性情報を示す。
- ノードは括弧 () で表し、コロン(:)の前の文字列を変数、コロン(:)の後の文字列をラベルという。
- プロパティは、()内の{}で表す。
■ リレーションシップ
- リレーションは、ノードと同様に、ラベルとプロパティで構成される。
- リレーションは、角括弧 [] で表わし、リレーションの方向を -、->、<- で表現することができる。
例1)ノードの作成
ラベルが "User"、プロパティが "name" と "age" を持つノードを作成する。
変数 u1:name が「太郎」、age が「25歳」
変数 u2:name が「花子」、age が「27歳」
例2)リレーションシップの作成
変数 r1:u1は、u2とfriendの関係
変数 r2:u2は、u1とfriendの関係
CREATE (u1:User {name:"taro", age:25})
CREATE (u2:User {name:"hanako", age:27})
CREATE (u3:User {name:"jiro", age:23})
CREATE (u1)-[r1:friend]->(u2)
CREATE (u1)<-[r2:friend]-(u2)
CREATE (u1)-[r3:brother]->(u3)
CREATE (u1)<-[r4:brother]-(u3)
RETURN u1,u2,u3,r1,r2,r3,r4
5-2. ノードとリレーションシップの検索
例1)'taro'という名前の User ノードとそのfriendリレーションシップを検索する。
MATCH (p1:User)-[:friend]->(p2:User) WHERE p1.name='taro'
RETURN p1,p2
例2:'taro'という名前の User ノードとそのbrotherリレーションシップを検索する。
MATCH (p1:User)-[:brother]->(p2:User) WHERE p1.name='tarp'
RETURN p1,p2
例3:ageが25歳以上のUserを検索する。
MATCH (p1:User)
WHERE p1.age > 25
RETURN p1
5-3. ノードのプロパティの更新
MATCH (p1:User {name:'taro'})
SET p1.age = 30
RETURN p1
5-4. ノードとリレーションを全て削除する
MATCH (p1) DETACH DELETE p1
以上