Neo4jとは
NoSQLとは?
Neo4jはNoSQLのDBMSです。
データベースというと、リレーショナルデータベース(RDB)が一般的ですが、RDBでないデータベースが2000年ごろから広がり始めました。そうした「RDBではないデータベース」をNoSQLと言います。RDBと区別するために、それ以外のデータベースを総称して使われています。
ちなみにNoSQLは「Not Only SQL」の略です。
つまり、「RDBはもう不要!これからはNOSQLだけあればいい!」ということではなく、「RDBだけではなくて、新しいデータベースも利用する必要がある」という背景があります。
※RDBを操作するための言語をSQLと言います。
NoSQLの種類
NoSQLは下記4つに分類されることが一般的です。
1. キー・バリュー型
「キー」と「バリュー」という組み合わせから作られるシンプルなモデル。
RDBのようにテーブルや関係性を定義する必要がない。
代表例:Redis、Amazon DynamoDB
2. 列指向型(カラム指向型)
キー・バリュー型を高度にしたモデル。
キーが1つのバリューと対になるのではなく、キーが複数のカラム(列)を持つことができる。
代表例:GoogleBigTable、Cassandra
3. ドキュメント型
JSONやXMLをそのままドキュメントの形でデータを管理するモデル。
複雑な階層構造のデータをそのまま1レコードにできる。
代表例:MongoDB
4. グラフ型
数学のグラフ理論に基づいた「ノード(主要なデータの要素)」、「エッジ(関係性)」、「プロパティ(属性情報)」から構成されるモデル。
SQLではJOINが複雑になるほど速度が遅くなるが、グラフ型では関係性が複雑であっても速度が速い。
代表例:Neo4j、TigerGraph
Neo4jとは
下記4つで構成されるデータモデル
1. ノード
2. リレーションシップ
3. プロパティ
4. ラベル
参考
NOSQLの基礎知識
【図解】NoSQLとは?注目される背景や種類をわかりやすく解説
NoSQLとは?メリットやRDBMSとの違いについてわかりやすく解説
Neo4jドキュメント
Discussion