SlideShare uma empresa Scribd logo
1 de 88
Baixar para ler offline
Introdução ao
NoSQL e MongoDB
Julio Cartier M. Gomes
Sistemas de Informação - UFERSA (Angicos)
1
2
História
3
Quem utiliza Big Data ?
4
Big Data
5
6
O que é NoSQL?
NoSQL é um movimento que promove soluções de
armazenamento de dados não relacionais. Ele é composto por
diversas ferramentas que, de forma particular e específica,
resolvem problemas como tratamento de grandes volumes de
dados, execução de consultas com baixa latência e modelos
flexíveis de armazenamento de dados, como documentos
XML ou JSON.
7
Quando surgiu?
● O termo foi usado pela primeira vez em 1998 para um
banco de dados relacional que omitiu o uso de SQL.
● O termo foi usado novamente em 2009 e usado para
conferências de defensores de bancos de dados
não-relacionais.
8
SGBD x NoSQL
A - Atomicity (Atomicidade)
C - Consistency (Consistência)
I - Isolation (Isolamento)
D - Durability (Durabilidade)
9
X
B - Basically
A - Available
S - Soft-state (Estado Leve)
E - Eventually Consistency
(Eventualmente
Consistente)
Basicamente
Disponível
Objetivo
Atender as necessidades das aplicações, que necessitam de
alta disponibilidade dos seus dados e rápido desempenho do
processamento dos mesmos.
Exemplo: A google consegue processar até 20 petabytes de
dados por dia armazenadas em BigTable.
10
Caractéristicas
● Escalabilidade Horizontal
● Ausência de Esquema
● Suporte a Replicação
● API Simples
11
Escalabilidade Horizontal
A escalabilidade Horizontal consiste em aumentar
o número de máquinas disponíveis.
A escalabilidade Horizontal em modelos
relacionais seria inviável devido a concorrência.
Como nos modelos NoSQL não existe bloqueios,
esse tipo de escalabilidade é a mais viável.
12
Ausência de Esquema
Apresentam ausência de Esquema ou esquema
flexível, isso permite uma fácil aplicação da
escalabilidade e também um aumento na
disponibilidade dos dados.
Mas também devido a essa ausência, não há
garantia da integridade dos dados.
13
Suporte a Replicação
Permitem a replicação de uma forma nativa o que
provém uma escalabilidade maior e também uma
diminuição do tempo gasto para a recuperação de
informações.
14
API Simples
Para que o acesso ás informações seja feito da
forma mais rápida possível, APIs são
desenvolvidos para que qualquer aplicação possa
ter acesso aos dados do banco de dados.
15
Modelos NoSQL
➔ Banco de dados chave-valor (key-value).
➔ Banco de dados Orientado a Colunas.
➔ Banco de dados Orientado a Documentos.
➔ Banco de dados Orientado a Grafos.
16
17
Banco de dados chave-valor
(key-value)
Modelo mais simples.
Permite a visualização do banco como uma grande
tabela.
Todo o banco é composto por um conjunto de
chaves que estão associadas a um único valor.
18
Orientado a Coluna
Um pouco mais complexos.
Os dados são indexados por uma tripla (linha,
coluna e timestramp).
As linhas e as colunas são identificadas por chaves
e o timestramp é o que permite identificar as
diferentes versões de um mesmo dado.
19
20
Orientado a Documento
Armazena uma coleção de documentos.
Um documento no geral, é um objeto com um
código único e um conjunto de campos, que podem
ser strings, listas ou documentos aninhados.
Sua estrutura se assemelha com de chave-valor.
21
22
Orientado a Grafo
Neste modelo, o banco pode ser comparado com
um multigrafo rotulado e direcionado, onde cada
nó pode ser conectado por mais de uma aresta.
Possui três componentes básicos: os nós (são os
vértices do grafo), os relacionamentos (são as
arestas) e as propriedades (ou atributos) dos nós e
relacionamentos.
23
24
25
Fundada em 2007
Dwight Merriman, Eliot Horowitz and Kevin Ryan
– equipe por trás da DoubleClick.
26
MongoDB, um pouco da História!
MongoDB, um pouco da História!
Estava Frustrada na Empresa DoubleClick
Não tinha escalabilidade.
Inspiração em criar um novo modelo
27
E ai? Porque devo usar?
28
29
Vantagens
Não precisa ter a mesma estrutura em cada registro.
Boa quebra de paradigma.
Flexibilidade.
Termos
30
Instalação
Windows 64 bits
Linux 64 bits - Ubuntu 14.04 lts e 16.04 lts
31
Windows 64 Bits - Passo 1
32
Windows 64 Bits - Passo 2
33
Windows 64 Bits - Passo 3
34
Windows 64 Bits - Passo 4
35
Windows 64 Bits - Passo 5
36
Windows 64 Bits - Passo 6
37
Windows 64 Bits - Passo 7
38
Windows 64 Bits - Passo 8
39
Windows 64 Bits - Passo 9
40
Windows 64 Bits - Passo 10
41
Windows 64 Bits - Passo 11
42
Windows 64 Bits - Passo 12
43
Windows 64 Bits - Passo 12
44
Windows 64 Bits - Passo 13
45
Windows 64 Bits - Passo 14
46
Windows 64 Bits - Passo 15
47
Windows 64 Bits - Passo 16
48
Windows 64 Bits - Obs: Passo 17
49
Windows 64 Bits - Passo 18
Repita o Passo 1 até o 14.
50
Se errou, faz igual ao homer,
haha. Calma, ainda podemos
solucionar!
51
Windows 64 Bits - Passo 19
52
Windows 64 Bits - Passo 20
53
Deu certo? Woo-Hoo!
54
Ubuntu 64 bits
Importar a Chave Pública.
55
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80
--recv EA312927
Ubuntu 64 bits
Criar um arquivo de lista.
56
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2
multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
Ubuntu 64 bits
Criar um arquivo de lista.
57
echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2
multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
Ubuntu 64 bits
Update
58
sudo apt-get update
59
60
61
62
Vamos começar jovens
Padawans!
Comandos Básicos MongoDB
63
Descrição Comandos
Listar todas as base de dados. show dbs
Criar uma nova base. use “Nome da Base”
Verificar em qual base de dados você
está conectado.
db
Ajuda! help
O que são Coleções?
Uma coleção pode armazenar vários documentos. A coleção funciona
como uma tabela de um SGBD.
64
Valores
65
Data Types Description
string Pode ser uma cadeia vazia ou uma
combinação de caracteres.
integer Digitos.
boolean Os valores lógicos Verdadeiro ou Falso.
double Um tipo de número de ponto flutuante.
null Not zero, not empty.
Continuação
66
array Lista de valores.
object Uma entidade que pode ser utilizado na programação. Pode ser um valor,
variável, função ou estrutura de dados.
timestamp Um valor de 64 bits referindo-se a um momento único e em uma única
instância “mongod”. O primeiro de 32 bits deste valor refere-se ao
segundo desde o UTC 1 de janeiro de 1970. E últimos 32 bits referem-se
ao incremento ordinal para operações dentro de um determinado
momento.
Internationalized
Strings
UTF-8 para strings.
Object IDs Cada objeto ou documento MongoDB deve ter um ID do objeto que é
único. Este é uma BSON (Binary JavaScript Object Notation, que é a
interpretação binária de JSON) objeto id, um valor binário de 12 bytes
que tem uma oportunidade muito rara de ser duplicado. Este ID consiste
em uma timestamp de 4 bytes (segundos depois), 3 bytes para o ID de
máquina, um ID de processo de 2 bytes e um contador de 3 bytes.
67
Criar Coleção e Listar Coleção
db.createCollection(‘contato’)
show collections
Inserir Dados
68
db.contato.insert({
nome: ‘Digite o seu nome’,
email: ‘Digite o seu email’,
mensagem: ‘Insira uma mensagem’
})
Inserir Dados
69
db.contato.insert ([
{nome: ‘Digite o seu nome’,
email: ‘Digite o seu email’,
mensagem: ‘Insira uma mensagem},
{Destinatário: 'Insira o Destinatário'}
])
Listar Dados
70
db.contato.find()
"_id" : ObjectId("58028cd0d8f70d30b66db5af"), "nome" : "Julio Cartier", "email" :
"juliocartier@gmail.com", "mensagem" : "Mensagem de Teste" }
db.contato.find().pretty()
Atualizar Dados
71
db.contato.update({nome: ‘Julio Cartier’’}, {$set: {email: ‘julio.cart@gmail.com’}})
Deletar Dado
72
db.contato.remove({nome: ‘Julio Cartier’})
db.contato.remove()
Deletar Coleção
73
db.contato.drop()
Deletar Base de Dados
74
db.dropDatabase()
Atividade 1
75
Vamos inserir mais 6
funcionários!
76
Operadores
77
Descrição Operadores
menor que $lt
menor ou igual a $lte
maior que $gt
maior ou igual a $gte
(verificar se um campo existe ou
não)
$exists
não igual $ne
Consultas
78
db.contato.find(‘nome’:’Nome do funcionário’)
db.contato.find(‘email’:’Email do funcionário’’)
Consultas
79
db.empresa.find(‘endereco’:’Endereco do Empregado’)
db.empresa.find({'salario':{$gt:1500}}).pretty()
Consultas
80
db.empresa.find({'salario':{$gt:1500}}, {nome:1,_id:0}).pretty()
db.empresa.find({'salario':{$gt:2000}}, {nome:1,endereco:1,_id:0}).pretty()
Consultas
81
db.empresa.find({'salario':{$lte:2000}}, {nome:1,endereco:1,salario:1,_id:0}).pretty()
db.empresa.find({'salario':{$ne:1800}}, {nome:1,endereco:1,salario:1,_id:0}).pretty()
Consultas
82
db.empresa.find({'salario':{$lte:2000}}, {nome:1,endereco:1,salario:1,_id:0}).count()
db.empresa.find().count()
Consultas
83
db.empresa.find().limit(2)
Operadores
84
db.empresa.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
).pretty()
Atividade 2
85
Atividade 3
86
Código Java
87
Conexão do MongoDB com o
Java
88

Mais conteúdo relacionado

Destaque

Reflections a. cirillo
Reflections  a. cirilloReflections  a. cirillo
Reflections a. cirilloAnna Cirillo
 
Servidores
ServidoresServidores
ServidoresdaniieMS
 
Final Presentation for Project A.D.I.O.S.
Final Presentation for Project A.D.I.O.S.Final Presentation for Project A.D.I.O.S.
Final Presentation for Project A.D.I.O.S.Sung (Stephen) Kim
 
3Com 3C10412
3Com 3C104123Com 3C10412
3Com 3C10412savomir
 
Kvadro logistik
 Kvadro logistik Kvadro logistik
Kvadro logistikAuditorr
 
Beatriz Quidiello
Beatriz QuidielloBeatriz Quidiello
Beatriz Quidiellobabuinogato
 
FBIF2015:虞坚 中国食品饮料市场的风口在哪里
FBIF2015:虞坚 中国食品饮料市场的风口在哪里FBIF2015:虞坚 中国食品饮料市场的风口在哪里
FBIF2015:虞坚 中国食品饮料市场的风口在哪里Simba Events
 
Emprendimiento social desde Mondragon Unibertsitatea-Enpresagintza
Emprendimiento social desde Mondragon Unibertsitatea-EnpresagintzaEmprendimiento social desde Mondragon Unibertsitatea-Enpresagintza
Emprendimiento social desde Mondragon Unibertsitatea-EnpresagintzaAitor Lizartza
 
Diapositivas Del Sdaber Pedagogico
Diapositivas Del Sdaber PedagogicoDiapositivas Del Sdaber Pedagogico
Diapositivas Del Sdaber Pedagogicogueste2549c
 
Marco tecnológico y arquitectura despachador
Marco tecnológico y arquitectura despachadorMarco tecnológico y arquitectura despachador
Marco tecnológico y arquitectura despachadorpiramidepse
 
Calendario 2017 de fechas importantes para tu plan de marketing
Calendario 2017 de fechas importantes para tu plan de marketingCalendario 2017 de fechas importantes para tu plan de marketing
Calendario 2017 de fechas importantes para tu plan de marketingElena Ortiz
 

Destaque (19)

Cuadro comparativo modalidades educación
Cuadro comparativo modalidades educaciónCuadro comparativo modalidades educación
Cuadro comparativo modalidades educación
 
Cuadro comparativo modalidades educación
Cuadro comparativo modalidades educaciónCuadro comparativo modalidades educación
Cuadro comparativo modalidades educación
 
Reflections a. cirillo
Reflections  a. cirilloReflections  a. cirillo
Reflections a. cirillo
 
Servidores
ServidoresServidores
Servidores
 
Bioethics phd programs
Bioethics phd programsBioethics phd programs
Bioethics phd programs
 
Final Presentation for Project A.D.I.O.S.
Final Presentation for Project A.D.I.O.S.Final Presentation for Project A.D.I.O.S.
Final Presentation for Project A.D.I.O.S.
 
3Com 3C10412
3Com 3C104123Com 3C10412
3Com 3C10412
 
Dota 2 evento
Dota 2 eventoDota 2 evento
Dota 2 evento
 
Kvadro logistik
 Kvadro logistik Kvadro logistik
Kvadro logistik
 
Beatriz Quidiello
Beatriz QuidielloBeatriz Quidiello
Beatriz Quidiello
 
FBIF2015:虞坚 中国食品饮料市场的风口在哪里
FBIF2015:虞坚 中国食品饮料市场的风口在哪里FBIF2015:虞坚 中国食品饮料市场的风口在哪里
FBIF2015:虞坚 中国食品饮料市场的风口在哪里
 
Cam 01
Cam   01Cam   01
Cam 01
 
Emprendimiento social desde Mondragon Unibertsitatea-Enpresagintza
Emprendimiento social desde Mondragon Unibertsitatea-EnpresagintzaEmprendimiento social desde Mondragon Unibertsitatea-Enpresagintza
Emprendimiento social desde Mondragon Unibertsitatea-Enpresagintza
 
Diapositiva
DiapositivaDiapositiva
Diapositiva
 
Diapositivas Del Sdaber Pedagogico
Diapositivas Del Sdaber PedagogicoDiapositivas Del Sdaber Pedagogico
Diapositivas Del Sdaber Pedagogico
 
Marco tecnológico y arquitectura despachador
Marco tecnológico y arquitectura despachadorMarco tecnológico y arquitectura despachador
Marco tecnológico y arquitectura despachador
 
English 1.pdf
English 1.pdfEnglish 1.pdf
English 1.pdf
 
Estrategias
EstrategiasEstrategias
Estrategias
 
Calendario 2017 de fechas importantes para tu plan de marketing
Calendario 2017 de fechas importantes para tu plan de marketingCalendario 2017 de fechas importantes para tu plan de marketing
Calendario 2017 de fechas importantes para tu plan de marketing
 

Semelhante a Introdução ao NoSQL e MongoDB

Análise comparativa entre SGBDs NoSQL no contexto de IoT
Análise comparativa entre SGBDs NoSQL no contexto de IoTAnálise comparativa entre SGBDs NoSQL no contexto de IoT
Análise comparativa entre SGBDs NoSQL no contexto de IoTAllexandre Sampaio
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDBLelyBarros
 
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringTDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringFelipe Klerk Signorini
 
0 apresentacao
0 apresentacao0 apresentacao
0 apresentacaoawtb1200
 
MongoDB - Apresentação
MongoDB - ApresentaçãoMongoDB - Apresentação
MongoDB - ApresentaçãoTerra / Neo
 
Introdução ao MongoDB: conceitos e práticas
Introdução ao MongoDB: conceitos e práticasIntrodução ao MongoDB: conceitos e práticas
Introdução ao MongoDB: conceitos e práticasBruno Barreto Carvalho
 
TDC2017 | São Paulo - Trilha NODEJS How we figured out we had a SRE team at -...
TDC2017 | São Paulo - Trilha NODEJS How we figured out we had a SRE team at -...TDC2017 | São Paulo - Trilha NODEJS How we figured out we had a SRE team at -...
TDC2017 | São Paulo - Trilha NODEJS How we figured out we had a SRE team at -...tdc-globalcode
 
TDC - Processamento de dados em alta escala com Node.js e AWS Lambda
TDC - Processamento de dados em alta escala com Node.js e AWS LambdaTDC - Processamento de dados em alta escala com Node.js e AWS Lambda
TDC - Processamento de dados em alta escala com Node.js e AWS LambdaDaniel Baptista Dias
 
AWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
AWS Meetup - Processando dados em alta escala com Node.js e AWS LambdaAWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
AWS Meetup - Processando dados em alta escala com Node.js e AWS LambdaDaniel Baptista Dias
 
Fundamentos de Banco de Dados Relacionais
Fundamentos de Banco de Dados RelacionaisFundamentos de Banco de Dados Relacionais
Fundamentos de Banco de Dados RelacionaisÁlvaro Farias Pinheiro
 

Semelhante a Introdução ao NoSQL e MongoDB (20)

NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
Compressão de Índices
Compressão de ÍndicesCompressão de Índices
Compressão de Índices
 
Análise comparativa entre SGBDs NoSQL no contexto de IoT
Análise comparativa entre SGBDs NoSQL no contexto de IoTAnálise comparativa entre SGBDs NoSQL no contexto de IoT
Análise comparativa entre SGBDs NoSQL no contexto de IoT
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDB
 
Bancos de dados NoSQL
Bancos de dados NoSQLBancos de dados NoSQL
Bancos de dados NoSQL
 
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringTDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
 
Apresentação
ApresentaçãoApresentação
Apresentação
 
0 apresentacao
0 apresentacao0 apresentacao
0 apresentacao
 
#1 Introdução ao MongoDB
#1   Introdução ao MongoDB#1   Introdução ao MongoDB
#1 Introdução ao MongoDB
 
MongoDB - Apresentação
MongoDB - ApresentaçãoMongoDB - Apresentação
MongoDB - Apresentação
 
MAC5855 - NoSQL
MAC5855 - NoSQLMAC5855 - NoSQL
MAC5855 - NoSQL
 
Mongo db slides
Mongo db slidesMongo db slides
Mongo db slides
 
NoSQL & SQL
NoSQL & SQLNoSQL & SQL
NoSQL & SQL
 
Aula7ArquivosDB.ppt
Aula7ArquivosDB.pptAula7ArquivosDB.ppt
Aula7ArquivosDB.ppt
 
Introdução ao MongoDB: conceitos e práticas
Introdução ao MongoDB: conceitos e práticasIntrodução ao MongoDB: conceitos e práticas
Introdução ao MongoDB: conceitos e práticas
 
TDC2017 | São Paulo - Trilha NODEJS How we figured out we had a SRE team at -...
TDC2017 | São Paulo - Trilha NODEJS How we figured out we had a SRE team at -...TDC2017 | São Paulo - Trilha NODEJS How we figured out we had a SRE team at -...
TDC2017 | São Paulo - Trilha NODEJS How we figured out we had a SRE team at -...
 
TDC - Processamento de dados em alta escala com Node.js e AWS Lambda
TDC - Processamento de dados em alta escala com Node.js e AWS LambdaTDC - Processamento de dados em alta escala com Node.js e AWS Lambda
TDC - Processamento de dados em alta escala com Node.js e AWS Lambda
 
Roteiro IOC 03_2
Roteiro IOC 03_2Roteiro IOC 03_2
Roteiro IOC 03_2
 
AWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
AWS Meetup - Processando dados em alta escala com Node.js e AWS LambdaAWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
AWS Meetup - Processando dados em alta escala com Node.js e AWS Lambda
 
Fundamentos de Banco de Dados Relacionais
Fundamentos de Banco de Dados RelacionaisFundamentos de Banco de Dados Relacionais
Fundamentos de Banco de Dados Relacionais
 

Introdução ao NoSQL e MongoDB