O que é um banco de dados de documentos?

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.

Pontos principais

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:

  • Modelos de dados flexíveis: cada documento pode ter uma estrutura única, um design fácil de usar para desenvolvedores que mapeia objetos diretamente para o código
  • Escalonabilidade horizontal: projetados para escalonamento horizontal, os bancos de dados de documentos são facilmente escalonáveis para crescimento
  • Consultas avançadas: uma linguagem de consulta avançada permite filtragem, classificação e agregação de dados complexas
  • Variedade de casos de uso: os bancos de dados de documentos são ideais para dados não estruturados ou semiestruturados e têm uma variedade de casos de uso, como sistemas de gerenciamento de conteúdo, perfis de usuários, registros de saúde e catálogos de produtos de e-commerce

Como funciona um banco de dados de documentos?

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.

Principais recursos de um banco de dados de documentos

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.

Principais casos de uso de bancos de dados de documentos

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:

  • Sistemas de gerenciamento de conteúdo (CMS): gerencie diversos conteúdos, de postagens de blog a descrições de produtos, garantindo a entrega e as atualizações eficientes do conteúdo
  • Plataformas de e-commerce: ofereça suporte a lojas on-line de alto desempenho, gerenciando catálogos de produtos complexos, contas de usuários e transações em tempo real
  • Análise em tempo real: processar e analisar grandes volumes de dados para receber insights valiosos e tomar decisões baseadas em dados
  • Web e apps para dispositivos móveis: crie apps rápidos e responsivos que ofereçam experiências de usuário perfeitas em todos os dispositivos
  • Internet das Coisas (IoT): armazene e analise grandes quantidades de dados de sensores para alimentar dispositivos e sistemas inteligentes
  • Desenvolvimento de jogos: crie experiências imersivas gerenciando dados de jogadores, estados de jogos e placares
  • Aplicativos de saúde: armazene e gerencie com segurança informações sensíveis dos pacientes, permitindo uma prestação de serviços de saúde eficiente e precisa
  • Aplicativos com tecnologia de IA: ofereça suporte à IA com um modelo de dados que pode evoluir rapidamente e acompanhar as mudanças nos comandos de IA
  • Cache de IA: armazene em cache os resultados de serviços de IA que produzem traduções de idiomas, classificações de dados e muito mais para reduzir os custos de veiculação

Comparação entre bancos de dados de documentos, de chave-valor e relacionais

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

Bancos de dados de documentos versus bancos de dados relacionais

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:

  • Estrutura: os bancos de dados relacionais aplicam esquemas rigorosos, enquanto os bancos de dados de documentos permitem que cada registro tenha uma estrutura exclusiva
  • Relações: os bancos de dados relacionais dependem de operações JOIN para conectar tabelas, enquanto os bancos de dados de documentos geralmente incorporam dados relacionados em um único documento para acesso mais rápido
  • Escalonabilidade: os bancos de dados relacionais são mais fáceis de escalonar verticalmente, adicionando mais recursos a um único servidor, mas exigem mecanismos complexos para escalonamento horizontal. Os bancos de dados de documentos são criados para escalonamento horizontal em vários servidores
  • Flexibilidade: os bancos de dados de documentos se adaptam a modelos de dados em mudança sem esforço, enquanto os bancos de dados relacionais exigem um esforço significativo para modificar esquemas

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.

Banco de dados de documentos versus repositórios de chave-valor

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:

  • Escolha um repositório de chave-valor para estruturas de dados simples, como gerenciamento de sessões de usuários ou armazenamento em cache, em que pesquisas rápidas são essenciais
  • Escolha um banco de dados de documentos para aplicativos com estruturas de dados complexas e em evolução, como o gerenciamento de catálogos de produtos ou perfis de usuários

Perguntas frequentes sobre bancos de dados de documentos

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.

Benefícios de usar um banco de dados de documentos

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.

Desempenho

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.

Escolher o Firestore para suas necessidades de banco de dados de documentos

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.

  • Arquitetura sem servidor : o Firestore é sem servidor, o que significa que não há infraestrutura para configurar ou gerenciar. Ele é escalonado automaticamente para lidar com suas cargas de dados, de zero a milhões de conexões simultâneas.
  • Integração com serviços do Google Cloud : conecte-se facilmente a outros serviços do Google Cloud, como Cloud Functions, Cloud Run e BigQuery. Isso permite pipelines de análise e processamento de dados eficientes sem configurações complexas.
  • Compatibilidade com o MongoDB : use drivers, ferramentas e código do MongoDB para se conectar diretamente ao Firestore. Isso torna a migração de aplicativos atuais ou o início de novos projetos com padrões conhecidos incrivelmente simples.
  • Atualizações em tempo real: mantenha seus usuários conectados com a sincronização de dados em tempo real, integrada diretamente à plataforma.
  • Escalonabilidade global: lide com o crescimento sem esforço com a capacidade do Firestore de escalonar horizontalmente, garantindo acesso de baixa latência para usuários em todo o mundo.
  • Fácil para desenvolvedores: concentre-se na criação de recursos inovadores sem se preocupar com a infraestrutura ou a manutenção. O serviço totalmente gerenciado do Firestore cuida do trabalho pesado.
  • Nível gratuito para baixo uso : o Firestore oferece um nível gratuito generoso, o que o torna ideal para startups ou projetos menores que querem escalonar à medida que crescem sem custos iniciais.

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.

Resolva seus desafios comerciais com o Google Cloud

Clientes novos recebem US$ 300 em créditos para usar no Google Cloud.

Outros recursos

  • O que é um banco de dados relacional? Aprenda os fundamentos dos bancos de dados relacionais, incluindo como eles estruturam os dados em linhas e colunas e quando usá-los para consistência forte
  • O que é um banco de dados NoSQL? Conhecer os diferentes tipos de bancos de dados NoSQL, como os armazenamentos de chave-valor, documentos e colunas largas, e descobrir como eles lidam com dados não estruturados
  • Comece a usar o Firestore: siga este guia para configurar seu primeiro banco de dados do Firestore, adicionar dados e começar a criar aplicativos escalonáveis no Google Cloud

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