• Nenhum resultado encontrado

aula02 - MongoDB

N/A
N/A
Protected

Academic year: 2021

Share "aula02 - MongoDB"

Copied!
50
0
0

Texto

(1)
(2)

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;

(3)

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)

Introdução: O que é o MongoDB?

u

O MongoDB é um SGBD NOSQL open-source e orientado a

documentos.

u

Alguns de seus diferenciais são:

u Alto desempenho: documentos embutidos e índices atuando sobre eles;

u Rica linguagem de consulta: permite operações CRUD, agregações de dados, busca por texto e consultas geoespaciais;

u Alta disponibilidade: replica set; u Escalabilidade horizontal: sharding.

(5)

O MongoDB é realmente utilizado?

u

Com a popularidade e a consolidação da linguagem SQL

no mercado, este tipo de questionamento é comum.

u

DB-ENGINES RANKING: ranking de popularidade dos SGBD

mais 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 capaz de classificar os SGBD.

(6)

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 (Stack

Overflow 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).

(7)

O Ranking do DB-ENGINES

(8)

O MongoDB no Mercado

(9)

O MongoDB no Mercado

(10)

O MongoDB no Mercado

(11)

O MongoDB no Mercado

(12)

O MongoDB no Mercado

(13)

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;

(14)

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 realizar a 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 do executável mongo.

u No MacOS ou no Linux, basta digitar o nome dos executáveis no terminal.

(15)

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 comando

para acessar um banco que ainda não existe.

u Assim que um registro for inserido neste banco, ele será criado e persistido automaticamente.

SQL

(16)

Coleções e Documentos (Insert)

u

Como em outros modelos orientado a documentos, o

MongoDB organiza os dados em coleções de documentos.

u Cada documento possui um atributo identificador (_id) e uma quantidade qualquer de outros atributos.

u Não é necessário (Mas é possível) especificar o ID dos

documentos!

u Não é necessário especificar o tipo dos atributos!

u Documentos diferentes que fazem parte de uma mesma coleção

(17)

Coleções e Documentos (Insert)

u

Para criar uma coleção, basta inserir um documento

nela.

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.

(18)

Coleções e Documentos (Insert)

(19)

Coleções e Documentos (Insert)

(20)

Coleções e Documentos (Select)

u

O MongoDB possui dois métodos principais para retornar

informações de documentos.

u O método find() retorna um ponteiro para todos os documentos que atendem aos critérios especificados.

u O método findOne() retorna um único documento que atende aos critérios especificados.

u Caso exista mais de um documento atendendo aos critérios, o método

findOne() retorna apenas o primeiro.

SQL

(21)

Coleções e Documentos (Select)

u

Ambos os métodos find() e findOne() permitem

especificar, da mesma forma, critérios de seleção e

projeção para o resultado.

Projeção Seleção

Projeção Seleção

SQL

(22)

Coleções e Documentos (Update)

u

O MongoDB possui três métodos para atualização de dados

em um documento.

u

Os médotos updateOne() e updateMany() localizam o

documento segundo os critérios especificados e fazem as

alterações descritas.

u Diferença: quantidade de documentos afetada.

u Enquanto o updateOne() afeta somente um documento que atenda os critérios, o updateMany() afeta todos.

u

O método replaceOne() localiza um único documento que

atenda aos critérios especificados e o substitui por um novo

documento.

(23)

Coleções e Documentos (Update)

SQL

Seleção

(24)

Coleções e Documentos (Update)

Seleção Alteração Seleção Alteração Seleção Alteração MONGO

(25)

Coleções e Documentos (Delete)

u

O MongoDB possui dois métodos para a remoção de

documentos.

u

Os médotos deleteOne() e deleteMany() localizam o

documento segundo os critérios especificados e o

removem da base de dados.

u Diferença: quantidade de documentos afetada.

u Enquanto o deleteOne() afeta somente um documento que atenda os critérios, o deleteMany() afeta todos.

(26)

Coleções e Documentos (Delete)

SQL MONGO Seleção Seleção Seleção

(27)

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;

(28)

Relacionamentos no MongoDB

u

O MongoDB não implementa integridade referencial e

nem operações de junção!

u Logo, não existe o conceito de chave estrangeira para documentos.

u

Existem duas maneiras de se expressar relacionamentos

entre documentos no MongoDB.

u Referências entre documentos: é possível guardar o _id de um

documento como um atributo em outro documento.

u Não é o mesmo que guardar uma chave estrangeira!

u Documentos embutidos: o MongoDB permite guardar um

documento inteiro como um atributo em um documento (Sub-Documentos).

(29)

Modelo Entidade-Relacionamento

(30)

Modelo Relacional

(31)

Modelo de Documentos (Referências)

(32)

Modelo de Documentos (Embutidos)

MODELO DE DOCUMENTOS (REFERÊNCIAS/EMBUTIDOS)

(33)

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;

(34)

Consultas Complexas em MongoDB

u

O MongoDB possui diversos métodos e operadores que

permitem a realização de consultas complexas em seus

dados.

u Estes serão apresentados por meio de consultas escritas para os modelos de dados apresentados na seção anterior.

u Frameworks como Map-Reduce não serão abordados nesta apresentação.

u

As consultas apresentadas nesta seção foram retiradas de:

u CASTRO, João Pedro de Carvalho. Uma Análise de Técnicas de

Recuperação de Informações em um SGBD NoSQL. Monografia

(Bacharelado em Sistemas de Informação) – Universidade Federal de Itajubá, Itajubá, 2015.

(35)

Consulta 1: Operador LIKE

u Consulta em SQL:

u Consulta no MongoDB (Modelo com Referências):

(36)

Consulta 2: Operador OR

u Consulta em SQL:

u Consulta no MongoDB (Modelo de Referências):

(37)

Consulta 3: Operador IN

u Consulta em SQL:

u Consulta no MongoDB (Modelo de Referências):

(38)

Consulta 4: Operadores >=/<=/!=

u Consulta em SQL:

u Consulta no MongoDB (Modelo de Referências):

(39)

Consulta 5: Operadores >=/<=/NOT IN

u Consulta em SQL:

u Consulta no MongoDB (Modelo de Referências):

(40)

Consulta 6: Função Agregada COUNT

u Consulta em SQL:

u Consulta no MongoDB (Modelo de Referências):

(41)

Consulta 7: Função Agregada AVG

u Consulta em SQL:

(42)

Consulta 7: Função Agregada AVG

u Consulta em SQL:

(43)

Consulta 8: Função Agregada SUM

u Consulta em SQL:

(44)

Consulta 8: Função Agregada SUM

u Consulta em SQL:

(45)

Consulta 9: Operação de Junção

u Consulta em SQL:

(46)

Consulta 9: Operação de Junção

u Consulta em SQL:

(47)

Consulta 10: …

(48)

Consulta 10: …

(49)

Consulta 10: …

(50)

Consulta 10: Possível Solução

Referências

Documentos relacionados

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

A participação foi observada durante todas as fases do roadmap (Alinhamento, Prova de Conceito, Piloto e Expansão), promovendo a utilização do sistema implementado e a

Ainda segundo Gil (2002), como a revisão bibliográfica esclarece os pressupostos teóricos que dão fundamentação à pesquisa e às contribuições oferecidas por

Desta maneira, observando a figura 2A e 2C para os genótipos 6 e 8, nota-se que os valores de captura da energia luminosa (TRo/RC) são maiores que o de absorção (ABS/RC) e

Dos 53 manuais, os 10 últimos são dedicados a reformatação de do- cumentos para fins de preservação. Os artigos abordam, principalmente, a microfilmagem e a digitalização

Como pontos fortes, destacam-se a existência de iniciativas já em- preendidas em torno da aprovação de um Código de classificação e uma Ta- bela de temporalidade e destinação

Se eu morresse amanhã, viria ao menos Fechar meus olhos minha triste irmã; Minha mãe de saudades morreria. Se eu

Os autores relatam a primeira ocorrência de Lymnaea columella (Say, 1817) no Estado de Goiás, ressaltando a importância da espécie como hospedeiro intermediário de vários parasitos