SlideShare una empresa de Scribd logo
1 de 61
Descargar para leer sin conexión
noSQL
wtf?!
sexta-feira, 12 de novembro de 2010
contexto
sexta-feira, 12 de novembro de 2010
serviços websexta-feira, 12 de novembro de 2010
falta de capitalsexta-feira, 12 de novembro de 2010
mesmo assim...
sexta-feira, 12 de novembro de 2010
“risco”de fazer
sucesso
sexta-feira, 12 de novembro de 2010
big data
sexta-feira, 12 de novembro de 2010
história...
sexta-feira, 12 de novembro de 2010
• Hierarchical (IMS): late 1960’s and 1970’s
• Directed graph (CODASYL): 1970’s
• Relational: 1970’s and early 1980’s
• Entity-Relationship: 1970’s
• Extended Relational: 1980’s
• Semantic: late 1970’s and 1980’s
• Object-oriented: late 1980’s and early 1990’s
• Object-relational: late 1980’s and early 1990’s
• Semi-structured (XML): late 1990’s to late 2000’s
• The next big thing: ???
ref: What Goes Around Comes Around por Michael Stonebraker e Joey Hellerstein
modelos
sexta-feira, 12 de novembro de 2010
next big thing?
sexta-feira, 12 de novembro de 2010
abaixo o
banco de
dados
relacional!
sexta-feira, 12 de novembro de 2010
abaixo ao banco de
dados relacional!
como bala
de prata!
sexta-feira, 12 de novembro de 2010
momento
histórico...
sexta-feira, 12 de novembro de 2010
sexta-feira, 12 de novembro de 2010
resolver
problemas
específicos
sexta-feira, 12 de novembro de 2010
por partes...sexta-feira, 12 de novembro de 2010
estrutura
de dadossexta-feira, 12 de novembro de 2010
chave-valor
sexta-feira, 12 de novembro de 2010
modelo
sexta-feira, 12 de novembro de 2010
família de colunassexta-feira, 12 de novembro de 2010
modelo
Keyspace
Família de Colunas
.
.
.
chave
linha
coluna coluna coluna. . .coluna
chave
linha
coluna coluna coluna. . .coluna coluna coluna
nome valortimestamp
Coluna
sexta-feira, 12 de novembro de 2010
documento
sexta-feira, 12 de novembro de 2010
modelo
sexta-feira, 12 de novembro de 2010
grafo
sexta-feira, 12 de novembro de 2010
visão geral
sexta-feira, 12 de novembro de 2010
sexta-feira, 12 de novembro de 2010
sexta-feira, 12 de novembro de 2010
arquitetura
sexta-feira, 12 de novembro de 2010
ACID
sexta-feira, 12 de novembro de 2010
A
C
I
D
tomicity
onsitency
solation
urability
sexta-feira, 12 de novembro de 2010
para adotar
nosql é
importante
conhecer os
tradeoffs
sexta-feira, 12 de novembro de 2010
BASE
ref: BASE: an Acid Alternative por Dan Pritchett
sexta-feira, 12 de novembro de 2010
B
A
S
E
asically
vailable
oft State
eventually Consistent
sexta-feira, 12 de novembro de 2010
jogo de palavras
relaxamento
das regras
sexta-feira, 12 de novembro de 2010
estado de fluxo
sexta-feira, 12 de novembro de 2010
Eventually
Consistent
ref: Eventually Consistent por Werner Vogels
sexta-feira, 12 de novembro de 2010
eventual em português:
pode ou não ocorrer
eventual em inglês:
irá ocorrer em algum
momento
sexta-feira, 12 de novembro de 2010
Consistência
em Momento
Indeterminado
@mdediana
sexta-feira, 12 de novembro de 2010
N,R e W
consistência
sexta-feira, 12 de novembro de 2010
intersecção
W+R > N
sexta-feira, 12 de novembro de 2010
não consistente
W+R = N
1+1 = 2
sexta-feira, 12 de novembro de 2010
consistente
W+R > N
2+2 = 3
sexta-feira, 12 de novembro de 2010
durabilidade
ref: The End of an Architectural Era por Michael Stonebraker & al.
sexta-feira, 12 de novembro de 2010
cloud
sexta-feira, 12 de novembro de 2010
ref: The CAP Theorem por Seth Gilbert & Nancy Lynch
CAP
sexta-feira, 12 de novembro de 2010
C
A
P
onsistency
vailability
artition Tolerance
sexta-feira, 12 de novembro de 2010
Consistency Availability
Partition
Tolerance
CA
CP AP
sexta-feira, 12 de novembro de 2010
sexta-feira, 12 de novembro de 2010
★ latência
★ performance
★ particionamento
★ distribuição
★ replicação
ainda tem...
sexta-feira, 12 de novembro de 2010
persitência
poliglota
sexta-feira, 12 de novembro de 2010
ferramentassexta-feira, 12 de novembro de 2010
sexta-feira, 12 de novembro de 2010
com tantas definições...
com tantos conceitos...
com tantos tradeoffs...
com tantos....
sexta-feira, 12 de novembro de 2010
como o nosql se
tornou tão
sexy e popular?
sexta-feira, 12 de novembro de 2010
apesar de tudo....
é fácil usar!sexta-feira, 12 de novembro de 2010
public static void main(String[] args) {
	 	 // Estabelece conexão com o Redis
	 	 Jedis jedis = new Jedis("localhost");
	 	 // Adiciona o par chave-valor
	 	 jedis.set("nome:da:chave", "novo valor");
	 	 // Busca o valor a partir da chave
	 	 String valor = jedis.get("nome:da:chave");
	 	 System.out.println("Valor recuperado: " + valor);
	 }
sexta-feira, 12 de novembro de 2010
public static void main(String args[]) throws UnknownHostException,
	 	 	 MongoException {
	 	 Mongo mongo = new Mongo();
	 	 DB db = mongo.getDB("MeuDatabase");
	 	 DBCollection coll = db.getCollection("pessoas");
	 	 DBObject dados = new BasicDBObject();
	 	 dados.put("nome", "Alexandre Porcelli");
	 	 dados.put("email", "alexandre.porcelli@gmail.com");
	 	 BasicDBObject endereco = new BasicDBObject();
	 	 endereco.put("rua", "r. qualquer");
	 	 endereco.put("numero", 1022);
	 	 dados.put("endereco", endereco);
	 	 coll.insert(dados);
	 	 mongo.close();
	 }
sexta-feira, 12 de novembro de 2010
public static void main(String args[]) throws UnknownHostException,
	 	 	 MongoException {
	 	 Mongo mongo = new Mongo();
	 	 DB db = mongo.getDB("MeuDatabase");
	 	 DBCollection coll = db.getCollection("pessoas");
	 	 DBObject busca = new BasicDBObject();
	 	 busca.put("nome", "Alexandre Porcelli");
	 	 DBObject documentoEncontrado = coll.findOne(busca);
	 	 System.out.println(documentoEncontrado);
	 	 mongo.close();
	 }
sexta-feira, 12 de novembro de 2010
public static void main(String[] args) {
	 	 GraphDatabaseService graphDb = new EmbeddedGraphDatabase("db/matrix");
	 	 Transaction tx = graphDb.beginTx();
	 	 try {
	 	 	 Node thomasAnderson = graphDb.createNode();
	 	 	 Node trinity = graphDb.createNode();
	 	 	 Node morpheus = graphDb.createNode();
	 	 	 Relationship link1 = thomasAnderson.createRelationshipTo(trinity,
	 	 	 	 MeusTiposDeRelacionamento.CONHECE);
	 	 	 Relationship link2 = trinity.createRelationshipTo(morpheus,
	 	 	 	 MeusTiposDeRelacionamento.CONHECE);
	 	 	 thomasAnderson.setProperty("nome", "Thomas Anderson");
	 	 	 trinity.setProperty("nome", "Trinity");
	 	 	 morpheus.setProperty("nome", "Morpheus");
	 	 	 morpheus.setProperty("cargo", "Capitão");
	 	 	 link1.setProperty("mensagem", "texto 1!");
	 	 	 link2.setProperty("mensagem", "texto 2!");
	 	 	 tx.success();
	 	 	
	 	 } finally {
	 	 	 tx.finish();
	 	 	 graphDb.shutdown();
	 	 }
	 }
sexta-feira, 12 de novembro de 2010
Perguntas?
sexta-feira, 12 de novembro de 2010
Obrigado
alexandre.porcelli@gmail.com
@porcelli
linkedin.com/in/alexandreporcelli
porcelli.com.br
github.com/porcelli
about.me/porcelli
sexta-feira, 12 de novembro de 2010

Más contenido relacionado

Destacado

Os Beneficios Do Volei
Os Beneficios Do VoleiOs Beneficios Do Volei
Os Beneficios Do VoleiMarianats
 
Lotes y casas campestres pinasaco ii
Lotes y casas campestres pinasaco iiLotes y casas campestres pinasaco ii
Lotes y casas campestres pinasaco iinuevohorizontepasto
 
Jornal
JornalJornal
Jornalmcs
 
Virus (pol i eloi)
Virus (pol i eloi)Virus (pol i eloi)
Virus (pol i eloi)eloiquintana
 
Bài 13 kieu ban_ghi
Bài 13  kieu ban_ghiBài 13  kieu ban_ghi
Bài 13 kieu ban_ghiLy Phan
 
готовая курсовая по менеджменту Doc2
готовая курсовая по менеджменту Doc2готовая курсовая по менеджменту Doc2
готовая курсовая по менеджменту Doc2Elinka94bel
 
Raçadores para corte 2009 Brahman
Raçadores para corte 2009 BrahmanRaçadores para corte 2009 Brahman
Raçadores para corte 2009 BrahmanNova India Genetica
 
Inbjudan mobelriksdagen
Inbjudan mobelriksdagen Inbjudan mobelriksdagen
Inbjudan mobelriksdagen Anders Wisth
 
Apresentação 3T14
Apresentação 3T14Apresentação 3T14
Apresentação 3T14Profarma
 
Presentacióncata olenajulia
Presentacióncata olenajuliaPresentacióncata olenajulia
Presentacióncata olenajuliaRoser Guiteras
 
καστοριά
καστοριάκαστοριά
καστοριάalexia4
 
Cualidades de un Cirujano
Cualidades de un CirujanoCualidades de un Cirujano
Cualidades de un CirujanoFélix Salguero
 
Administrador 10112012
Administrador 10112012Administrador 10112012
Administrador 10112012damianemo
 
Catalogo pvp 12 13 baja
Catalogo pvp 12 13 bajaCatalogo pvp 12 13 baja
Catalogo pvp 12 13 bajaWonkandy
 
Blog na Escola
Blog na EscolaBlog na Escola
Blog na Escolalindamara
 
Consagracion
ConsagracionConsagracion
Consagracionk.z
 
INWESTPROJEKT Grudziądz
INWESTPROJEKT GrudziądzINWESTPROJEKT Grudziądz
INWESTPROJEKT GrudziądzsalonyVi
 

Destacado (20)

Os Beneficios Do Volei
Os Beneficios Do VoleiOs Beneficios Do Volei
Os Beneficios Do Volei
 
Lotes y casas campestres pinasaco ii
Lotes y casas campestres pinasaco iiLotes y casas campestres pinasaco ii
Lotes y casas campestres pinasaco ii
 
Jornal
JornalJornal
Jornal
 
Virus (pol i eloi)
Virus (pol i eloi)Virus (pol i eloi)
Virus (pol i eloi)
 
Bài 13 kieu ban_ghi
Bài 13  kieu ban_ghiBài 13  kieu ban_ghi
Bài 13 kieu ban_ghi
 
готовая курсовая по менеджменту Doc2
готовая курсовая по менеджменту Doc2готовая курсовая по менеджменту Doc2
готовая курсовая по менеджменту Doc2
 
Raçadores para corte 2009 Brahman
Raçadores para corte 2009 BrahmanRaçadores para corte 2009 Brahman
Raçadores para corte 2009 Brahman
 
Inbjudan mobelriksdagen
Inbjudan mobelriksdagen Inbjudan mobelriksdagen
Inbjudan mobelriksdagen
 
11º Balanço do PAC 2 - 4 anos
11º Balanço do PAC 2 - 4 anos11º Balanço do PAC 2 - 4 anos
11º Balanço do PAC 2 - 4 anos
 
Apresentação 3T14
Apresentação 3T14Apresentação 3T14
Apresentação 3T14
 
Servicio del Vino - BIXA
Servicio del Vino - BIXAServicio del Vino - BIXA
Servicio del Vino - BIXA
 
Presentacióncata olenajulia
Presentacióncata olenajuliaPresentacióncata olenajulia
Presentacióncata olenajulia
 
καστοριά
καστοριάκαστοριά
καστοριά
 
Cualidades de un Cirujano
Cualidades de un CirujanoCualidades de un Cirujano
Cualidades de un Cirujano
 
X2 drill practice
X2 drill practiceX2 drill practice
X2 drill practice
 
Administrador 10112012
Administrador 10112012Administrador 10112012
Administrador 10112012
 
Catalogo pvp 12 13 baja
Catalogo pvp 12 13 bajaCatalogo pvp 12 13 baja
Catalogo pvp 12 13 baja
 
Blog na Escola
Blog na EscolaBlog na Escola
Blog na Escola
 
Consagracion
ConsagracionConsagracion
Consagracion
 
INWESTPROJEKT Grudziądz
INWESTPROJEKT GrudziądzINWESTPROJEKT Grudziądz
INWESTPROJEKT Grudziądz
 

Más de Alexandre Porcelli

Running rules and processes in the cloud
Running rules and processes in the cloudRunning rules and processes in the cloud
Running rules and processes in the cloudAlexandre Porcelli
 
Impulsione sua carreira contribuindo para projetos open source
Impulsione sua carreira contribuindo para projetos open sourceImpulsione sua carreira contribuindo para projetos open source
Impulsione sua carreira contribuindo para projetos open sourceAlexandre Porcelli
 
QConSP 2013 - Não confunda engenharia de software com lean startup
QConSP 2013 - Não confunda engenharia de software com lean startupQConSP 2013 - Não confunda engenharia de software com lean startup
QConSP 2013 - Não confunda engenharia de software com lean startupAlexandre Porcelli
 
JUDCon São Paulo - Drools in a Nutshell
JUDCon São Paulo - Drools in a NutshellJUDCon São Paulo - Drools in a Nutshell
JUDCon São Paulo - Drools in a NutshellAlexandre Porcelli
 
NoSQL for the rest of us - a JBoss perspective over those hot tools and how y...
NoSQL for the rest of us - a JBoss perspective over those hot tools and how y...NoSQL for the rest of us - a JBoss perspective over those hot tools and how y...
NoSQL for the rest of us - a JBoss perspective over those hot tools and how y...Alexandre Porcelli
 
Armazenamento de Dados em Poucas Palavras ou Uma resposta definitiva para tod...
Armazenamento de Dados em Poucas Palavras ou Uma resposta definitiva para tod...Armazenamento de Dados em Poucas Palavras ou Uma resposta definitiva para tod...
Armazenamento de Dados em Poucas Palavras ou Uma resposta definitiva para tod...Alexandre Porcelli
 
DevinVale: SQL, noSQL ou newSQL - Onde armazenar meus dados?
DevinVale:  SQL, noSQL ou newSQL - Onde armazenar meus dados?DevinVale:  SQL, noSQL ou newSQL - Onde armazenar meus dados?
DevinVale: SQL, noSQL ou newSQL - Onde armazenar meus dados?Alexandre Porcelli
 
noSQL e ORM, será que dá samba?
noSQL e ORM, será que dá samba?noSQL e ORM, será que dá samba?
noSQL e ORM, será que dá samba?Alexandre Porcelli
 
noSQL - Uma nova escola de pensamento
noSQL - Uma nova escola de pensamentonoSQL - Uma nova escola de pensamento
noSQL - Uma nova escola de pensamentoAlexandre Porcelli
 
SQL, NoSQL ou NewSQL: Onde armazenar meus dados?
SQL, NoSQL ou NewSQL: Onde armazenar meus dados?SQL, NoSQL ou NewSQL: Onde armazenar meus dados?
SQL, NoSQL ou NewSQL: Onde armazenar meus dados?Alexandre Porcelli
 
A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...
A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...
A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...Alexandre Porcelli
 
J1Brasil: Persistência de Dados além do JPA, ou Como usar noSQL em Java
J1Brasil: Persistência de Dados além do JPA, ou Como usar noSQL em JavaJ1Brasil: Persistência de Dados além do JPA, ou Como usar noSQL em Java
J1Brasil: Persistência de Dados além do JPA, ou Como usar noSQL em JavaAlexandre Porcelli
 

Más de Alexandre Porcelli (20)

Dawn of the citizen developer
Dawn of the citizen developerDawn of the citizen developer
Dawn of the citizen developer
 
Running rules and processes in the cloud
Running rules and processes in the cloudRunning rules and processes in the cloud
Running rules and processes in the cloud
 
Impulsione sua carreira contribuindo para projetos open source
Impulsione sua carreira contribuindo para projetos open sourceImpulsione sua carreira contribuindo para projetos open source
Impulsione sua carreira contribuindo para projetos open source
 
QConSP 2013 - Não confunda engenharia de software com lean startup
QConSP 2013 - Não confunda engenharia de software com lean startupQConSP 2013 - Não confunda engenharia de software com lean startup
QConSP 2013 - Não confunda engenharia de software com lean startup
 
JUDCon São Paulo - Drools in a Nutshell
JUDCon São Paulo - Drools in a NutshellJUDCon São Paulo - Drools in a Nutshell
JUDCon São Paulo - Drools in a Nutshell
 
NoSQL for the rest of us - a JBoss perspective over those hot tools and how y...
NoSQL for the rest of us - a JBoss perspective over those hot tools and how y...NoSQL for the rest of us - a JBoss perspective over those hot tools and how y...
NoSQL for the rest of us - a JBoss perspective over those hot tools and how y...
 
Armazenamento de Dados em Poucas Palavras ou Uma resposta definitiva para tod...
Armazenamento de Dados em Poucas Palavras ou Uma resposta definitiva para tod...Armazenamento de Dados em Poucas Palavras ou Uma resposta definitiva para tod...
Armazenamento de Dados em Poucas Palavras ou Uma resposta definitiva para tod...
 
DevinVale: SQL, noSQL ou newSQL - Onde armazenar meus dados?
DevinVale:  SQL, noSQL ou newSQL - Onde armazenar meus dados?DevinVale:  SQL, noSQL ou newSQL - Onde armazenar meus dados?
DevinVale: SQL, noSQL ou newSQL - Onde armazenar meus dados?
 
noSQL e ORM, será que dá samba?
noSQL e ORM, será que dá samba?noSQL e ORM, será que dá samba?
noSQL e ORM, será que dá samba?
 
noSQL - Uma nova escola de pensamento
noSQL - Uma nova escola de pensamentonoSQL - Uma nova escola de pensamento
noSQL - Uma nova escola de pensamento
 
noSQL @ MSTechDay São Paulo
noSQL @ MSTechDay São PaulonoSQL @ MSTechDay São Paulo
noSQL @ MSTechDay São Paulo
 
Integration & DSL
Integration & DSLIntegration & DSL
Integration & DSL
 
SQL, NoSQL ou NewSQL: Onde armazenar meus dados?
SQL, NoSQL ou NewSQL: Onde armazenar meus dados?SQL, NoSQL ou NewSQL: Onde armazenar meus dados?
SQL, NoSQL ou NewSQL: Onde armazenar meus dados?
 
A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...
A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...
A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...
 
J1Brasil: Persistência de Dados além do JPA, ou Como usar noSQL em Java
J1Brasil: Persistência de Dados além do JPA, ou Como usar noSQL em JavaJ1Brasil: Persistência de Dados além do JPA, ou Como usar noSQL em Java
J1Brasil: Persistência de Dados além do JPA, ou Como usar noSQL em Java
 
noSQL @ QCon SP
noSQL @ QCon SPnoSQL @ QCon SP
noSQL @ QCon SP
 
noSQL além do buzz
noSQL além do buzznoSQL além do buzz
noSQL além do buzz
 
GraphDatabases @ TDC2010
GraphDatabases @ TDC2010GraphDatabases @ TDC2010
GraphDatabases @ TDC2010
 
Motor de Regras @ TDC2010
Motor de Regras @ TDC2010Motor de Regras @ TDC2010
Motor de Regras @ TDC2010
 
OpenSpotLight - Concepts
OpenSpotLight - ConceptsOpenSpotLight - Concepts
OpenSpotLight - Concepts
 

Introdução ao noSQL