Banco de dados NoSQL

Uma visão geral como introdução

O que são os bancos de dados NoSQL?

Os bancos de dados NoSQL podem ser chamados de "não relacionais", "BDs NoSQL" ou "não SQL" para destacar o fato de que podem processar grandes volumes de dados não estruturados e em constante mudança de maneiras diferentes de um banco de dados relacional (SQL) com linhas e tabelas.

As tecnologias NoSQL existem desde os anos 60 e tiveram vários nomes, mas estão passando por um pico de popularidade conforme o panorama de dados muda e os desenvolvedores precisam se adaptar para processar um grande volume e uma vasta variedade de dados gerados na nuvem, em dispositivos móveis, nas redes sociais e em Big Data.

De tweets virais de celebridades a informações que podem salvar vidas em prontuários médicos eletrônicos, novos dados e tipos de dados estão sendo gerados em um ritmo vertiginoso. Os bancos de dados NoSQL evoluíram para ajudar os desenvolvedores a criar rapidamente sistemas de banco de dados a fim de armazenar as novas informações e disponibilizá-las prontamente para pesquisa, consolidação e análise.

Os benefícios dos BDs NoSQL (bancos de dados NoSQL)

Os bancos de dados NoSQL ajudam profissionais de TI e desenvolvedores a gerenciar os novos desafios da diversidade sempre crescente de tipos de dados e modelos, além de serem altamente eficazes ao processar dados imprevisíveis, muitas vezes com uma velocidade de consulta altíssima. Também oferecem uma migração de banco de dados suave para a nuvem para as cargas de trabalho NoSQL atuais.

Desenvolva com agilidade

Com a capacidade de responder a situações não planejadas, os BDs NoSQL atendem a ciclos de versão de software frequentes e são adequados para um desenvolvimento de aplicativo mais ágil e rápido.

Manipule dados com flexibilidade

O NoSQL dá mais liberdade, velocidade e flexibilidade aos desenvolvedores para alterar o esquema e as consultas e se adaptar aos requisitos de dados. As informações armazenadas como uma agregação facilitam melhorias iterativas rápidas – sem precisar projetar o esquema antecipadamente.

Opere em qualquer escala

Os BDs NoSQL podem oferecer vantagens operacionais e economias atrativas com a capacidade de escalar horizontalmente – ou adicionar servidores menos caros sem necessidade de atualização. Eles podem ser dimensionados para tratar mais dados ou manter um banco de dados único e grande, em um cluster de servidores altamente distribuível.

Tipos de modelos de dados com bancos de dados NoSQL

A maioria dos bancos de dados não relacionais de alto desempenho, às vezes chamados de "não somente SQL", também podem processar dados altamente estruturados – eles não se limitam somente aos modelos de dados fixos, como os bancos de dados relacionais (SQL).

Os quatro tipos mais comuns de bancos de dados NoSQL são:

Chave-valor

Os armazenamentos de chave-valor fazem o pareamento de chaves e valores usando uma tabela de hash. Os tipos de chave-valor são melhores quando uma chave é conhecida e o valor associado dela é desconhecido.

Documento

Os bancos de dados de documentos ampliam o conceito do banco de dados chave-valor organizando documentos inteiros em grupos chamados coleções. Eles são compatíveis com os pares chave-valor aninhados e permitem consultas em qualquer atributo em um documento.

Colunar

Bancos de dados colunares, de coluna larga ou de famílias de colunas armazenam dados de modo eficiente, consultam linhas de dados esparsos e são vantajosos ao consultar em colunas específicas no banco de dados.

Graph

Os bancos de dados de grafo usam um modelo baseado em nós e bordas para representar dados interconectados – como relações entre pessoas em uma rede social – e oferecem armazenamento simplificado e navegação por meio de relações complexas.

Como escolher entre bancos de dados não relacionais (NoSQL) e relacionais (SQL)

Não disponível NoSQL ou não relacional SQL ou relacional
Melhor para:
  • Processar dados grandes, não relacionados, indeterminados ou em mudança constante.
  • Dados independentes de esquema ou com esquema definido pelo aplicativo.
  • Aplicativos em que o desempenho e a disponibilidade são mais importantes que uma coerência forte.
  • Aplicativos Always On que atendem a usuários em todo o mundo.
  • Processa dados relacionais e tem requisitos discretos e lógicos que podem ser identificados com antecedência.
  • Esquema que precisa ser mantido e sincronizado entre o aplicativo e o banco de dados.
  • Sistemas herdados criados para estruturas relacionais.
  • Aplicativos que exigem consultas complexas ou transações com várias linhas.
Cenários:
  • Aplicativos móveis.
  • Análise em tempo real.
  • Gerenciamento de conteúdo.
  • Personalização.
  • Aplicativos IoT.
  • Migração de banco de dados.
  • Contabilidade, finanças e sistemas bancários.
  • Sistemas de gerenciamento de estoque.
  • Sistemas de gerenciamento de transações.
Escala:
  • Escala dados horizontalmente ao fragmentá-los entre os servidores.
  • Escala dados verticalmente, aumentando a carga do servidor.
Modelo de dados:
  • Tipos de banco de dados: chave-valor, documento, colunar e de grafo.
  • Armazena dados de acordo com o tipo de banco de dados.
  • Tipo de banco de dados: tabelas de linhas, agrupadas em relações.
  • Usa linguagem SQL.
  • Armazena dados como linhas em tabelas. Os dados relacionados são armazenados separadamente e unidos para consultas complexas.
Não disponível Saiba mais sobre os modelos de dados não relacionais Saiba mais sobre os modelos de dados relacionais

Como avaliar um BD NoSQL?

Escolher um modelo de dados

Vários bancos de dados NoSQL são orientados para agregações – uma coleção de dados com que você interage como se fosse uma unidade. Isso os torna uma opção muito mais natural para linguagens de programação modernas e orientadas a objetos. Ao escolher um BD NoSQL, você provavelmente desejará começar escolhendo um modelo de dados e, em seguida, avaliar os bancos de dados NoSQL compatíveis com ele, junto com as linguagens de programação e os SDKs compatíveis com cada banco de dados.

Saiba mais sobre modelos de programação e APIs

Analise as vantagens e desvantagens da coerência

A maioria dos BDs NoSQL permite que você escolha entre qualquer extremidade de um espectro de coerência, desde uma coerência forte – em que você terá os dados mais recentes, mas talvez precise esperar – até uma coerência eventual, em que você recebe uma resposta rápida, mas os dados podem estar obsoletos. Há vários bancos de dados NoSQL que dão suporte a outros níveis de coerência, os quais normalmente também se encontram entre esses extremos. Escolha o BD NoSQL que oferece mais flexibilidade e controle nos modelos de coerência, de acordo com suas necessidades.

Saiba mais sobre coerência, disponibilidade e tolerância de partição

Considere a nuvem e a migração de banco de dados

Graças à natureza distribuída e à escalabilidade horizontal dos BDs NoSQL, eles são a opção ideal para computação em nuvem, embora também seja possível encontrar vários sistemas de banco de dados NoSQL concebidos para executar no local ou em cenários híbridos.

Ao avaliar as opções de nuvem, considere o seguinte:

  • Modelo de dados compatíveis. O provedor de nuvem é compatível com todos os modelos de dados que você quer usar?
  • Implantação e operações. Quão fácil é implantar o banco de dados e replicá-lo para outras regiões, se necessário?
  • Presença geográfica. Onde estão os data centers do provedor de nuvem? É possível colocar os dados onde eu quero? Como manter a conformidade com os regulamentos de privacidade de dados globais, como o RGPD da União Europeia?
  • Tipo de replicação. Qual é o processo para replicar o banco de dados para uma região geográfica diferente?
  • Escalabilidade. Os recursos do banco de dados NoSQL garantem desempenho adequado e permitem dimensionar conforme o crescimento? É possível escalar verticalmente, horizontalmente ou reduzir verticalmente?
  • Alta disponibilidade. O que acontecerá caso haja uma falha inesperada? O serviço oferece alta disponibilidade interna e recuperação de desastre?
  • Níveis de serviço. Quais garantias de níveis de disponibilidade ou latência são oferecidas?
  • Ecossistema. O banco de dados é totalmente integrado com o restante da plataforma de nuvem e pode ser alinhado rapidamente para criar novas soluções?

Maneiras de usar sistemas de banco de dados NoSQL

Usar modelos de dados baseados em NoSQL é uma ótima opção para empresas que desejam criar aplicativos móveis, Web, IoT (Internet das Coisas) e de jogos que exigem bancos de dados flexíveis, escalonáveis, de alto desempenho e altamente funcionais para oferecer experiências excelentes ao usuário – seja para jogos, comércio eletrônico, análise de Big Data ou aplicativos Web em tempo real e muito mais.

Distribua seus aplicativos globalmente

Conquiste mais usuários, onde quer que eles estejam no mundo, com o desempenho aprimorado de aplicativo, com alta disponibilidade e recuperação de desastre.

Ofereça experiências ao cliente em tempo real

Ofereça personalização, recomendações em tempo real e uma experiência sofisticada ao usuário com os BDs NoSQL.

Acomode diversas cargas de trabalho de IoT

Dimensione instantânea e elasticamente para processar uma ingestão de dados sustentada e com uso intenso de gravação, com desempenho de consulta melhorado para aplicativos IoT.

Aprimore seus aplicativos de comércio eletrônico

Com esquemas flexíveis e dados hierárquicos, o NoSQL é bastante adequado para armazenar dados de catálogo de produto, em que produtos variados têm atributos diferentes.

Atraia jogadores com conteúdo novo

Ofereça experiências personalizadas com conteúdo como estatísticas no jogo, integração com as redes sociais e placares de líderes. A baixa latência e a escalabilidade elástica são compatíveis com os picos de tráfego em lançamentos de jogos e torneios.

Crie aplicativos sem servidor

Dimensione com facilidade a ingestão de dados, a taxa de transferência e os volumes de dados com disponibilidade imediata, indexação automática, taxas de ingestão estáveis e desempenho de consulta.

Obtenha insights mais significativos do Big Data

Implemente o Machine Learning em escala nos dados dinâmicos de alto volume e obtenha mais dados da sua análise.

Migre cargas de trabalho NoSQL existentes para a nuvem

Gaste menos tempo gerenciando um banco de dados local com uma migração para a nuvem enquanto ainda usa ferramentas, drivers, bibliotecas e SDKs existentes.

Comece a usar o NoSQL e a migração de banco de dados para a nuvem

Saiba como desenvolver aplicativos com agilidade, flexibilidade e escalabilidade ao gerenciar sistemas de banco de dados e tipos de dados diversificados, bem como uma migração de banco de dados para a nuvem para cargas de trabalho NoSQL existentes. Tenha uma visão geral técnica do Azure Cosmos DB para desenvolvedores e saiba mais sobre o suporte nativo para NoSQL em um serviço de banco de dados multimodelo, altamente escalonável e globalmente distribuído.

Saiba mais sobre o Azure Cosmos DB para dados NoSQL

Saiba mais