SlideShare uma empresa Scribd logo
1 de 29
NoSQL
Soluções alternativas para
bancos de dados
Nicolas Ibanheiz
Desenvolvedor Java
Entusiasta de Node.js e NoSql
Formado pela Etec de Itaquera õ/
github.com/ibanheiz
Papo de hoje
- Bancos de dados relacionais
- Bancos de dados NoSQL
- MongoDb
- Neo4j
- Arquitetura de uma rede social com NoSQL
- Convertendo um banco em SQL para NoSQL
Relacionamento
Normalização
Integridade
Relacionamnto Interidade
Limitações do modelo relacional
- Wallmart
Trabalha com mais de 1 milhão de transações de clientes por hora,
alimentando bancos de dados estimados em mais de 2,5 petabytes.
- Facebook
Possui em seu banco cerca de 40 bilhões de fotos;
A cada 20 minutos...
1 milhão de links são enviados
2 milhões de pedidos de amizade são solicitados
3 milhões de mensagens são enviadas
Dificuldade com escabailidade
Dificuldade com performance
E agora ???
E agora ???
História do NoSQL
- NoSQL (Not Only SQL) foi utilizado em 1998 para o nome de um banco de
dados relacional de código aberto que não possuía interface SQL.
- Em 2009 foi reintroduzido por Eric Evans (da Rackspace) para os novos
bancos que surgiam e não tinham preocupação em dar garantias ACID
(Atomicidade, Consistência, Isolamento e Durabilidade).
- O nome fazia referência à bancos de dados populares na época, como
MySQL, MS SQL e PostgreSQL, então por isso, usaram o NoSQL.
Quando e porque usar?
- Escalabilidade sob demanda
- Performance em escrita massiva
- Esquema flexível e tipos de dados flexíveis
- Facilidade de uso para o programador
- Sincronização de dados online e offline (CouchDB)
- Evitar joins pesados quando o carregamento
das querys se tornam muito grandes para
os bancos relacionais
Bancos NoSQL populares
Qual banco devo escolher?
- Alta disponibilidade e escolabilidade
- Gravação de dados muito rápida
- Linguagem de consulta semelhante ao SQL
- Esquema flexível
Qual banco devo escolher?
- Alta disponibilidade e escolabilidade
- Leitura muito rápida em cache
- Schema de dados simples (key-value)
- Fácil integração com qualquer linguagem
Não comparem bancos SQL e NoSQL
x
x
Comparem bancos de mesma arquitetura
para as mesmas soluções
x
x
- C++
- Schemaless
- JSON/BSON
- Replica
- Harding
- GridFS
Visão geral
DATABASE
TABLE
ROWS
QUERY
Terminologia
DATABASE
COLLECTION
DOCUMENT JSON
QUERY
> var product = {"name": "Cachaça", "description": "Mé brasileiro", "price":
12.00}
> db.products.insert(product);
Operações - Insert
> var product = db.products.find();
>
{
"name": "Cachaça",
"description": "Mé brasileiro",
"price": 12.00
}
Operações - Find
Visão Geral
- Java
- Schemaless
- Cypher
- Teoria de grafos
- Transaction
Grafos
Conjunto finito de vértices e arestas
Operações - Create e Show
CREATE (NoSQL: palestra {title: 'NoSQL Soluções alternativas para bancos de
dados'})
CREATE (Nicolas: palestrante {nome: 'Nicolas Ibanheiz', idade: 21})
CREATE (Nicolas)-[:PALESTROU_EM {roles: ['Nico']}]->(NoSQL)
WITH Nicolas as a
MATCH(a)-[:PALESTROU_EM]->(m) return a,m
Pensando numa Rede Social
1 - Leitura mais
rápida de dados
Replicação de dados
Replicação de dados
2 - Repositório central
3 - Leitura rápida em
cache
4 - Conectar e descobrir
relacionamentos
Mudando seu jeito de pensar
Mudando seu jeito de pensar
Dica - Livro NoSQL Essencial
NoSQL - Soluções alternativas para bancos de dados

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Material Seminário NoSQL
Material Seminário NoSQLMaterial Seminário NoSQL
Material Seminário NoSQL
 
Mongo
MongoMongo
Mongo
 
NoSQL Familia de Colunas Apresentação
NoSQL Familia de Colunas ApresentaçãoNoSQL Familia de Colunas Apresentação
NoSQL Familia de Colunas Apresentação
 
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
 
NoSQL & SQL
NoSQL & SQLNoSQL & SQL
NoSQL & SQL
 
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLEstudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
 
Azure Cosmos DB para Desenvolvedores - From Zero to Hero - Março-2018
Azure Cosmos DB para Desenvolvedores - From Zero to Hero - Março-2018Azure Cosmos DB para Desenvolvedores - From Zero to Hero - Março-2018
Azure Cosmos DB para Desenvolvedores - From Zero to Hero - Março-2018
 
Artigo Nosql
Artigo NosqlArtigo Nosql
Artigo Nosql
 
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São PauloNoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
NoSQL para Desenvolvedores .NET - SQLSaturday #804 - São Paulo
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documento
 
NoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaNoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas Monografia
 
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
 
Cassandra NoSQL JUG Vale 2012
Cassandra NoSQL JUG Vale 2012Cassandra NoSQL JUG Vale 2012
Cassandra NoSQL JUG Vale 2012
 
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
 
MongoDB e Bancos de Dados Orientados a Documentos
MongoDB e Bancos de Dados Orientados a DocumentosMongoDB e Bancos de Dados Orientados a Documentos
MongoDB e Bancos de Dados Orientados a Documentos
 
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
 
Azure Cosmos DB - Campinas .NET - Janeiro-2018
Azure Cosmos DB - Campinas .NET - Janeiro-2018Azure Cosmos DB - Campinas .NET - Janeiro-2018
Azure Cosmos DB - Campinas .NET - Janeiro-2018
 
Introdução no sql mongodb java
Introdução no sql mongodb javaIntrodução no sql mongodb java
Introdução no sql mongodb java
 
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
 
Azure Cosmos DB - Azure Weekend SP - Outubro/2017
Azure Cosmos DB - Azure Weekend SP - Outubro/2017Azure Cosmos DB - Azure Weekend SP - Outubro/2017
Azure Cosmos DB - Azure Weekend SP - Outubro/2017
 

Semelhante a NoSQL - Soluções alternativas para bancos de dados

Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
pichiliani
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
pichiliani
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDB
LelyBarros
 
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens ComputacionaisNoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
Carlo Pires
 
Web Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQLWeb Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQL
Otávio Calaça Xavier
 
Cobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de DadosCobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de Dados
cris.finholdt
 

Semelhante a NoSQL - Soluções alternativas para bancos de dados (20)

Introdução ao NoSQL
Introdução ao NoSQLIntrodução ao NoSQL
Introdução ao NoSQL
 
Nosql
NosqlNosql
Nosql
 
Algumas das principais características do NoSQL
Algumas das principais características do NoSQLAlgumas das principais características do NoSQL
Algumas das principais características do NoSQL
 
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosBanco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
 
Bancos de dados NoSQL (Not only sql)
Bancos de dados NoSQL (Not only sql)Bancos de dados NoSQL (Not only sql)
Bancos de dados NoSQL (Not only sql)
 
Alinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQLAlinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQL
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Bancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagemBancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagem
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDB
 
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens ComputacionaisNoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
 
Tcc versao final-15-12
Tcc versao final-15-12Tcc versao final-15-12
Tcc versao final-15-12
 
Web Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQLWeb Semântica e bancos de dados NoSQL
Web Semântica e bancos de dados NoSQL
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
NoSQL
NoSQLNoSQL
NoSQL
 
Cobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de DadosCobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de Dados
 
NPA - NoSQL Persistence API
NPA - NoSQL Persistence APINPA - NoSQL Persistence API
NPA - NoSQL Persistence API
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
MAC5855 - NoSQL
MAC5855 - NoSQLMAC5855 - NoSQL
MAC5855 - NoSQL
 

NoSQL - Soluções alternativas para bancos de dados

  • 2. Nicolas Ibanheiz Desenvolvedor Java Entusiasta de Node.js e NoSql Formado pela Etec de Itaquera õ/ github.com/ibanheiz
  • 3. Papo de hoje - Bancos de dados relacionais - Bancos de dados NoSQL - MongoDb - Neo4j - Arquitetura de uma rede social com NoSQL - Convertendo um banco em SQL para NoSQL
  • 6. Limitações do modelo relacional - Wallmart Trabalha com mais de 1 milhão de transações de clientes por hora, alimentando bancos de dados estimados em mais de 2,5 petabytes. - Facebook Possui em seu banco cerca de 40 bilhões de fotos; A cada 20 minutos... 1 milhão de links são enviados 2 milhões de pedidos de amizade são solicitados 3 milhões de mensagens são enviadas
  • 11. História do NoSQL - NoSQL (Not Only SQL) foi utilizado em 1998 para o nome de um banco de dados relacional de código aberto que não possuía interface SQL. - Em 2009 foi reintroduzido por Eric Evans (da Rackspace) para os novos bancos que surgiam e não tinham preocupação em dar garantias ACID (Atomicidade, Consistência, Isolamento e Durabilidade). - O nome fazia referência à bancos de dados populares na época, como MySQL, MS SQL e PostgreSQL, então por isso, usaram o NoSQL.
  • 12. Quando e porque usar? - Escalabilidade sob demanda - Performance em escrita massiva - Esquema flexível e tipos de dados flexíveis - Facilidade de uso para o programador - Sincronização de dados online e offline (CouchDB) - Evitar joins pesados quando o carregamento das querys se tornam muito grandes para os bancos relacionais
  • 14. Qual banco devo escolher? - Alta disponibilidade e escolabilidade - Gravação de dados muito rápida - Linguagem de consulta semelhante ao SQL - Esquema flexível
  • 15. Qual banco devo escolher? - Alta disponibilidade e escolabilidade - Leitura muito rápida em cache - Schema de dados simples (key-value) - Fácil integração com qualquer linguagem
  • 16. Não comparem bancos SQL e NoSQL x x
  • 17. Comparem bancos de mesma arquitetura para as mesmas soluções x x
  • 18. - C++ - Schemaless - JSON/BSON - Replica - Harding - GridFS Visão geral
  • 20. > var product = {"name": "Cachaça", "description": "Mé brasileiro", "price": 12.00} > db.products.insert(product); Operações - Insert
  • 21. > var product = db.products.find(); > { "name": "Cachaça", "description": "Mé brasileiro", "price": 12.00 } Operações - Find
  • 22. Visão Geral - Java - Schemaless - Cypher - Teoria de grafos - Transaction
  • 23. Grafos Conjunto finito de vértices e arestas
  • 24. Operações - Create e Show CREATE (NoSQL: palestra {title: 'NoSQL Soluções alternativas para bancos de dados'}) CREATE (Nicolas: palestrante {nome: 'Nicolas Ibanheiz', idade: 21}) CREATE (Nicolas)-[:PALESTROU_EM {roles: ['Nico']}]->(NoSQL) WITH Nicolas as a MATCH(a)-[:PALESTROU_EM]->(m) return a,m
  • 25. Pensando numa Rede Social 1 - Leitura mais rápida de dados Replicação de dados Replicação de dados 2 - Repositório central 3 - Leitura rápida em cache 4 - Conectar e descobrir relacionamentos
  • 26. Mudando seu jeito de pensar
  • 27. Mudando seu jeito de pensar
  • 28. Dica - Livro NoSQL Essencial