Dados incorporados versus referĂȘncias
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.
Modelos de dados incorporados
VocĂȘ pode incorporar dados relacionados em um Ășnico documento. No exemplo seguinte, os campos contact
e access
sĂŁo documentos incorporados:
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.
Casos de uso
Use modelos de dados incorporados nos seguintes cenĂĄrios:
VocĂȘ tem relacionamentos "contĂ©m" entre entidades. Por exemplo, um documento
contacts
que contém umaddress
. 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
Consultar dados incorporados
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 mebibytes.
Para dados binĂĄrios grandes, considere usar o GridFS.
ReferĂȘncias
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
.
As referĂȘncias resultam em modelos de dados normalizados porque os dados sĂŁo divididos em vĂĄrias coleçÔes e nĂŁo duplicados.
Casos de uso
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
edepartment
, considere incorporar informaçÔes do departamento nos documentosemployee
. No entanto, se vocĂȘ costuma consultar uma lista de departamentos, seu aplicativo terĂĄ o melhor desempenho com uma coleção dedepartment
separada vinculada à coleçãoemployee
com uma referĂȘncia.
Modelos de dados normalizados de consulta
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.
Saiba mais
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