NoSQL

NoSQL (Not Only SQL)

NoSQLとは

NoSQL(Not Only SQL)とは、リレーショナルデータベース(RDB)とは異なるデータモデルを採用するデータベースの総称です。大量のデータを高速に処理し、柔軟なスキーマでデータを格納できることが特徴で、ビッグデータやリアルタイムWebアプリケーションの要求に応えるために発展しました。

表:NoSQLの要点まとめ
ひとことで言うと表形式にこだわらない、柔軟な構造のデータベースの総称。
主な種類文書型(MongoDB)、キー値型(Redis)、列指向、グラフ型(Neo4j)。
注意点複雑な結合や厳密な整合性が必要な業務には、従来のRDBが向く。

NoSQLの種類

NoSQLデータベースは主に4つのカテゴリに分類されます。キーバリュー型(Redis、DynamoDB:高速な読み書き)、ドキュメント型(MongoDB、Couchbase:JSON形式のドキュメント格納)、カラムファミリー型(Cassandra、HBase:大規模データの高速処理)、グラフ型(Neo4j:ノードとエッジの関係性管理)です。

図:RDBとNoSQLの使い分け
1構造が決まっている会計・在庫→RDB
▶
2構造が変わりやすいログ・IoT→NoSQL
▶
3大量・高速が必要水平分散しやすい
▶
4併用も一般的用途で使い分ける

NoSQLの特徴

NoSQLの主な利点は、水平スケーラビリティ(ノード追加によるスケールアウト)、柔軟なスキーマ(スキーマレスまたはスキーマフレキシブル)、高可用性、大量データの高速処理です。一方、トランザクションの一貫性(ACID特性)やJOIN操作ではRDBに劣る場合があります。

RDBとの使い分け

トランザクションの厳密な一貫性が求められる業務システムにはRDB、大量データの柔軟な格納やリアルタイム処理にはNoSQLが適しています。近年ではNewSQLと呼ばれる、RDBの一貫性とNoSQLのスケーラビリティを両立するデータベースも登場しています。