CW 3
🔹 O que é migração?
Migrar significa transferir dados de um sistema para outro.
No nosso caso, é sair de um banco relacional (SQL) para um banco não relacional (NoSQL, como o MongoDB).
🏛 Banco Relacional (SQL)
Organiza dados em tabelas, com linhas e colunas.
Exige um esquema fixo (ex: CPF sempre precisa estar presente).
Usa normalização, ou seja, dividir informações em várias tabelas para evitar redundância.
📌 Exemplo SQL:
Tabela Alunos
id | nome
1 | Maria
2 | João
Tabela Cursos
id | nome
10 | Engenharia
11 | Design
Tabela Matrícula
aluno_id | curso_id
1 | 10
2 | 10
👉 Para saber em quais cursos Maria está, precisamos juntar as tabelas (JOIN).
🌐 Banco Não Relacional (NoSQL – MongoDB)
Armazena dados em documentos JSON (mais flexível).
Não precisa de esquema fixo: cada documento pode ter campos diferentes.
Trabalha com denormalização, ou seja, guardar dados relacionados juntos para evitar muitas consultas.
📌 Exemplo MongoDB:
{
"nome": "Maria",
"cursos": ["Engenharia", "Design"]
}
👉 Aqui, os dados já estão todos no mesmo documento.
🔀 Diferenças principais
SQL: organizado, rígido, depende de JOINs para relacionar.
NoSQL: flexível, rápido para consultas, mas pode gerar redundância (mesmos dados em mais de um lugar).
🚀 Por que migrar para NoSQL?
Flexibilidade: permite guardar dados variados sem alterar o esquema.
Escalabilidade: lida melhor com grandes volumes de dados distribuídos.
Agilidade: consultas mais rápidas em alguns cenários (quando os dados já estão juntos).
⚠ Desafios da migração
1. Mapear tabelas relacionais para coleções/documentos.
Ex: as tabelas "Aluno", "Curso" e "Matrícula" podem virar um único documento com array de cursos.
2. Manter consistência dos dados.
Como não há regras rígidas como no SQL, é preciso pensar em validações no sistema.
3. Escolher entre normalizar ou denormalizar.
Normalizar → menos redundância, mas mais consultas.
Denormalizar → dados juntos, mas pode repetir informações.
✅ Resumo Final:
Migrar de SQL para NoSQL significa trocar tabelas rígidas por documentos flexíveis.
O grande desafio é planejar a modelagem dos dados, decidindo quando usar documentos incorporados (denormalização) e quando manter referências.