NoSQL - Soluções alternativas para bancos de dados
-
Upload
nicolas-ibanheiz -
Category
Software
-
view
54 -
download
3
Transcript of NoSQL - Soluções alternativas para bancos de dados
![Page 1: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/1.jpg)
NoSQLSoluções alternativas para bancos
de dados
![Page 2: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/2.jpg)
Nicolas Ibanheiz
Desenvolvedor Java
Entusiasta de Node.js e NoSql
Formado pela Etec de Itaquera õ/
github.com/ibanheiz
![Page 3: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/3.jpg)
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
![Page 4: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/4.jpg)
Relacionamento
Normalização
Integridade
![Page 5: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/5.jpg)
Relacionamnto Interidade
![Page 6: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/6.jpg)
Limitações do modelo relacional
- WallmartTrabalha com mais de 1 milhão de transações de clientes por hora, alimentando bancos de dados estimados em mais de 2,5 petabytes.
- FacebookPossui 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
![Page 7: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/7.jpg)
Dificuldade com escabailidade
![Page 8: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/8.jpg)
Dificuldade com performance
![Page 9: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/9.jpg)
E agora ???
![Page 10: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/10.jpg)
E agora ???
![Page 11: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/11.jpg)
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.
![Page 12: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/12.jpg)
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
![Page 13: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/13.jpg)
Bancos NoSQL populares
![Page 14: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/14.jpg)
Qual banco devo escolher?
- Alta disponibilidade e escolabilidade
- Gravação de dados muito rápida
- Linguagem de consulta semelhante ao SQL
- Esquema flexível
![Page 15: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/15.jpg)
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
![Page 16: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/16.jpg)
Não comparem bancos SQL e NoSQL
x
x
![Page 17: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/17.jpg)
Comparem bancos de mesma arquitetura para as mesmas soluções
x
x
![Page 18: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/18.jpg)
- C++
- Schemaless
- JSON/BSON
- Replica
- Harding
- GridFS
Visão geral
![Page 19: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/19.jpg)
DATABASE
TABLE
ROWS
QUERY
Terminologia
DATABASE
COLLECTION
DOCUMENT JSON
QUERY
![Page 20: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/20.jpg)
> var product = {"name": "Cachaça", "description": "Mé brasileiro", "price": 12.00}
> db.products.insert(product);
Operações - Insert
![Page 21: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/21.jpg)
> var product = db.products.find();
> {
"name": "Cachaça", "description": "Mé brasileiro", "price": 12.00
}
Operações - Find
![Page 22: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/22.jpg)
Visão Geral
- Java
- Schemaless
- Cypher
- Teoria de grafos
- Transaction
![Page 23: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/23.jpg)
Grafos
Conjunto finito de vértices e arestas
![Page 24: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/24.jpg)
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
![Page 25: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/25.jpg)
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
![Page 26: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/26.jpg)
Mudando seu jeito de pensar
![Page 27: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/27.jpg)
Mudando seu jeito de pensar
![Page 28: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/28.jpg)
Dica - Livro NoSQL Essencial
![Page 29: NoSQL - Soluções alternativas para bancos de dados](https://reader035.fdocuments.net/reader035/viewer/2022062406/55c652c6bb61eb6f468b4629/html5/thumbnails/29.jpg)