skydum

個人的な作業記録とか備忘録代わりのメモ

NoSQLの種類

NoSQL(非リレーショナル・データベース)

RDBMS(MYSQL)はよく使うがNoSQLはRedisぐらいしか使ったことがない為、使ってみたいなと思い調べてみた。

NoSQLとは

一般的なデータベースはプライマリキーがあり、外部キーの制約でリレーションを構築してデータベースを構成し、 データを入れる際にはデータを入れるカラムにデータの方に応じた型を定義した後データを投入する。
NoSQLの場合はNoSQLのタイプにもよるが構造化されていないようなデータ(テキスト、動画、音声)や、半構造化データ(JSONXML等)のデータをそのまま投入可能。

最近はNoSQLでもSQLのような物が使えるものも出てきたが一般的にはSQLを使った複雑なクエリの実行などができない変わりに処理が軽いため大量のデータを登録、分析、検索するような用途に向いている。

NoSQLの種類

キーバリューストア型

有名なプロダクト

特徴

  • あるキーに対応する値のペアを登録できる
  • 水平スケーリングがやりやすい

ドキュメント型

有名なプロダクト

  • MongoDB

特徴

  • キーバリューストア型とは違いキーに対応するバリューではなく半構造化データのJSON, XMLなどのデータを格納する
  • 階層構造を持つデータを保存できるのでアプリケーションのニーズに合わせて拡張することが容易

グラフ型

有名なプロダクト

  • Neo4j, Neptune

特徴

  • データとデータのつながりをデータベースとして管理ができる
  • SNSのユーザー同士のフォロー、フォロワーの関係や、ネットワーク機器同士のつながりの様なデータのつながりを保存する

ワイドカラムストア型

有名なプロダクト

  • Cassandra, Hbase

特徴