NoSQL

非リレーショナルデータベース

NoSQLは柔軟なスキーマ水平スケーラビリティを特徴とする データベース。用途に応じた様々なデータモデルがあり、大規模データや高速アクセスに適しています。

NoSQLの種類

タイプ代表例ユースケース特徴
Key-ValueRedis, Memcached, DynamoDBキャッシュ、セッション超高速、シンプル
DocumentMongoDB, CouchbaseCMS、カタログ柔軟なスキーマ
Wide ColumnCassandra, HBase時系列、IoT、ログ大規模分散
GraphNeo4j, NeptuneSNS、レコメンド関係性の表現

CAP定理

分散システムは以下の3つのうち、同時に2つまでしか満たせない

C - Consistency

全ノードが同じデータを見る

A - Availability

常にレスポンスを返す

P - Partition Tolerance

ネットワーク分断でも動作

CP(一貫性 + 分断耐性)

MongoDB, HBase, Redis Cluster
分断時は一部ノードが応答不可になる

AP(可用性 + 分断耐性)

Cassandra, DynamoDB, CouchDB
結果整合性を許容、常に応答

BASE特性

ACIDの対となる概念。可用性とスケーラビリティを優先。

BA - Basically Available

基本的に常に利用可能

S - Soft State

状態は時間とともに変化しうる

E - Eventually Consistent

最終的に一貫性が保たれる

選定基準

RDBMS を選ぶ場合

トランザクションが重要、複雑なJOIN、データ整合性が最優先

NoSQL を選ぶ場合

大規模データ、高速読み書き、柔軟なスキーマ、水平スケール

ポリグロット永続化

用途に応じて複数のDBを組み合わせる(RDBMS + Redis + Elasticsearch等)

主要プロダクト