Respostas:
Um armazenamento de valor-chave fornece o modelo de dados mais simples possível e é exatamente o que o nome sugere: é um sistema de armazenamento que armazena valores indexados por uma chave. Você está limitado à consulta por chave e os valores são opacos , a loja não sabe nada sobre eles. Isso permite operações de leitura e gravação muito rápidas (um acesso simples ao disco) e vejo esse modelo como uma espécie de cache não volátil (ou seja, bem adequado se você precisa de acessos rápidos por chave para dados de longa duração).
Um banco de dados orientado a documentos estende o modelo anterior e os valores são armazenados em um formato estruturado (um documento, daí o nome) que o banco de dados pode entender. Por exemplo, um documento pode ser uma postagem de blog e os comentários e as tags armazenados de forma não normalizada. Como os dados são transparentes , a loja pode fazer mais trabalho (como campos de indexação do documento) e você não está limitado à consulta por chave. Como sugeri, esses bancos de dados permitem buscar os dados de uma página inteira com uma única consulta e são adequados para aplicativos orientados a conteúdo (é por isso que grandes sites como Facebook ou Amazon gostam deles).
Outros tipos de bancos de dados NoSQL incluem armazenamentos orientados a colunas , bancos de dados gráficos e até bancos de dados de objetos . Mas isso vai além da questão.
Bem, estive investigando o NoSQL por conta própria no mês passado. Eu acho que geralmente poderia ser declarado algo como
Um banco de dados orientado a documentos, ou armazenamento de documentos, serve para armazenar, recuperar e gerenciar informações orientadas a documentos, que são dados semiestruturados. O armazenamento de valores-chave é herdado do banco de dados Orientado a Documentos. A diferença está na forma como os dados são processados; em um armazenamento de valor-chave, os dados são considerados inerentemente opacos para o banco de dados, enquanto um sistema orientado a documentos depende da estrutura interna do documento para extrair metadados que o mecanismo de banco de dados usa para otimização posterior.
Se tratarmos da diferença entre MOngoDb e Cassandra. O MongoDB atua como um banco de dados relacional. Seu modelo de dados consiste em um banco de dados no nível superior, em seguida, coleções que são como tabelas no MySQL (por exemplo) e, em seguida, documentos que estão contidos na coleção, como linhas no MySQL. Cada documento possui um campo e um valor semelhante a colunas e valores no MySQL. Os campos podem ser chave / valor simples, por exemplo, {'nome': 'David Mytton'}, mas também podem conter outros documentos, por exemplo, {'nome': {'primeiro': David, 'último': 'Mytton'}}. No Cassandra, os documentos são conhecidos como “colunas”, que são, na verdade, apenas uma única chave e valor. por exemplo, {'chave': 'nome', 'valor': 'David Mytton'}. Há também um campo de carimbo de data / hora para replicação interna e consistência. O valor pode ser um único valor, mas também pode conter outra “coluna”. Essas colunas existem em famílias de colunas que ordenam os dados com base em um valor específico nas colunas, referenciado por uma chave.
Mas, no nível superior, há um keyspace, que é semelhante ao banco de dados MongoDB.