{ name: mongo, type: db, authors: [ joãopedro castro...
TRANSCRIPT
{ "name": "Mongo", "type": "DB", "authors": [ "João Pedro Castro", "Cristina Ciferri" ] }
Roteiro
1 O MongoDB e sua participação no mercado;
2 Conceitos iniciais: execução, coleções, documentos e comandos básicos;
3 Relacionamentos: conversão de um MER para um modelo de documentos;
4 Métodos avançados de recuperação de informações no MongoDB.
Roteiro
1 O MongoDB e sua participação no mercado;
2 Conceitos iniciais: execução, coleções, documentos e comandos básicos;
3 Relacionamentos: conversão de um MER para um modelo de documentos;
4 Métodos avançados de recuperação de informações no MongoDB.
Introdução: O que é o MongoDB?
u O MongoDB é um SGBD NOSQL open-source e orientado adocumentos.
u Alguns de seus diferenciais são:
u Alto desempenho: documentos embutidos e índices atuando sobreeles;
u Rica linguagem de consulta: permite operações CRUD, agregaçõesde dados, busca por texto e consultas geoespaciais;
u Alta disponibilidade: replica set;
u Escalabilidade horizontal: sharding.
{ "fonte": "https://docs.mongodb.com/manual/introduction/" }
O MongoDB é realmente utilizado?
u Com a popularidade e a consolidação da linguagem SQLno mercado, este tipo de questionamento é comum.
u DB-ENGINES RANKING: ranking de popularidade dos SGBDmais utilizados, atualizado mensalmente.
u Pode ser acessado em: https://db-engines.com/en/ranking;
u Considera uma série de critérios para obter uma pontuação capazde classificar os SGBD.
{ "fonte": "https://db-engines.com/en/ranking_definition" }
Critérios do DB-ENGINES
u Menções do SGBD em mecanismos de busca;
u Interesse geral no SGBD (Google Trends);
u Frequência de discussões técnicas sobre o SGBD (StackOverflow e DBA Stack Exchange);
u Número de ofertas de emprego relacionadas ao SGBD;
u Número de perfis em redes profissionais onde o SGBD émencionado (Linkedin e Upwork);
u Relevância em redes sociais (Twitter).
{ "fonte": "https://db-engines.com/en/ranking_definition" }
O Ranking do DB-ENGINES
{ "fonte": "https://db-engines.com/en/ranking" }
O MongoDB no Mercado
{ "fonte": "https://www.vagas.com.br/vagas/v1500721/programador-javascript-html-nodejs" }
O MongoDB no Mercado
{ "fonte": "https://www.vagas.com.br/vagas/v1510244/arquiteto-tecnico-scrum-master-sp" }
O MongoDB no Mercado
{ "fonte": "https://www.vagas.com.br/vagas/v1501921/consultor-especialista" }
O MongoDB no Mercado
{ "fonte": "http://www.catho.com.br/vagas/analista-desenvolvedor-magento/11659583/" }
O MongoDB no Mercado
{ "fonte": "http://www.catho.com.br/vagas/engenheiro-de-software/11769216/" }
Roteiro
1 O MongoDB e sua participação no mercado;
2 Conceitos iniciais: execução, coleções, documentos e comandos básicos;
3 Relacionamentos: conversão de um MER para um modelo de documentos;
4 Métodos avançados de recuperação de informações no MongoDB.
Executando o MongoDB
u O MongoDB possui versões para as plataformas MacOS,Linux e Windows.
u Maiores detalhes sobre os procedimentos necessários para realizara instalação deste SGBD podem ser encontrados em:https://docs.mongodb.com/manual/administration/install-community/.
u Após instalado, é necessário rodar o servidor do SGBD,localizado no executável mongod.
u Com o servidor rodando, o shell do MongoDB é acessado através doexecutável mongo.
u No MacOS ou no Linux, basta digitar o nome dos executáveis noterminal.
Criando um Banco de Dados
u O MongoDB abstrai diversos comandos DDL.
u Estruturas são criadas conforme estas se tornam necessárias.
u Para criar um banco de dados, basta você usar o comandopara acessar um banco que ainda não existe.
u Assim que um registro for inserido neste banco, ele será criado epersistido automaticamente.
SQL
MONGO
Coleções e Documentos (Insert)
u Como em outros modelos orientado a documentos, oMongoDB organiza os dados em coleções de documentos.
u Cada documento possui um atributo identificador (_id) e umaquantidade qualquer de outros atributos.
u Não é necessário (Mas é possível) especificar o ID dosdocumentos!
u Não é necessário especificar o tipo dos atributos!
u Documentos diferentes que fazem parte de uma mesma coleçãopodem ter atributos diferentes!
Coleções e Documentos (Insert)
u Para criar uma coleção, basta inserir um documentonela.
u Existem duas operações de inserção no MongoDB:
u Inserção de um único documento: insertOne.
u Recebe como parâmetro um único documento.
u Inserção de múltiplos documentos de uma só vez:insertMany.
u Recebe como parâmetro um vetor de documentos.
Coleções e Documentos (Insert)
SQL
Coleções e Documentos (Insert)
MONGO
Coleções e Documentos (Select)
u O MongoDB possui dois métodos principais para retornarinformações de documentos.
u O método find() retorna um ponteiro para todos os documentosque atendem aos critérios especificados.
u O método findOne() retorna um único documento que atende aoscritérios especificados.
u Caso exista mais de um documento atendendo aos critérios, o métodofindOne() retorna apenas o primeiro.
SQL
MONGO
Coleções e Documentos (Select)
u Ambos os métodos find() e findOne() permitemespecificar, da mesma forma, critérios de seleção eprojeção para o resultado.
Projeção Seleção
ProjeçãoSeleção
SQL
MONGO
Coleções e Documentos (Update)
u O MongoDB possui três métodos para atualização de dadosem um documento.
u Os médotos updateOne() e updateMany() localizam odocumento segundo os critérios especificados e fazem asalterações descritas.
u Diferença: quantidade de documentos afetada.
u Enquanto o updateOne() afeta somente um documento queatenda os critérios, o updateMany() afeta todos.
u O método replaceOne() localiza um único documento queatenda aos critérios especificados e o substitui por um novodocumento.
u O atributo _id do documento permanece o mesmo.
Coleções e Documentos (Update)
SQL
Seleção
Alteração
Coleções e Documentos (Update)
SeleçãoAlteração
Seleção Alteração
Seleção AlteraçãoMONGO
Coleções e Documentos (Delete)
u O MongoDB possui dois métodos para a remoção dedocumentos.
u Os médotos deleteOne() e deleteMany() localizam odocumento segundo os critérios especificados e oremovem da base de dados.
u Diferença: quantidade de documentos afetada.
u Enquanto o deleteOne() afeta somente um documento que atendaos critérios, o deleteMany() afeta todos.
Coleções e Documentos (Delete)
SQL
MONGO
Seleção
Seleção
Seleção
Roteiro
1 O MongoDB e sua participação no mercado;
2 Conceitos iniciais: execução, coleções, documentos e comandos básicos;
3 Relacionamentos: conversão de um MER para um modelo de documentos;
4 Métodos avançados de recuperação de informações no MongoDB.
Relacionamentos no MongoDB
u O MongoDB não implementa integridade referencial enem operações de junção!
u Logo, não existe o conceito de chave estrangeira paradocumentos.
u Existem duas maneiras de se expressar relacionamentosentre documentos no MongoDB.
u Referências entre documentos: é possível guardar o _id de umdocumento como um atributo em outro documento.
u Não é o mesmo que guardar uma chave estrangeira!
u Documentos embutidos: o MongoDB permite guardar umdocumento inteiro como um atributo em um documento (Sub-Documentos).
Modelo Entidade-Relacionamento
MODELO ENTIDADE-RELACIONAMENTO
Modelo Relacional
MODELO RELACIONAL
Modelo de Documentos (Referências)
MODELO DE DOCUMENTOS (REFERÊNCIAS)
Modelo de Documentos (Embutidos)MODELO DE DOCUMENTOS
(REFERÊNCIAS/EMBUTIDOS)
Roteiro
1 O MongoDB e sua participação no mercado;
2 Conceitos iniciais: execução, coleções, documentos e comandos básicos;
3 Relacionamentos: conversão de um MER para um modelo de documentos;
4 Métodos avançados de recuperação de informações no MongoDB.
Consultas Complexas em MongoDB
u O MongoDB possui diversos métodos e operadores quepermitem a realização de consultas complexas em seusdados.
u Estes serão apresentados por meio de consultas escritas para osmodelos de dados apresentados na seção anterior.
u Frameworks como Map-Reduce não serão abordados nestaapresentação.
u As consultas apresentadas nesta seção foram retiradas de:
u CASTRO, João Pedro de Carvalho. Uma Análise de Técnicas deRecuperacão de Informacões em um SGBD NoSQL. Monografia(Bacharelado em Sistemas de Informacão) – Universidade Federalde Itajubá, Itajubá, 2015.
Consulta 1: Operador LIKE
u Consulta em SQL:
u Consulta no MongoDB (Modelo com Referências):
u Consulta no MongoDB (Modelo com Documentos Embutidos):
Consulta 2: Operador OR
u Consulta em SQL:
u Consulta no MongoDB (Modelo de Referências):
u Consulta no MongoDB (Modelo com Documentos Embutidos):
Consulta 3: Operador IN
u Consulta em SQL:
u Consulta no MongoDB (Modelo de Referências):
u Consulta no MongoDB (Modelo com Documentos Embutidos):
Consulta 4: Operadores >=/<=/!=
u Consulta em SQL:
u Consulta no MongoDB (Modelo de Referências):
u Consulta no MongoDB (Modelo com Documentos Embutidos):
Consulta 5: Operadores >=/<=/NOT IN
u Consulta em SQL:
u Consulta no MongoDB (Modelo de Referências):
u Consulta no MongoDB (Modelo com Documentos Embutidos):
Consulta 6: Função Agregada COUNT
u Consulta em SQL:
u Consulta no MongoDB (Modelo de Referências):
u Consulta no MongoDB (Modelo com Documentos Embutidos):
Consulta 7: Função Agregada AVG
u Consulta em SQL:
u Consulta no MongoDB (Modelo de Referências):
Consulta 7: Função Agregada AVG
u Consulta em SQL:
u Consulta no MongoDB (Modelo com Documentos Embutidos):
Consulta 8: Função Agregada SUM
u Consulta em SQL:
u Consulta no MongoDB (Modelo de Referências):
Consulta 8: Função Agregada SUM
u Consulta em SQL:
u Consulta no MongoDB (Modelo com Documentos Embutidos):
Consulta 9: Operação de Junção
u Consulta em SQL:
u Consulta no MongoDB (Modelo de Referências):
Consulta 9: Operação de Junção
u Consulta em SQL:
u Consulta no MongoDB (Modelo com Documentos Embutidos):
Consulta 10: …
u Consulta em SQL:
Consulta 10: …
u Consulta no MongoDB (Modelo de Referências):
Consulta 10: …
u Consulta no MongoDB (Modelo com Documentos Embutidos):
Consulta 10: Possível Solução
u Consulta no MongoDB (Modelo com Duplicatas, não mostrado na apresentação):