Base de Dados NoSQL – O que é 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 e em constante mudança de formas diferentes de uma base de dados relacional (SQL) com linhas e tabelas.
As tecnologias NoSQL já existem desde a década de 60 com vários nomes, mas estão a crescer em 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 nuvem, 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 base de dados para a nuvem para as cargas de trabalho NoSQL existentes.
Desenvolver com agilidade
Como têm a capacidade de responder a situações não planeadas, as BDs NoSQL satisfazem os ciclos de lançamento frequentes de software e são adequadas ao 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 "aumento" 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 consegue processar dados altamente estruturados – apenas não está limitada 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 à mesma é desconhecido.
Documentos
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.
Grafos
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)
NoSQL ou não relacionais | SQL ou relacionais | |
---|---|---|
ÓTIMO PARA: |
|
|
CENÁRIOS: |
|
|
DIMENSIONAMENTO: |
|
|
MODELO DE DADOS: |
|
|
|
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 em que a interação é feita 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.
Pondere os compromissos de consistência
A maioria das BDs NoSQL permite-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 definitiva, 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.
Considere a nuvem e a migração de base de dados
Com a sua natureza distribuída e escalabilidade horizontal, as BDs NoSQL são uma solução ideal para informática em nuvem, 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 nuvem, considere o seguinte:
- Modelos de dados suportados. O fornecedor de serviços em nuvem 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 serviços em nuvem? Consegue colocar os seus dados onde quer? 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 da nuvem 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
Faça um dimensionamento instantâneo e elástico 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 sobre macrodados
Implemente aprendizagem automática em escala em dados de grande volume, em constante mudança, e tire maior partido da sua análise.
Migre as cargas de trabalho NoSQL existentes para a nuvem
Passe menos tempo a gerir uma base de dados no local com uma migração para a nuvem e continue a utilizar as suas atuais ferramentas, controladores, bibliotecas e SDKs.
Introdução ao NoSQL e à migração de base de dados para a nuvem
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 base de dados para a nuvem 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.