Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ /

Dados incorporados versus referências

Nesta página

  • Modelos de dados incorporados
  • Casos de uso
  • Consultar dados incorporados
  • Referências
  • Casos de uso
  • Modelos de dados normalizados de consulta
  • Saiba mais

Modelos de dados eficazes oferecem suporte às necessidades do seu aplicativo. Uma decisão importante para o projeto de esquema é incorporar dados ou usar referências.

Você pode incorporar dados relacionados em um único documento. No exemplo seguinte, os campos contact e access são documentos incorporados:

Modelo de dados com campos incorporados que contêm todas as informações relacionadas.

Os modelos de dados incorporados geralmente são desnormalizados, porque os dados acessados com frequência são duplicados em várias coleções.

Os modelos de dados incorporados permitem que os aplicativos consultem informações relacionadas no mesmo registro do banco de dados. Como resultado, os aplicativos exigem menos consultas e atualizações para concluir operações comuns.

Use modelos de dados incorporados nos seguintes cenários:

  • Você tem relacionamentos "contém" entre entidades. Por exemplo, um documento contacts que contém address. Consulte Modelar relacionamentos um-para-um com documentos incorporados.

  • Você tem relações um-para-muitos entre entidades. Nesses relacionamentos, os documentos "muitos" ou filhos são visualizados no contexto de "um" ou documentos pai. Consulte Modele relacionamentos um-para-muitos com documentos incorporados.

A incorporação oferece os seguintes benefícios:

  • Melhor desempenho para operações de leitura

  • A capacidade de recuperar dados relacionados em uma única operação de banco de dados

  • A capacidade de atualizar dados relacionados em uma única operação de gravação atômica

Para consultar dados em documentos incorporados, use a notação de ponto. Para obter exemplos de consultas de dados em arrays e documentos incorporados, consulte:

Observação

Limite de tamanho do documento

Os documentos no MongoDB devem ser menores que 16 megabytes.

Para dados binários grandes, considere usar o GridFS.

As referências armazenam relacionamentos entre dados ao incluir links, chamados de referências, de um documento para outro. No exemplo a seguir, os documentos contact e access contêm uma referência ao documento user.

Modelo de dados usando referências para vincular documentos. Tanto o documento ``contact`` quanto o documento ``access`` contêm uma referência ao documento ``user``.

As referências resultam em modelos de dados normalizados porque os dados são divididos em várias coleções e não duplicados.

Use referências para vincular dados relacionados nos seguintes cenários:

  • A incorporação resultaria na duplicação de dados, mas não traria vantagens suficientes de desempenho de leitura para superar as implicações da duplicação. Por exemplo, quando os dados incorporados mudam com frequência.

  • É preciso que você represente relacionamentos complexos de muitos para muitos ou grandes conjuntos de dados hierárquicos.

  • A entidade relacionada é frequentemente consultada sozinha. Por exemplo, se você tiver dados employee e department, considere incorporar informações do departamento nos documentos employee . No entanto, se você costuma consultar uma lista de departamentos, seu aplicativo terá o melhor desempenho com uma coleção de department separada vinculada à coleção employee com uma referência.

Para executar queries de dados normalizados em várias coleções, o MongoDB fornece os seguintes estágios de agregação:

Para ver um exemplo dos modelos de dados normalizados, consulte Modele relacionamentos de um para muitos com referências de documentos.

Para obter exemplos de vários modelos de árvores, consulte Estruturas de árvores modelo.

Para obter mais informações sobre modelagem de dados com o MongoDB, faça o download do Guia de Modernização de Aplicativos MongoDB.

O download inclui os seguintes recursos:

  • Apresentação sobre a metodologia de modelagem de dados com o MongoDB

  • Artigo técnico que aborda as melhores práticas e considerações para migrar de um modelo de dados SGBD para o MongoDB

  • Referenciar o esquema do MongoDB com seu equivalente em SGBD

  • Scorecard de modernização de aplicativos

← Conceitos de modelagem de dados