図解!目的別に使い分けるNoSQLの分類と代表的なデータベース【基本情報】

  • LINEで送る
目的別に使い分けるNoSQLの分類

NoSQL(Not Only SQL)とはSQLを使わないで操作するデータベース全般のこと指す.データベースの構造が容易に変更でき,データの増加に柔軟に対応できる.しかしデータの正規化や表同士の結合,集計や検索は不時としているため,目的別に使い分ける必要がある.

NoSQLの分類

単にNoSQLと言ってもさまざまな使用方法があり,それに応じて分類ができる.

キーバリューストア型

最もシンプルな形で,キーとバリューだけのNoSQL.キーに対して1つのバリューがつくため,バリューの中身はレコードごとに異なっていても問題ない.構造が非常にシンプルなため,高速に処理できメモリ容量も少なく済む.キーのみで検索するため検索性能は低い.

キーバリューストア型のNoSQLはキャッシュサーバ等に使用され,代表的なものにRedisがある.Redisはキーバリュー形式で全てのデータを格納するため,キーでの検索が非常に高速にできる.

redisの詳細は下記サイトを参照

Redisとは?人気高まるデータベースの特徴と使い方を解説!

https://and-engineer.com/articles/YeirURAAAJMQQr8s

カラム指向型

キーバリューストア型のバリューにカラムが追加されたデータベース.このカラムは自由に追加ができる.全てのカラムに値が入っている必要はないため,データベースの自由度が高い.

カラム指向型の例としてcassandraがある.cassandraはキーバリューストア形式のNoSQLのDBですが,バリューの中に複数のカラムがあり,Wide Column Store形式になっている.詳しくは下記サイトを参照.

NoSQLデータベースCassandraの紹介 〜 ヤフーのデータ基盤を支える技術

https://tamotech.blog/wp-admin/post.php?post=1504&action=edit

ドキュメント指向型

1つのキーに1つのバリューが紐づいており,バリューはドキュメントの形式になっている.バリューはJSON形式やXML形式で表現される.このバリューは複雑な構造を持つことができ,さまざまなデータを保存することができる.またスケールアウトしやすい特徴がある.

ドキュメント指向型のNoSQLの代表例としてMongoDBがある.MongoDBではJSON形式のデータを扱うことができ,保存するデータのドキュメントを柔軟に変更できる.

Node.jsでMongoDBへ接続する方法と基本操作は下記記事を参考.

グラフ指向型

グラフ理論に基づいて,ノード間の方向性のあるリレーションで繋いで構造化するデータベースの方式.グラフ指向型はは以下の3つの概念で表現できる.

概念説明
ノード接点や頂点のことを指し,下記の図で言うところのuserが該当する.
ノードはそれぞれにプロパティを所持している.
ノードからエッジを介してリレーションを表現する
プロパティノードの属性情報
エッジノード間の関係性(リレーション)を表現する.
方向とタイプを表現する.
※タイプとはtwitterでいうところの「Follow」または「いいね」等

下記の図はtwitter等のSNSの関係性の簡略図.それぞれのユーザが相互にフォローするような関係の時,ユーザ(ノード)とリレーション(エッジ)が指定されると,そのユーザと関係性がある特定のユーザを一意に取得することができる.

グラフ指向型の代表例としてAmazon Neptuneがある.Amazon Neptuneの詳細は下記サイトを参照

グラフデータベースとは?

https://aws.amazon.com/jp/nosql/graph/

最新の投稿

SNSでもご購読できます。

コメントを残す