SDN
← 概念一覧へ
データベース

NoSQL

NoSQL

リレーショナルでない4種(key-value / document / wide-column / graph)の総称。データは非正規化され、JOINはアプリで行う。多くは厳密なACIDより可用性・結果整合性(BASE)を優先する。

キーポイント
  • 4タイプ: key-value store、document store、wide-column store、graph database。
  • データは非正規化されており、JOINはアプリケーションのコードで行う。
  • 多くは真のACIDを持たず、結果整合性(eventual consistency)を好む。
  • BASE = Basically available(基本的に使える)、Soft state(入力なしでも状態が変化しうる)、Eventual consistency(最終的に整合)。CAPに対し可用性を一貫性より優先する考え方。
トレードオフ

NoSQLは柔軟なスキーマ・高いスループット・容易な水平スケールが強み。一方、ACIDトランザクションや複雑なJOINを欠く(または弱い)ため、整合性が重要な処理や複雑な関係クエリには不向き。『何でもNoSQL』ではなく、用途に応じてSQLと使い分ける。

ACID(SQL) vs BASE(NoSQL)

NoSQLの思想を理解する鍵が、ACIDの対比概念 BASE です。

  • ACID(SQLの世界): 厳密。常に正しい状態を保証する。その代わり融通が利かず、スケールしづらい。
  • BASE(NoSQLの世界): ゆるい。多少の一時的な不整合は許す代わりに、止まらず・スケールしやすい。

BASEの中身:

文字意味かみ砕くと
Basically Available基本的に使えるとにかく応答は返す(可用性優先)
Soft state柔らかい状態入力がなくても裏で状態が変わりうる(伝播中など)
Eventual consistency結果整合性今は食い違っても、最終的には揃う

BASEはCAP定理でいうAP寄り、つまり一貫性より可用性を優先する立場です。

図を描画中...

4タイプの早見

タイプデータの抽象得意なこと
key-valueハッシュテーブル超高速な単純読み書き
document値がドキュメント(JSON等)柔軟な構造のデータ
wide-columnネストしたマップ超大規模・高可用
graphグラフ(ノードと関係)複雑な関係(SNS等)

各タイプは個別コンセプトで詳しく扱います。

つまずきポイント

  • 『NoSQL = SQLより新しくて優れている』ではない。得意分野が違うだけ。整合性が命の決済にNoSQLは不向き。
  • JOINがない(弱い)ので、SQLなら1クエリだったものをアプリ側で複数回問い合わせて組み立てる必要がある。その複雑さがアプリ層に移る。
  • 『非正規化が前提』なので、同じデータを複数箇所に持つ設計になりやすく、整合性は自分で気をつける。

📊 図解

図解: NoSQL 4タイプの分類

4タイプ(key-value / document / wide-column / graph)を、抽象モデル・用途・代表例で整理したマインドマップ。

図を描画中...

関連する概念

この概念で腕試し

関連する 10 問のクイズに挑戦できます。

クイズを解く