回答:
キーと値のストアは、できるだけ簡単なデータモデルを提供し、その名前が示唆する、まさにです:店舗の値はキーによってインデックス付けすることをストレージシステムです。キーによるクエリに制限されており、値は不透明で、ストアは何も認識していませんそれらについて。これにより、非常に高速な読み取りおよび書き込み操作(単純なディスクアクセス)が可能になり、このモデルは一種の不揮発性キャッシュ(つまり、長期間のデータへのキーによる高速アクセスが必要な場合に適しています)と考えています。
ドキュメント指向データベースは、以前のモデルを拡張し、値がに格納されている構造化データベースが理解できる(したがって、その名前、ドキュメント)フォーマット。たとえば、ドキュメントはブログ投稿であり、コメントとタグは非正規化された方法で保存されます。データは透過的であるため、ストアはより多くの作業(ドキュメントのフィールドのインデックス作成など)を実行でき、キーによるクエリに限定されません。私がほのめかしたように、そのようなデータベースは単一のクエリでページ全体のデータをフェッチすることを可能にし、コンテンツ指向のアプリケーション(FacebookやAmazonのような大きなサイトがそれらを好む理由です)に適しています。
その他の種類のNoSQLデータベースには、列指向のストア、グラフデータベース、さらにはオブジェクトデータベースが含まれます。しかし、これは問題を超えています。
さて、私はこの1か月ほど、自分でNoSQLを調査してきました。私はそれは一般的に次のように述べることができると思います
ドキュメント指向のデータベース、またはドキュメントストアは、半構造化データであるドキュメント指向の情報を格納、取得、および管理するためのものです。キー値ストアは、ドキュメント指向のデータベースを継承しています。違いは、データの処理方法にあります。Key-Valueストアでは、データはデータベースに対して本質的に不透明であると見なされますが、ドキュメント指向のシステムは、データベースエンジンがさらに最適化するために使用するメタデータを抽出するためにドキュメントの内部構造に依存します。
MOngoDbとCassandraの違いについて説明します。MongoDBはリレーショナルデータベースのように機能します。そのデータモデルは、最上位レベルのデータベース、MySQLのテーブルのようなコレクション(たとえば)、次にMySQLの行のようなコレクション内に含まれるドキュメントで構成されます。各ドキュメントにはフィールドと値があり、これはMySQLの列と値に似ています。フィールドは、単純なキー/値にすることができます(例:{'name': 'David Mytton'})。ただし、他のドキュメントを含めることもできます(例:{'name':{'first':David、 'last': 'Mytton'}})。Cassandraでは、ドキュメントは「列」と呼ばれ、実際には単一のキーと値にすぎません。例:{'key': 'name'、 'value': 'David Mytton'}。内部レプリケーションと一貫性のためのタイムスタンプフィールドもあります。値は単一の値にすることも、別の「列」を含めることもできます。これらの列は列ファミリー内に存在し、キーによって参照される列の特定の値に基づいてデータを順序付けします。
しかし、トップレベルには、MongoDBデータベースに似たキースペースがあります。