NoSQL
NoSQLは非リレーショナルデータベースの総称である。ドキュメント、キー・バリュー、カラムファミリー、グラフの各モデルを含み、スケーラビリティと柔軟なスキーマのために設計されている。
目的
大量データ、柔軟なスキーマ、水平スケーリングにおけるリレーショナルデータベースの限界に対処する。
メカニズム
4つの主要タイプがある:ドキュメント型(MongoDB、JSONドキュメント)、キー・バリュー型(Redis、シンプルで高速)、カラムファミリー型(Cassandra、幅の広い疎な行)、グラフ型(Neo4j、関係が密)。ACIDの一部をBASEな結果整合性と水平スケーリングと交換する。固定スキーマはない(または柔軟なスキーマである)。
ユースケース
- 大規模データの水平スケーリング
- 柔軟なスキーマ
- キャッシュとセッション
- ソーシャルグラフとレコメンド
例
- 入力
db.users.insert({name:"Ada",tags:[...]})OutputNo fixed schemaDocument store
よくあるエラー
- Assuming NoSQL needs no data modeling
- Document structure and indexes still need design
関連用語
SQL
SQL(Structured Query Language)はリレーショナルデータベースの標準クエリ言語で、データを宣言的に定義・操作します(DDL/DML/DQL/DCL)。 用語集
ACID
ACID はリレーショナルトランザクションの四性質:原子性(全実行または全ロールバック)、一貫性(制約保持)、隔離性(並行互不干渉)、永続性(コミット後不消失)。 用語集
BASE
BASE は弱い一貫性の NoSQL モデルであり、基本的に利用可能・ソフト状態・結果整合性で、強い一貫性を可用性とスケーラビリティと引き換えにする。 用語集
CAP Theorem
CAP 定理とは、ネットワーク分断が発生した場合、分散システムは一貫性 (C) と可用性 (A) のどちらか一方しか満たせず、3 つを同時に成立させることはできないという定理である。 用語集