コンテンツへスキップ
uencoder

NoSQL

NoSQLは非リレーショナルデータベースの総称である。ドキュメント、キー・バリュー、カラムファミリー、グラフの各モデルを含み、スケーラビリティと柔軟なスキーマのために設計されている。

目的

大量データ、柔軟なスキーマ、水平スケーリングにおけるリレーショナルデータベースの限界に対処する。

メカニズム

4つの主要タイプがある:ドキュメント型(MongoDB、JSONドキュメント)、キー・バリュー型(Redis、シンプルで高速)、カラムファミリー型(Cassandra、幅の広い疎な行)、グラフ型(Neo4j、関係が密)。ACIDの一部をBASEな結果整合性と水平スケーリングと交換する。固定スキーマはない(または柔軟なスキーマである)。

ユースケース

  • 大規模データの水平スケーリング
  • 柔軟なスキーマ
  • キャッシュとセッション
  • ソーシャルグラフとレコメンド

例

  • 入力
    db.users.insert({name:"Ada",tags:[...]})
    Output
    No fixed schema

    Document store

よくあるエラー

Assuming NoSQL needs no data modeling
Document structure and indexes still need design

関連用語

References