Bases de dados NoSQL

Uma descrição geral para começar

O que são bases de dados NoSQL?

As bases de dados NoSQL são, alternadamente, designadas por “não relacionais”, “BDs NoSQL” ou “não SQL” para realçar o facto de que conseguem processar volumes enormes de dados não estruturados, que mudam rapidamente, de formas diferentes de uma base de dados relacional (SQL) com linhas e tabelas.

As tecnologias NoSQL já existem desde os anos 1960, com vários nomes, mas estão a gozar de uma crescente popularidade à medida que o panorama dos dados muda e os programadores precisam de se adaptar para processarem o grande volume e o vasto leque de dados gerados na cloud, em dispositivos móveis, redes sociais e macrodados.

Desde tweets virais de celebridades a informações que salvam vidas em registos de saúde eletrónicos, estão a ser gerados novos dados e tipos de dados a um ritmo vertiginoso. As bases de dados NoSQL evoluíram para ajudar os programadores a criarem rapidamente sistemas de bases de dados para armazenar as novas informações e torná-las prontamente disponíveis para pesquisa, consolidação e análise.

Os benefícios das bases de dados NoSQL (BDs NoSQL)

As bases de dados NoSQL ajudam os programadores e profissionais de TI a gerirem os novos desafios da diversidade em constante expansão de modelos e tipos de dados e são extremamente eficazes no processamento de dados imprevisíveis, muitas vezes com velocidades de consulta incrivelmente rápidas. Também proporcionam uma migração tranquila de bases de dados para a cloud para as cargas de trabalho NoSQL existentes.

Programar com agilidade

Como têm a capacidade de responder a situações não planeadas, as BDs NoSQL satisfazem os ciclos de lançamento frequente de software e são adequadas para o desenvolvimento mais rápido e mais ágil de aplicações.

Processar dados com flexibilidade

O NoSQL dá aos programadores mais liberdade, velocidade e flexibilidade para alterarem o esquema e as consultas de forma a adaptarem-se aos requisitos de dados. A informação armazenada como um agregado simplifica as melhorias iterativas rápidas, sem ser necessário fazer uma estrutura de esquema inicial.

Operar a qualquer escala

As BDs NoSQL podem proporcionar vantagens e poupanças operacionais apelativas com capacidade para escalamento horizontal ou adição de servidores menos dispendiosos sem ser necessário atualizar. Podem ser dimensionadas para processarem mais dados ou conter uma única base de dados de grande dimensão dentro de um cluster de servidores altamente distribuível.

Tipos de modelos de dados com bases de dados NoSQL

A maioria das bases de dados não relacionais de elevado desempenho, por vezes denominadas “não só SQL”, também conseguem processar dados altamente estruturados — apenas não estão limitadas a modelos de dados fixos como as bases de dados relacionais (SQL).

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

Chave-valor

Os arquivos de chave-valor formam pares de chaves e valores com uma tabela hash. Os tipos de chave-valor são melhores quando uma chave é conhecida e o valor associado para a chave é desconhecido.

Documento

As bases de dados de documentos ampliam o conceito da base de dados de chave-valor ao organizarem documentos inteiros em grupos denominados coleções. Suportam pares chave-valor aninhados e permitem consultas em qualquer atributo num documento.

Colunas

As bases de dados de colunas, de coluna ampla ou de família de colunas armazenam os dados e as consultas de forma eficiente em linhas de dados dispersos e são vantajosas ao realizar consultas em colunas específicas na base de dados.

Graph

As bases de dados de grafos utilizam um modelo baseado em nós e arestas para representar dados interligados, tais como relações entre pessoas numa rede social, e oferecem armazenamento e navegação simplificados através de relações complexas.

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

Não disponível NoSQL ou não relacionais SQL ou relacionais
Ótimo para:
  • Processar dados de grande dimensão, não relacionados, indeterminados ou que mudam rapidamente.
  • Dados independentes de esquema ou com esquema ditado pela aplicação.
  • Aplicações onde o desempenho e a disponibilidade são mais importantes do que uma consistência forte.
  • Aplicações sempre ativas que servem utilizadores em todo o mundo.
  • Processar dados que são relacionais e têm requisitos lógicos e discretos, que podem ser identificados antecipadamente.
  • Esquema que tem de ser conservado e mantido em sincronização entre a aplicação e a base de dados.
  • Sistemas legados para estruturas relacionais.
  • Aplicações que exigem consultas complexas ou transações multilinha.
Cenários:
  • Aplicações móveis.
  • Análise em tempo real.
  • Gestão de conteúdos.
  • Personalização.
  • Aplicações de IoT.
  • Migração de base de dados.
  • Sistemas contabilísticos, financeiros e bancários.
  • Sistemas de gestão de inventários.
  • Sistemas de gestão de transações.
Dimensionamento:
  • Dimensiona os dados na horizontal ao fragmentá-los pelos servidores.
  • Dimensiona os dados na vertical ao aumentar a carga do servidor.
Modelo de dados:
  • Tipos de base de dados: bases de dados de chave-valor, documentos, colunas e grafos.
  • Armazena dados consoante o tipo de base de dados.
  • Tipo de base de dados: tabelas de linhas, agrupadas em relações.
  • Utiliza linguagem SQL (Structured Query Language).
  • Armazena dados como linhas em tabelas; dados relacionados armazenados em separado e associados para consultas complexas.
Não disponível Saiba mais sobre modelos de dados não relacionais Saiba mais sobre modelos de dados relacionais

Como posso avaliar uma BD NoSQL?

Escolha um modelo de dados

Muitas bases de dados NoSQL são orientadas para agregados — uma coleção de dados com a qual interage como uma unidade. Isto torna-as numa solução muito mais natural para linguagens de programação modernas, orientadas para objetos. Ao escolher uma BD NoSQL, é provável que queira começar por escolher um modelo de dados e, em seguida, avaliar as bases de dados NoSQL que o suportam, juntamente com as linguagens de programação e SDKs que cada base de dados suporta.

Saiba mais sobre modelos de programação e APIs

Pondere os compromissos de consistência

A maioria das BDs NoSQL permitem-lhe escolher de um extremo ou outro do espectro de consistência, desde consistência forte — onde obterá os dados mais recentes, mas pode ter de esperar — até consistência eventual, onde obterá uma resposta rápida, mas os dados podem ser obsoletos. Existem muitas bases de dados NoSQL que suportam também outros níveis de consistência que, normalmente, recaem mais no meio destes extremos. Escolha a BD NoSQL que lhe dê maior flexibilidade e controlo nos modelos de consistência, de acordo com a suas necessidades.

Saiba mais sobre consistência, disponibilidade e tolerância a partições

Considere a cloud e a migração de bases de dados

Com a sua natureza distribuída e escalabilidade horizontal, as BDs NoSQL são uma solução ideal para computação na cloud, embora também possa encontrar muitos sistemas de bases de dados NoSQL concebidos para serem executados no local ou em cenários híbridos.

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

  • Modelos de dados suportados. O fornecedor de cloud suporta todos os modelos de dados que poderá querer utilizar?
  • Implementação e operações. Com que facilidade consegue implementar a sua base de dados e replicá-la para outras regiões, caso seja necessário?
  • Presença geográfica. Onde estão localizados os datacenters do fornecedor de cloud? Consegue colocar os seus dados onde pretende? Como irá manter a conformidade com os regulamentos gerais sobre privacidade de dados, como o RGPD da União Europeia?
  • Facilidade de replicação. Qual é o processo de replicação da sua base de dados para uma região geográfica diferente?
  • Escalabilidade. Os recursos de base de dados NoSQL permitem-lhe garantir um desempenho adequado, bem como dimensionamento para crescimento? Será capaz de aumentar verticalmente, reduzir verticalmente ou na horizontal?
  • Elevada disponibilidade. O que irá acontecer no caso de uma falha inesperada? O serviço oferece elevada disponibilidade e recuperação após desastre incorporadas?
  • Níveis de serviço. Quais são os níveis de garantias de disponibilidade ou latência oferecidos?
  • Ecossistema. A base de dados está fortemente integrada com o resto da plataforma cloud e pode ser rapidamente composta para criar novas soluções?

Formas de utilizar os sistemas de bases de dados NoSQL

Utilizar modelos de dados com base em NoSQL é uma excelente solução para as empresas que pretendem criar aplicações móveis, Web, de Internet das Coisas (IoT) e de jogos, que exigem bases de dados flexíveis, dimensionáveis, de elevado desempenho e altamente funcionais para proporcionar ótimas experiências aos utilizadores — quer sejam aplicações de jogos, comércio eletrónico, análise de macrodados ou Web em tempo real, entre outras.

Distribua globalmente as suas aplicações

Consiga mais utilizadores, onde quer que estejam no mundo, com o desempenho melhorado de aplicações de elevada disponibilidade e recuperação após desastre.

Ofereça experiências em tempo real aos clientes

Ofereça personalização, recomendações em tempo real e uma experiência de utilizador melhorada com as BDs NoSQL.

Acomode cargas de trabalho de IoT diversificadas

Dimensione de forma instantânea e elástica para lidar com a ingestão de dados contínua, exigente a nível de escrita, com um desempenho de consulta melhorada para aplicações de IoT.

Melhore as suas aplicações de comércio eletrónico

Com esquemas flexíveis e dados hierárquicos, o NoSQL está bem adaptado para armazenar dados de catálogos de produtos, onde diversos produtos têm atributos diferentes.

Atraia os jogadores com novo conteúdo

Ofereça experiências personalizadas com conteúdo como estatísticas no jogo, integração de redes sociais e classificações. A latência baixa e a escalabilidade elástica suportam os picos de tráfego durante os torneios e lançamentos de jogos.

Crie aplicações sem servidor

Dimensione sem problemas a ingestão de dados, o débito e os volumes de dados com disponibilidade imediata, indexação automática, taxas de ingestão estáveis e desempenho de consultas.

Obtenha melhores informações de macrodados

Implemente aprendizagem automática à escala em dados de grande volume, que mudam rapidamente, e tire maior partido da sua análise.

Migre as atuais cargas de trabalho NoSQL para a cloud

Passe menos tempo a gerir uma base de dados no local com uma migração para a cloud e continue a utilizar as suas atuais ferramentas, controladores, bibliotecas e SDKs.

Introdução ao NoSQL e à migração de bases de dados para a cloud

Saiba como desenvolver as suas aplicações com nova agilidade, flexibilidade e escalabilidade na gestão dos seus sistemas de bases de dados e diversos tipos de dados, bem como migração de bases de dados para a cloud para as cargas de trabalho NoSQL existentes. Obtenha uma descrição geral técnica do Azure Cosmos DB para programadores e saiba mais sobre o suporte nativo de NoSQL num serviço de base de dados com vários modelos, distribuído globalmente e dimensionável em grande escala.

Saiba mais sobre o Azure Cosmos DB para dados NoSQL

Saiba mais