NoSQLとは何か、また、NoSQLとリレーショナルデータベースの違いについてまとめます。
NoSQLとは
NoSQLとは、「No Only SQL」の略称で、リレーショナルデータベース(RDB)以外のデータベースの総称を示します。
SQLは、RDBを扱う際に用いられるデータベース言語です。
NoSQLとして代表的なサービスとしては、Amazonの「Amazon DynamoDB」、Googleの「BigTable」などがあります。
RDB以外のデータベースであるNoSQLの種類は、大きく4種類に区別できます。
キーバリュー型
キーバリュー型は、データを識別するための「キー」と、「キー」に対応する「バリュー」で構成されるデータベースの種類です。
キーバリュー型はシンプルな構造であるため、データを高速で処理できます。
代表的なデータベースは「Redis」です。
カラム指向型
カラム指向型は、キーバリュー型に列(カラム)が追加されたデータベースの種類です。
キーごとにカラムが追加でき、カラム方向にデータを処理できるので、任意のカラムをまとめて処理できます。
代表的なデータベースは「BigTable」や「Apache HBase」です。
ドキュメント型
ドキュメント型は、ドキュメント形式の複雑なデータをそのまま扱うことができるデータベースの種類です。
JSONやXMLなどのドキュメントをデータとして管理することができます。
代表的なデータベースは、「MongoDB」です。
グラフ型
グラフ型は、ノード、エッジ、プロパティという3つの要素でデータの関係性を表現するデータベースの種類です。
グラフ型のデータベースは、データの関係性が複雑な場合でも、高速に検索できます。
代表的なデータベースは、「Neo4j」です。
NoSQLとRDBの違い
NoSQLはRDB以外のデータベースを示すので、両者は大きく性質が異なります。
RDBでは、データの一貫性や検索性に優れています。
一方、データが大規模になると処理速度が遅くなるなどのデメリットがあります。
NoSQLでは、データの処理速度が早く、分散性や拡張性に優れています。
一方、データの一貫性が保証されておらず、頻繁にデータの更新が発生するとデータの生合成が保証されないデメリットがあります。
そのため、データの特性に合わせて、RDBかNoSQLか選ぶ必要があります。