O que é um banco de dados NoSQL?

O termo NoSQL, abreviação de “não apenas SQL”, refere-se a bancos de dados não relacionais que usam um formato não tabular para armazenar dados, em vez de tabelas relacionais baseadas em regras, como bancos de dados relacionais. Os bancos de dados NoSQL usam um modelo de esquema flexível compatível com uma ampla variedade de dados não estruturados, como documentos, chaves-valor, colunas largas, gráficos e muito mais.

As organizações escolhem os bancos de dados NoSQL por causa da flexibilidade, escalonabilidade horizontal e facilidade de desenvolvimento.

Saiba como os bancos de dados NoSQL do Google Cloud Bigtable, Memorystore e Firestore podem ajudam a melhorar seus aplicativos e proporcionar ótimas experiências aos clientes sem se preocupar com escalonabilidade, confiabilidade ou mudanças frequentes nos dados. 

Os cinco tipos de bancos de dados NoSQL

Há cinco tipos principais de bancos de dados NoSQL: 

Bancos de dados de documentos

Os bancos de dados de documentos, também conhecidos como bancos de dados orientados a documentos ou armazenamento de documentos, são usados para armazenar e consultar dados semiestruturados. Os dados são armazenados em um documento do tipo JSON semelhante aos objetos de dados que os desenvolvedores usam no código do aplicativo, facilitando a criação e a atualização de aplicativos sem referir-se a um esquema primário. Os bancos de dados de documentos são mais comumente usados em plataformas de blogs, aplicativos de e-commerce e de análise em tempo real e sistemas CMS. 

Banco de dados de valores-chave

Os bancos de dados de chave-valor, também conhecidos como armazenamentos de chave-valor, são o tipo mais simples de bancos de dados NoSQL. Os dados são armazenados em uma estrutura de "chave-valor", em que uma chave exclusiva é pareada com um valor, como strings, números, booleanos, objetos complexos e muito mais. Os dados podem ser gravados ou consultados usando a chave, que é usada para armazenar ou recuperar o valor associado. Os armazenamentos de chave-valor são usados com mais frequência para preferências do usuário, carrinhos de compras e perfis de usuário em aplicativos da Web.

Banco de dados orientado a colunas

Os bancos de dados orientados por coluna ou armazenamentos de colunas largas, armazenam e leem dados em linhas e são organizados como um conjunto de colunas. Embora seja semelhante ao formato tabular de bancos de dados relacionais, os nomes e a formatação de colunas em armazenamentos de colunas largas podem variar de linha para linha em uma única tabela. São ideais para casos de uso de análise, em que pode ser necessário consultar colunas específicas em um banco de dados e agregar o valor de uma determinada coluna rapidamente. Os armazenamentos de colunas largas são mais usados em catálogos, detecção de fraudes e mecanismos de recomendação.

Bancos de dados de gráficos

Os bancos de dados gráficos organizam os dados como nós, com foco nas relações entre os elementos de dados. Essas conexões entre nós, conhecidas como bordas, são armazenadas como elementos de primeira classe, permitindo representações mais ricas de relacionamentos de dados e, ao mesmo tempo, oferecendo armazenamento e navegação mais simplificados. Os bancos de dados de gráficos são mais comumente usados em sistemas que mapeiam relacionamentos, incluindo plataformas de mídia social, sistemas de reserva e aplicativos de logística.

banco de dados na memória

Esses bancos de dados armazenam dados na memória, sem oferecer latência para aplicativos em tempo real. O Redis é um exemplo de um banco de dados NoSQL na memória. Os bancos de dados na memória são mais usados para armazenamento em cache, mensagens, streaming e análise em tempo real.

Como o NoSQL funciona?

Os recursos NoSQL são exclusivos do banco de dados escolhido. No entanto, eles geralmente compartilham várias qualidades de alto nível semelhantes: 

  • Eles seguem esquemas flexíveis que não exigem que você determine ou declare um esquema fixo para os dados, o que os torna ideais para dados semiestruturados e não estruturados.
  • Eles são escalonados horizontalmente, usando intervalos ou hashes, em vez de depender do escalonamento vertical para adicionar capacidade.
  • Eles são otimizados para modelos de dados e padrões de carga de trabalho específicos, como chave-valor, coluna ampla ou na memória.
  • Muitos bancos de dados NoSQL exibem consistência em algum momento posterior (por exemplo, modelo de consistência posterior) em vez de seguir as propriedades ACID (atomicidade, consistência, isolamento e durabilidade) mais rigorosas dos bancos de dados relacionais e SQL.
  • A maioria dos bancos de dados NoSQL não é compatível com transações entre fragmentos ou modos de isolamento flexível

Esses recursos tornam os bancos de dados não relacionais ideais para aplicativos que exigem grande escala, confiabilidade, alta disponibilidade e alterações frequentes de dados.

Vantagens do NoSQL

Modelo de dados e esquema flexíveis

Os bancos de dados NoSQL armazenam muitos tipos de dados e oferecem esquemas flexíveis, ideais para dados semiestruturados e não estruturados. É possível adaptá-las facilmente a novos tipos de dados e desenvolver o esquema para atender aos requisitos de dados em constante mudança.

Desenvolvimento rápido

A flexibilidade do NoSQL complementa o desenvolvimento ágil de aplicativos. Os bancos de dados NoSQL podem armazenar muitos tipos de dados no formato nativo e permitem que o modelo de dados seja definido e adaptado à medida que você avança, de modo que os desenvolvedores possam avançar, gastar menos tempo na transformação de dados e iterar rapidamente.

Escalonabilidade

Ao contrário dos bancos de dados relacionais, os bancos de dados NoSQL facilitam o aumento da capacidade à medida que os dados e o tráfego aumentam. Na maioria dos casos, sem tempo inatividade. Os bancos de dados baseados na nuvem são ainda mais fáceis de escalonar com base na demanda, oferecendo recursos de escalonamento automático e modelos de preços flexíveis.  

Armazenamento de dados em massa

O NoSQL foi desenvolvido para lidar com conjuntos de dados grandes e complexos, permitindo que as organizações adotem e dimensionem Big Data, análise em tempo real e casos de uso de IoT. 

Alta disponibilidade

As arquiteturas de dados NoSQL são distribuídas desde a concepção e não têm um ponto único de falha. Elas também fornecem replicação fácil, tornando-as mais resistentes a interrupções e interrupções não planejadas. 

Consultas mais rápidas

Ao contrário dos bancos de dados relacionais, que são normalizados para reduzir a duplicação de dados, o NoSQL é otimizado para consultas rápidas. O NoSQL geralmente não exige junções complexas, o que significa que as consultas ao banco de dados retornam resultados mais rapidamente. 

Desvantagens do NoSQL

Os bancos de dados NoSQL ganharam muita popularidade nos últimos anos, mas há algumas desvantagens em usá-los em relação aos bancos de dados relacionais. Eles ainda são relativamente novos e podem não ter a maturidade dos sistemas de dados relacionais. Em geral, o NoSQL vem com menos experiência de desenvolvedor, menos ferramentas e produtos disponíveis e menos suporte em caso de problemas não documentados. 

Além disso, o NoSQL não tem uma língua franca como o SQL. Cada banco de dados pode ter sua própria linguagem para a consulta e o gerenciamento de dados. 

Em muitos casos, os bancos de dados NoSQL não têm as proteções de integridade de dados e o alto nível de consistência de dados que são padrão nos bancos de dados SQL. No entanto, alguns, como o Firestore e o MongoDB, são compatíveis com transações ACID.

Ainda assim, os modelos de consistência posterior são suficientes para a maioria dos casos de uso do NoSQL, em que um pequeno atraso de milissegundos não importa. Para muitos aplicativos, a alta disponibilidade e a velocidade superam em muito a necessidade de uma consistência global forte.

SQL versus NoSQL: casos de uso e exemplos

Então por que as organizações usam bancos de dados NoSQL não relacionais para alguns aplicativos ou permanecem com os bancos de dados SQL relacionais para outros? A escolha do banco de dados certo geralmente se resume ao seu caso de uso. Veja quando usar SQL versus NoSQL.

Os bancos de dados SQL são excelentes para gerenciar dados relacionais estruturados e consultas complexas. Os bancos de dados SQL são compatíveis com ACID, o que os torna confiáveis para informações transacionais.

Casos de uso do SQL:

  • Transações financeiras
  • Análise de dados de saúde 
  • Informações sobre clientes e transações

Os bancos de dados NoSQL são excelentes em casos de uso que exigem um grande número de usuários distribuídos em todo o mundo para oferecer experiências altamente personalizadas. Esses aplicativos interativos têm melhor performance com a agilidade dos bancos de dados NoSQL. 

Os bancos de dados NoSQL também priorizam a alta disponibilidade, oferecem desempenho consistente, escalonam rapidamente sem inatividade e podem lidar com grandes volumes de diferentes tipos de dados. 

Esses recursos de bancos de dados NoSQL tornam os bancos de dados não relacionais ideais para aplicativos que exigem grande escala, confiabilidade e alta disponibilidade.

Os usos mais comuns de NoSQL incluem: 

  • Aplicativos para dispositivos móveis, Web e IoT
  • Aplicativos da Web em tempo real
  • Personalização, recomendações e experiências do cliente em tempo real
  • Gerenciamento de inventário e catálogo
  • Detecção de fraude e autenticação de identidade 
  • Serviços financeiros e pagamentos
  • AdTech

Resolva seus desafios empresariais mais difíceis com o Google Cloud

Clientes novos recebem US$ 300 em créditos para usar no Google Cloud.
Entre em contato com um especialista em vendas do Google Cloud para discutir seu desafio único em mais detalhes.

Vá além

Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
Console
Google Cloud