NoSQLとは
NoSQL(Not Only SQL)とは、リレーショナルデータベース(RDB)とは異なるデータモデルを採用するデータベースの総称です。大量のデータを高速に処理し、柔軟なスキーマでデータを格納できることが特徴で、ビッグデータやリアルタイムWebアプリケーションの要求に応えるために発展しました。
| ひとことで言うと | 表形式にこだわらない、柔軟な構造のデータベースの総称。 |
|---|---|
| 主な種類 | 文書型(MongoDB)、キー値型(Redis)、列指向、グラフ型(Neo4j)。 |
| 注意点 | 複雑な結合や厳密な整合性が必要な業務には、従来のRDBが向く。 |
NoSQLの種類
NoSQLデータベースは主に4つのカテゴリに分類されます。キーバリュー型(Redis、DynamoDB:高速な読み書き)、ドキュメント型(MongoDB、Couchbase:JSON形式のドキュメント格納)、カラムファミリー型(Cassandra、HBase:大規模データの高速処理)、グラフ型(Neo4j:ノードとエッジの関係性管理)です。
1構造が決まっている会計・在庫→RDB
▶
2構造が変わりやすいログ・IoT→NoSQL
▶
3大量・高速が必要水平分散しやすい
▶
4併用も一般的用途で使い分ける
NoSQLの特徴
NoSQLの主な利点は、水平スケーラビリティ(ノード追加によるスケールアウト)、柔軟なスキーマ(スキーマレスまたはスキーマフレキシブル)、高可用性、大量データの高速処理です。一方、トランザクションの一貫性(ACID特性)やJOIN操作ではRDBに劣る場合があります。
RDBとの使い分け
トランザクションの厳密な一貫性が求められる業務システムにはRDB、大量データの柔軟な格納やリアルタイム処理にはNoSQLが適しています。近年ではNewSQLと呼ばれる、RDBの一貫性とNoSQLのスケーラビリティを両立するデータベースも登場しています。