O termo NoSQL, abreviação de "não apenas SQL", refere-se a bancos de dados não relacionais que armazenam dados em um formato não tabular, e não em tabelas relacionais baseadas em regras, como os bancos de dados relacionais. Os bancos de dados NoSQL usam um modelo de esquema flexível que oferece suporte a uma ampla variedade de dados não estruturados, como documentos, chave-valor, colunas largas e gráficos.
As organizações escolhem bancos de dados NoSQL pela flexibilidade, alto desempenho, 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.
Há cinco tipos principais de bancos de dados NoSQL:
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 usados para plataformas de blogs, e-commerce, análise em tempo real e sistemas de gerenciamento de conteúdo.
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 única é emparelhada com um valor como uma string, um número, booleano ou objetos complexos. É possível usar a chave 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.
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.
Os bancos de dados de gráficos organizam os dados como nós em um gráfico, com foco nas relações entre os elementos de dados. As conexões entre nós (bordas) são armazenadas como elementos de primeira classe, permitindo representações mais ricas de relações de dados e oferecendo armazenamento e navegação mais simplificados. Esses bancos de dados são mais usados em sistemas que mapeiam relações, como plataformas de mídias sociais, sistemas de reserva, sistemas de detecção de fraudes e aplicativos de logística.
Os bancos de dados na memória armazenam dados na memória para oferecer latência ultrabaixa para aplicativos em tempo real. Redis e Valkey são exemplos de bancos 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.
Os recursos NoSQL são exclusivos do banco de dados escolhido. No entanto, eles geralmente compartilham várias qualidades de alto nível semelhantes:
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.
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 on demand, 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 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.
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 bancos 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. Essas linguagens geralmente são semelhantes, mas não são totalmente compatíveis com o padrão SQL.
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 Atlas, são compatíveis com transações ACID.
Os bancos de dados NoSQL geralmente não são uma boa opção para aplicativos que executam consultas e mesclagens complexas. Gerenciar índices e consultas em vários nós seria lento e pode não retornar resultados consistentes.
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.
Então por que as organizações usam bancos de dados NoSQL não relacionais para alguns aplicativos, mas 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 ou NoSQL.
Os bancos de dados SQL são excelentes para gerenciar dados relacionais estruturados e consultas complexas. Eles são compatíveis com ACID, o que os torna adequados para informações transacionais.
Casos de uso do SQL:
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 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:
Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.