Um banco de dados de documentos é um tipo de banco de dados NoSQL que armazena, gerencia e recupera dados em um formato flexível. Cada um desses "documentos" pode ter sua própria estrutura exclusiva, ao contrário dos bancos de dados relacionais, que usam tabelas rígidas com linhas e colunas.
Essa flexibilidade pode tornar os bancos de dados de documentos uma escolha ideal para lidar com dados semiestruturados ou não estruturados, como aplicativos gerados por IA ou dados de sensores, casos em que os esquemas tradicionais seriam muito restritivos. Eles são particularmente populares em casos de uso como gerenciamento de conteúdo, e-commerce e análise em tempo real.
Um banco de dados de documentos é um tipo de banco de dados NoSQL que armazena dados em "documentos" flexíveis semelhantes a JSON.
Os bancos de dados de documentos são conhecidos por:
Pense em um banco de dados de documentos como um arquivo digital inteligente. Os dados são agrupados em coleções (as pastas), cada uma contendo documentos independentes (os arquivos) para uma única entidade, como um cliente ou produto.
Ao contrário de uma tabela relacional rígida, cada documento pode ter uma estrutura única. Por exemplo, você pode adicionar um campo "sustainability_rating" a um único produto no seu catálogo de e-commerce sem alterar o esquema de todos os outros itens.
Documento 1: { id: 1 product_name: "camisa azul" product_category: "camisa" quant.: 76 sustainability_rating: "moderado" } Documento 2: { id: 2 product_name: “calças verdes” product_category: “calças” quant.: 44 } |
Documento 1:
{
id: 1
product_name: "camisa azul"
product_category: "camisa"
quant.: 76
sustainability_rating: "moderado"
}
Documento 2:
{
id: 2
product_name: “calças verdes”
product_category: “calças”
quant.: 44
}
Os bancos de dados de documentos são adequados para aplicativos que exigem flexibilidade, escalonabilidade e desenvolvimento rápido, como aplicativos de IA, gerenciamento de conteúdo, e-commerce e análise em tempo real.
Por exemplo, uma única postagem em uma rede social contém dados semiestruturados, como campos previsíveis como nome de usuário, carimbo de data/hora e contagem de "curtidas", mas a estrutura é flexível. Uma postagem pode incluir uma tag de local opcional, enquanto outra pode ter uma lista de usuários marcados. Além disso, a postagem pode conter dados não estruturados, como uma imagem ou vídeo, o texto livre da legenda e uma série de comentários de usuários.
Um banco de dados de documentos foi projetado para armazenar todas essas informações relacionadas, desde o nome de usuário estruturado até a imagem e os comentários não estruturados, em um "documento" coeso. Isso torna muito eficiente para os desenvolvedores trabalhar com dados do mundo real sem precisar primeiro forçá-los a uma estrutura rígida e predefinida.
Os bancos de dados de documentos se destacam por um conjunto exclusivo de recursos de arquitetura projetados para oferecer compatibilidade com padrões de desenvolvimento modernos e eficiência de dados.
Os documentos são agrupados em coleções, semelhantes a tabelas em bancos de dados relacionais. No entanto, ao contrário das tabelas, as coleções não exigem que todos os documentos tenham a mesma estrutura, oferecendo mais flexibilidade. Por exemplo, imagine documentos que armazenam o nome e o e-mail de um cliente, mas diferentes formas de pagamento. Um documento pode armazenar detalhes do cartão de crédito, enquanto outro pode armazenar o número de roteamento e o número da conta corrente.
Além de cada documento ter sua própria estrutura exclusiva, o formato também pode mudar à medida que as informações são adicionadas. Em outras palavras, a estrutura dos dados pode evoluir, não apenas os valores. Isso é fundamentalmente diferente de um banco de dados relacional, em que todas as linhas de uma tabela precisam estar de acordo com as mesmas colunas predefinidas, e apenas os valores mudam. Um esquema dinâmico é especialmente poderoso na programação assistida por IA, em que um único comando que expressa novos requisitos de negócios pode refletir uma mudança em um modelo de dados.
Os bancos de dados de documentos permitem que você consulte diretamente os campos de um documento, com índices que aceleram as consultas. Por exemplo, você pode encontrar rapidamente um usuário pelo e-mail ou recuperar pedidos acima de um determinado preço.
Os bancos de dados de documentos são projetados para crescer facilmente, adicionando mais servidores ou clusters sem interrupções. Essa escalonabilidade os torna ideais para aplicativos com necessidades de dados crescentes ou imprevisíveis.
Os bancos de dados de documentos são amplamente adotados em aplicativos em que flexibilidade, escalonabilidade e velocidade são essenciais. Confira a seguir alguns dos casos de uso comuns:
Embora os bancos de dados de documentos, os bancos de dados relacionais e os armazenamentos de chave-valor gerenciem dados, eles fazem isso com prioridades diferentes em relação à estrutura, flexibilidade e velocidade.
Recurso | Bancos de dados de documentos | Repositório de chave-valor | Bancos de dados relacionais |
Formato de dados | Documentos avançados e estruturados | Pares de chave-valor simples | Tabelar (linhas e colunas) |
Flexibilidade | Alto; cada documento pode variar | Alto; o número de colunas pode variar de linha para linha | Limitado; esquema predefinido |
Consulta | Avançada, incluindo campos aninhados | Por índice principal ou secundário para melhor desempenho | Consultas avançadas e complexas com JOINs |
Ideal para | Desenvolvimento rápido e modelos de dados em evolução | Estruturas de dados simples e pesquisas rápidas | Forte consistência de dados e consultas em várias tabelas |
Recurso
Bancos de dados de documentos
Repositório de chave-valor
Bancos de dados relacionais
Formato de dados
Documentos avançados e estruturados
Pares de chave-valor simples
Tabelar (linhas e colunas)
Flexibilidade
Alto; cada documento pode variar
Alto; o número de colunas pode variar de linha para linha
Limitado; esquema predefinido
Consulta
Avançada, incluindo campos aninhados
Por índice principal ou secundário para melhor desempenho
Consultas avançadas e complexas com JOINs
Ideal para
Desenvolvimento rápido e modelos de dados em evolução
Estruturas de dados simples e pesquisas rápidas
Forte consistência de dados e consultas em várias tabelas
Os bancos de dados de documentos são excelentes em ambientes dinâmicos, como plataformas de e-commerce ou apps para dispositivos móveis, em que os dados evoluem rapidamente ou assumem formas variadas. A flexibilidade deles é adequada para conjuntos de dados de diversas fontes ou com esquemas diferentes.
Por outro lado, os bancos de dados relacionais são ideais para aplicativos tradicionais, como sistemas financeiros ou gerenciamento de inventário, em que a consistência e a estrutura são indispensáveis. Por exemplo, nos serviços financeiros, manter um esquema rigoroso garante que todas as contas de clientes usem os mesmos tipos de dados exigidos pela governança.
Considerações para escolher entre as duas opções:
Aplicativos grandes e complexos, como videogames, também podem ser criados em um banco de dados de documentos e em um banco de dados relacional, com cada um armazenando diferentes partes dos dados.
Os bancos de dados de documentos e os armazenamentos de chave-valor são bancos de dados NoSQL, mas têm finalidades diferentes com base na forma como lidam com os dados.
Bancos de dados de documentos : os bancos de dados de documentos ampliam o conceito de chave-valor. Os documentos podem incluir dados aninhados, e os bancos de dados de documentos oferecem mais flexibilidade para indexar esses dados e permitir consultas eficientes sobre os valores dos dados aninhados. Essa estrutura permite que os bancos de dados de documentos gerenciem conjuntos de dados diversos e ofereçam compatibilidade com consultas avançadas.
Armazenamentos de chave-valor: esses bancos de dados usam uma estrutura simples de chaves e valores. Cada chave é única e aponta diretamente para o valor. Essa simplicidade torna os repositórios de chave-valor extremamente rápidos para pesquisas, mas eles não são ideais para lidar com dados complexos ou hierárquicos, porque não usam linguagens de consulta sofisticadas.
Quando usar cada uma:
O Firestore é um banco de dados de documentos sem servidor e totalmente gerenciado do Google Cloud. Ele permite armazenar dados em documentos flexíveis e se integra perfeitamente a outros serviços do Google Cloud para uma solução robusta e escalonável.
A diferença está na estrutura e na flexibilidade. Bancos de dados SQL, como o Cloud SQL ou o Cloud Spanner, usam tabelas rígidas com linhas e colunas. Bancos de dados de documentos, como o Firestore, armazenam dados em documentos flexíveis semelhantes a JSON, permitindo que a estrutura evolua sem quebrar o esquema.
Os bancos de dados de documentos são ferramentas poderosas para lidar com as necessidades de dados modernas. Confira algumas das principais vantagens:
Flexibilidade
Devido aos esquemas dinâmicos, os bancos de dados de documentos podem ser úteis para aplicativos em que os modelos de dados mudam com frequência.
A indexação integrada e os padrões eficientes de acesso a dados tornam os bancos de dados de documentos rápidos, mesmo ao lidar com conjuntos de dados grandes ou complexos.
Escalonabilidade
Com o escalonamento horizontal, você pode adicionar mais servidores à medida que seus dados crescem, garantindo um desempenho consistente para aplicativos em crescimento. Os bancos de dados de documentos também podem ser escalonados verticalmente adicionando poder computacional a cada nó.
Experiência do desenvolvedor
É possível mapear documentos JSON para objetos no banco de dados usando uma sintaxe familiar para os desenvolvedores. Atualize documentos diretamente no seu código.
Versatilidade dos dados
Os bancos de dados de documentos são excelentes para armazenar, gerenciar e consultar vários tipos de dados, incluindo informações não estruturadas e semiestruturadas e metadados associados a arquivos como imagens e vídeos.
O MongoDB é um banco de dados de documentos amplamente usado, conhecido pelo formato de dados BSON flexível, linguagem de consulta ad hoc e recursos de escalonamento horizontal. Ele está disponível como uma oferta comercial da MongoDB, Inc. Vários bancos de dados concorrentes de outros fornecedores oferecem diferentes graus de compatibilidade com o MongoDB.
O Firestore é um banco de dados de documentos sem servidor totalmente gerenciado que oferece sincronização de dados em tempo real para apps da Web e para dispositivos móveis com a integração ao Google Cloud e ao Firebase.
O CosmosDB é um serviço de banco de dados multimodelo projetado para aplicativos que exigem leituras e gravações de baixa latência em escala global.
O Couchbase é um banco de dados de documentos distribuído e uma plataforma de nuvem que oferece compatibilidade com cargas de trabalho multicloud, móveis, de IA e de computação de borda.
O Amazon DocumentDB é um serviço de banco de dados gerenciado da Amazon Web Services (AWS) que é compatível com a API do MongoDB.
O Firestore é um banco de dados de documentos totalmente gerenciado que reduz as complexidades do gerenciamento de bancos de dados. Ele permite que você aproveite todo o poder do Google Cloud e sua plataforma escalonável globalmente.
Seja para criar um app pequeno ou escalonar uma plataforma global, os recursos do Firestore foram projetados para ajudar você a avançar mais rápido, mantendo a flexibilidade e o desempenho.
Como parte do Google Cloud e do Firebase, o Firestore se integra para potencializar seus aplicativos com integrações simples com o Firebase Auth, o BigQuery e muitos outros serviços. O Firestore oferece as ferramentas necessárias para o sucesso, desde apps para dispositivos móveis e plataformas empresariais até ferramentas de colaboração em tempo real.
Comece hoje mesmo com um nível gratuito disponível para baixo uso e aproveite os benefícios de um banco de dados de documentos poderoso, confiável e escalonável.
Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.