Escolar Documentos
Profissional Documentos
Cultura Documentos
4. Modelagem NoSQL
4.2 Estratégias
4.3 Relações
1 2 3 4
Formas de modelar
Design de banco não relacionais
Firebase - BaaS
Conhecendo por dentro da ferramenta NoSQL - Documentos
Tabelas Coleções
Linhas Documentos
NoSQL - Documentos
Coleções de Dados = "Tabelas" Documentos (formato json)
{
"alunos":{
"id_aluno": "0001",
"nome_cliente": "Matheus Castelo",
"idade": 29,
"email": "castelo@gmail.com",
cursos alunos "celular": "489999-9999"
}
}
campo valor
professores
vendas
Bancos de dados do mercado (NoSQL)
SQL e NoSQL
SQL NoSQL
Banco de dados relacional Banco de dados não relacional
Cuidado!
Geralmente buscamos:
- Pensar estrategicamente em quais
consultas faremos;
- Agregar dados quando possível, pois
fazer joins não é adequado em NoSQL.
NoSQL é flexível
NoSQL SQL
"alunos" : {
"aluno_id": 0001,
"nome_aluno": "Carol",
"email_aluno": "carol@gmail.com"
}
"cursos": {
{
"curso_id": C001,
"nome_curso": "Formação FlutterFlow",
"curso_duracao": 20,
"aluno_id": 0001
},
{
"curso_id": C002,
"nome_curso": "Formação Bubble",
"curso_duracao": 20,
"aluno_id": 0001
"ultima_atualização": 12-06-2023
}
}
Formas de Modelar
Como fazer o design do Banco de Dados
Diagrama UML ER
Fonte: Dataedo.com
Mapa Mental
Viagens Usuários
Documentos Documentos
Design Padrão No-Code Start-Up
alunos {
"alunos":{
"id_aluno": "0001",
"nome_cliente": "Matheus Castelo",
"idade": 29,
aluno1 aluno2 aluno3 "email": "castelo@gmail.com",
"celular": "489999-9999"
}
Coleções Documentos }
aluno7 aluno8
Modelagem Aplicativo de Viagens
Modelagem Aplicativo Delivery
4. Modelagem na prática
Passo a passo para modelar seu banco de dados NoSQL
Metodologia de Modelagem
1 2 3 4
Entendimento de quais
"perguntas" você fará para o
seu banco
Modelagem NoSQL - Documentos
Princípios Importantes
Pontos a considerar
- Má Performance
Ao carregarmos uma lista completa
dos cursos, se houver muitas
avaliações, isso impactará a
performance pois muitos dados serão
carregados ao mesmo tempo.
- Limitação de consulta
Como fazer uma query para consultar
as avaliações de todos cursos mais
recentes?
- Segurança e privacidade
Se há dados sensíveis, é melhor
separar em coleções diferentes.
Ideal para consultas que não
Pontos positivos
- Os dados já estão conectados ao
documento em questão
- Melhor performance, pois
utilizamos coleções e não grandes
documentos
- Mais seguro pois os dados estão
em coleções diferentes.
Pontos a considerar
- Limitação de consulta
Como fazer uma query para
consultar as avaliações de
todos cursos mais recentes?
Estratégia 3 Cenário ideal para
grande quantidade de
Criar novas coleções com relações dados já agregados
Pontos positivos
- Melhor performance, pois utilizamos
coleções e não grandes documentos
- Mais adequado para consultas
- Seguro
Pontos a considerar
- Os dados não estão conectados ao
documento em questão
- Pode acontecer de ter que fazer
várias queries diferentes, isso pode
afetar a performance.
Opção 1) Relacionamento
Conectar os documentos por meio de
relações via ID
Opção 2) Agregação
Juntar os dados de acordo com a
estratégia 1, onde incorporamos dados
no próprio documento.
Relações - 1:muitos
1 n
Cursos possui Vendas
n n
Alunos possui Cursos
Nova tabela
Relações - muitos:muitos NoSQL
Relações - muitos:muitos NoSQL
Exemplo Instagram Já aproveita para
nos seguir :)
1 n
Users possui Posts
Curtidas
n n
Users Likes Posts
Exemplo Instagram
Bora pra prática! Mão na massa!
1) No Miro
Desenho final da modelagem
NoSQL
2) No Firebase
Modelar banco de dados da
Formação e suas relações
Modelagem Final
O que aprendemos até aqui?
SGBD Tradicionais
@mat_castelo
/in/matheuscastelobranco @netocamarano
57
Referências e links importantes
Get to know Cloud Firestore, Youtube Firebase
https://www.youtube.com/playlist?list=PLl-K7zZEsYLluG5MCVEzXAQ7ACZBCuZgZ
MongoDb University
https://learn.mongodb.com/