Nuvem AWS
Nuvem AWS
Conceitos básicos do Amazon DynamoDB

Bancos de dados NoSQL são bancos de dados não relacionais, otimizados para performance escalável e modelos de dados sem esquema. Os bancos de dados NoSQL são amplamente reconhecidos por sua facilidade de desenvolvimento, baixa latência e resiliência. Esses bancos de dados usam diversos modelos de dados, incluindo dados colunares, documentos, gráficos e armazenamento de pares chave-valor na memória. Esta página inclui vários recursos para ajudar você a começar a usar bancos de dados NoSQL.

PurposeBuilt-reInvent
58:35
Novidades dos bancos de dados não relacionais de uso específico da AWS

Os sistemas de banco de dados NoSQL usam diversos modelos de gerenciamento dados, como armazenamento de pares chave-valor na memória, modelos de dados gráficos e armazenamento de documentos. Esses tipos de banco de dados são otimizados para aplicativos que exigem modelos de dados de grande volume de dados, baixa latência e flexibilidade. Esses requisitos são atendidos mediante o relaxamento de algumas restrições de consistência de dados dos bancos de dados relacionais tradicionais.

Os bancos de dados NoSQL são ideais para muitos aplicativos de big data, mobilidade e web, que exigem maior escala e capacidade de resposta que as oferecidas pelos bancos de dados relacionais tradicionais. Com estruturas de dados mais simples e escalabilidade horizontal, os bancos de dados NoSQL respondem geralmente com maior velocidade e podem ser escalados com maior facilidade que os bancos de dados relacionais.

Os sistemas de gerenciamento de bancos de dados relacionais (RDBMSs) e os bancos de dados não relacionais (NoSQL) oferecem vantagens e desvantagens diferentes. Nos RDBMSs, as consultas de dados são flexíveis, mas têm um custo relativamente alto e não escalam com facilidade em situações de grande volume de tráfego. Em um banco de dados NoSQL, há formas limitadas de consultar dados com eficiência. As demais formas de consulta podem apresentar alto custo e baixa performance.

  Bancos de dados relacionais Bancos de dados NoSQL
Modelo de dados O modelo relacional normaliza dados em tabelas, compostas por linhas e colunas. Um esquema define estritamente tabelas, colunas, índices, relações entre tabelas e outros elementos do banco de dados. Normalmente, os bancos de dados NoSQL não aplicam um esquema. Geralmente, uma chave de partição é usada para recuperar valores, conjuntos de colunas ou documentos semiestruturados JSON, XML ou outros que contenham atributos de itens relacionados.
Propriedades ACID Os RDBMSs tradicionais oferecem suporte às propriedades ACID de um banco de dados relacional: atomicidade, consistência, isolamento e resiliência. Atomicidade significa “tudo ou nada”, ou seja, uma transação é executada integralmente ou não. Consistência significa que quando uma transação é confirmada, os dados devem estar em conformidade com o esquema do banco de dados. Isolamento exige que as transações simultâneas sejam executadas separadas uma da outra. Resiliência é a capacidade de se recuperar de uma falha do sistema ou falta de energia inesperada para o último estado conhecido. Normalmente, os bancos de dados NoSQL substituem algumas propriedades ACID de RDBMSs tradicionais por um modelo de dados mais flexível com escalabilidade horizontal. Essas características fazem dos bancos de dados NoSQL uma excelente opção em situações quando RDBMSs tradicionais enfrentam desafios de arquitetura e precisam superar uma combinação de fatores como gargalos de performance, escalabilidade, complexidade operacional e custos crescentes de administração e suporte.
Performance O desempenho normalmente depende do subsistema do disco. A otimização de consultas, índices e estrutura de tabela é necessária para alcançar máximo desempenho. Desempenho geralmente é uma função do tamanho do cluster do hardware subjacente, da latência de rede e da aplicação que faz a chamada.
Escala Escalabilidade vertical mais fácil com hardware mais rápido. Outros investimentos são necessários para que tabelas relacionais abranjam um sistema distribuído. Projetado para escalabilidade horizontal usando clusters distribuídos de hardware de baixo custo para aumentar o throughput sem aumentar a latência.
APIs As solicitações para armazenar e recuperar dados são comunicadas usando consultas compatíveis com uma Structured Query Language (SQL – Linguagem de consultas estruturadas). Essas consultas são analisadas e executadas pelos RDBMSs. As APIs baseadas em objetos permitem que desenvolvedores de aplicativos armazenem e restaurem facilmente estruturas de dados na memória. As chaves de partição permitem que os aplicativos procurem pares de chave-valor, conjuntos de colunas ou documentos semiestruturados contendo objetos e atributos de aplicativos serializados.
Ferramentas Os bancos de dados SQL normalmente oferecem um rico conjunto de ferramentas para simplificar o desenvolvimento de aplicações orientadas ao banco de dados. Os bancos de dados NoSQL normalmente oferecem ferramentas para gerenciar clusters e escalabilidade. As aplicações são a interface principal com os dados subjacentes.
15

Há quatro tipos comuns de bancos de dados NoSQL: colunar, documentos, gráficos e pares chave-valor na memória. Geralmente, esses bancos de dados armazenam, acessam e estruturam dados de formas diferentes e são otimizados para casos de uso e aplicativos distintos. 

  1. Os bancos de dados colunares são otimizados para leitura e gravação de colunas de dados, em vez de linhas de dados. O armazenamento orientado a colunas para tabelas do banco de dados é um fator importante na performance de consultas analíticas, pois reduz drasticamente os requisitos gerais de E/S de disco e a quantidade de dados que você precisa carregar do disco.
  2. Os bancos de dados de documentos são projetados para armazenar dados semiestruturados como documentos, geralmente no formato JSON ou XML. Ao contrário dos bancos de dados relacionais tradicionais, o esquema de cada documento NoSQL pode variar, o que oferece mais flexibilidade na organização e armazenamento de dados do aplicativo e na redução do armazenamento necessário para valores opcionais.
  3. Os bancos de dados gráficos armazenam vértices e links direcionados chamados de bordas. Os bancos de dados gráficos são baseados em bancos de dados SQL e NoSQL. Vértices e bordas podem ter propriedades associadas a eles. 
  4. Os armazenamentos de chave-valor em memória são bancos de dados NoSQL otimizados para cargas de trabalho de aplicativos com uso intenso de leitura (como redes sociais, jogos, compartilhamento de mídia e portais de perguntas e respostas) ou cargas de trabalho com uso intenso de computação (como um mecanismo de recomendação). O armazenamento em cache na memória melhora a performance do aplicativo armazenando fragmentos críticos de dados na memória para oferecer acesso de baixa latência.
SQL
MongoDB (NoSQL) DynamoDB (NoSQL) Cassandra (NoSQL) Couchbase (NoSQL)
Tabela Coleta Tabela Tabela Bucket de dados
Linha Documento
Item Linha Documento
Coluna
Campo Atributo Coluna Campo
Chave primária
ObjectId
Chave primária Chave primária ID do documento
Índice Índice Índice secundário Índice
Índice
Visualização Visualização Índice secundário global Visualização materializada Visualização
Tabela ou objeto aninhado
Documento incorporado Mapa Mapa Mapa
Matriz
Matriz Lista Lista Lista

É fácil começar a usar o Amazon DynamoDB. Consulte o nosso Guia de conceitos básicos para criar sua primeira tabela do DynamoDB com apenas alguns cliques.

Você também pode fazer download do whitepaper Melhores práticas de migração – RDBMS para Amazon DynamoDB para aprender as melhores práticas da migração de cargas de trabalho de um RDBMS para o DynamoDB.

Comece a usar o Amazon DynamoDB