Armazenamentos de Dados NoSQL
Armazenamentos de dados NoSQL são bancos de dados não relacionais — chave-valor, documento, coluna larga e grafo — que adotam modelos de dados flexíveis e estratégias de distribuição para escalar horizontalmente e permanecer disponíveis, à custa de algumas garantias relacionais.
Definition
Um armazenamento de dados NoSQL é um banco de dados que se afasta do modelo relacional, organizando os dados como pares chave-valor, documentos, colunas esparsas largas ou grafos, e tipicamente os distribuindo por um cluster com replicação e consistência relaxada para alcançar escalabilidade e disponibilidade.
Scope
Este tópico abrange as principais categorias de sistemas NoSQL e seus modelos de dados: armazenamentos chave-valor para buscas simples, armazenamentos de documentos para registros aninhados, armazenamentos de coluna larga para tabelas esparsas e grandes, e bancos de dados de grafo para dados altamente conectados. Ele aborda as escolhas de design comuns a esses sistemas — fragmentação (sharding), replicação e consistência ajustável — e os padrões de acesso que cada modelo atende. Exclui a teoria de consistência ampla (CAP e modelos de consistência) e frameworks de processamento, que são tópicos adjacentes.
Core questions
- Qual modelo de dados cada categoria NoSQL (chave-valor, documento, coluna larga, grafo) oferece?
- Quais padrões de acesso e cargas de trabalho se adequam a cada categoria?
- Como os armazenamentos NoSQL fragmentam e replicam dados para escala e disponibilidade?
- Quais recursos relacionais (junções, transações, esquemas) eles relaxam e por quê?
- Como as configurações de consistência ajustável permitem que as aplicações equilibrem latência e atualidade?
Key concepts
- armazenamento chave-valor
- armazenamento de documentos
- armazenamento de coluna larga
- banco de dados de grafo
- fragmentação e replicação
- consistência ajustável
- flexibilidade de esquema
- padrões de acesso desnormalizados
Key theories
- Modelos chave-valor e de coluna larga
- Armazenamentos chave-valor mapeiam chaves opacas para valores para buscas simples e rápidas, enquanto armazenamentos de coluna larga organizam dados em linhas com famílias de colunas flexíveis e esparsas; ambos, exemplificados por Dynamo e Bigtable, escalam para grandes clusters com fragmentação e replicação.
- Modelos de documento e grafo
- Armazenamentos de documentos contêm registros aninhados autodescritivos (frequentemente JSON) e suportam consultas sobre sua estrutura, enquanto bancos de dados de grafo modelam entidades e relacionamentos como nós e arestas otimizados para a travessia de dados altamente conectados.
- Garantias relaxadas para escala
- Para escalar horizontalmente e permanecer disponíveis, muitos armazenamentos NoSQL relaxam esquemas, abandonam transações multi-linha e junções, e oferecem consistência ajustável ou eventual, transferindo parte da responsabilidade pela integridade para a aplicação.
Clinical relevance
Os armazenamentos NoSQL são blocos de construção amplamente utilizados em serviços de internet: armazenamentos chave-valor e de coluna larga suportam estados de sessão, catálogos e dados de séries temporais em escala massiva; armazenamentos de documentos se adequam a dados de aplicações flexíveis; e bancos de dados de grafo impulsionam sistemas de recomendação e detecção de fraudes, tornando o conhecimento de seus modelos essencial para a engenharia de dados.
History
O movimento NoSQL surgiu da necessidade das empresas de internet de escalar além dos bancos de dados relacionais de nó único. O Bigtable do Google (2006/2008) introduziu o modelo de coluna larga e o Dynamo da Amazon (2007) o modelo chave-valor altamente disponível e eventualmente consistente; esses designs influentes geraram uma geração de bancos de dados chave-valor, documento, coluna larga e grafo de código aberto no final dos anos 2000 e 2010.
Key figures
- Werner Vogels
- Jeffrey Dean
- Sanjay Ghemawat
Related topics
Seminal works
- decandia2007
- chang2008
Frequently asked questions
- Como escolho entre armazenamentos chave-valor, documento, coluna larga e grafo?
- Combine o modelo com o padrão de acesso: chave-valor para buscas simples por uma chave conhecida; documento para registros aninhados e autocontidos consultados por seus campos; coluna larga para tabelas muito grandes e esparsas com acesso previsível por chave de linha; e grafo para dados dominados por relacionamentos e travessias, como redes sociais ou recomendações.
- Os armazenamentos NoSQL suportam transações?
- Historicamente, muitos armazenamentos NoSQL ofereciam apenas operações atômicas de chave única e nenhuma transação multi-registro, trocando-as por escalabilidade. Isso mudou: vários sistemas NoSQL modernos e 'NewSQL' agora fornecem transações multi-documento ou até distribuídas, portanto, o suporte transacional varia amplamente e deve ser verificado por sistema.