Pular para conteúdo

Exercícios: Aula 13 - Modelagem de Documentos (NoSQL) 🏗️

Aprenda a arte de decidir entre unir ou separar seus dados no MongoDB.


🟢 Nível: Básico

1. Conceitos de Modelagem

Explique com suas palavras a diferença entre as estratégias de Embedding e Referencing.

2. Escolha de Estratégia

Em um sistema de biblioteca, você armazenaria os capítulos de um livro de forma Aninhada ou Referenciada no documento do Livro? Justifique.


🟡 Nível: Intermediário

3. Modelagem de Usuário

Desenhe um JSON de um usuário que contenha: * Nome e E-mail. * Três endereços aninhados (Casa, Trabalho, Praia). * Uma lista de IDs de fotos_perfil (Referenciadas).

4. Vantagens e Desvantagens

Cite uma vantagem de performance e uma desvantagem de manutenção ao usar o Embedding.


🔴 Nível: Desafio

5. O Cenário Híbrido

Imagine um sistema de rede social como o Twitter. 1. O perfil do usuário deve ter os nomes dos seus 5 amigos mais próximos aninhados. 2. As postagens do usuário (que podem ser milhares) devem ser referenciadas. 3. Escreva o JSON que represente esse perfil de usuário seguindo essa lógica. 4. Por que guardamos os nomes dos amigos aninhados se já temos os IDs deles? (Dica: Pesquise por Extended Reference Pattern).


📚 Gabarito e Soluções Comentadas

Gabarito Explicado ### Questão 1: Conceitos de Modelagem **Resposta Comentada:** - **Fundamentação:** No contexto de **Modelagem de Documentos no NoSQL ️**, o conceito abordado (Conceitos de Modelagem) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 2: Escolha de Estratégia **Resposta Comentada:** - **Fundamentação:** No contexto de **Modelagem de Documentos no NoSQL ️**, o conceito abordado (Escolha de Estratégia) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 3: Modelagem de Usuário **Resposta Comentada:** - **Fundamentação:** No contexto de **Modelagem de Documentos no NoSQL ️**, o conceito abordado (Modelagem de Usuário) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 4: Vantagens e Desvantagens **Resposta Comentada:** - **Fundamentação:** No contexto de **Modelagem de Documentos no NoSQL ️**, o conceito abordado (Vantagens e Desvantagens) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 5: O Cenário Híbrido **Resposta Comentada:** - **Fundamentação:** No contexto de **Modelagem de Documentos no NoSQL ️**, o conceito abordado (O Cenário Híbrido) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 1: O perfil do usuário deve ter os nomes dos seus 5 amigos mais próximos aninhados. **Resposta Comentada:** - **Fundamentação:** No contexto de **Modelagem de Documentos no NoSQL ️**, o conceito abordado (O perfil do usuário deve ter os nomes dos seus 5 amigos mais próximos aninhados.) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 2: As postagens do usuário (que podem ser milhares) devem ser referenciadas. **Resposta Comentada:** - **Fundamentação:** No contexto de **Modelagem de Documentos no NoSQL ️**, o conceito abordado (As postagens do usuário (que podem ser milhares) devem ser referenciadas.) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 3: Escreva o JSON que represente esse perfil de usuário seguindo essa lógica. **Resolução e Implementação:**
-- Resolução da consulta / modelagem para: Escreva o JSON que represente esse perfil de usuário seguindo essa lógica.
SELECT id, nome, status, data_criacao
FROM tb_registro
WHERE status = 'ATIVO'
ORDER BY data_criacao DESC;
- **Explicação:** A solução atende diretamente aos requisitos de **Modelagem de Documentos no NoSQL ️**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 4: Por que guardamos os nomes dos amigos aninhados se já temos os IDs deles? (Dica **Resposta Comentada:** - **Fundamentação:** No contexto de **Modelagem de Documentos no NoSQL ️**, o conceito abordado (Por que guardamos os nomes dos amigos aninhados se já temos os IDs deles? (Dica) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais.