Download - NOSQL - Uma real alternativa
![Page 1: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/1.jpg)
no:sqlNot only SQL
RENATO MOLINA TOTH
Renato Molina Toth www.renatomolina.in
![Page 2: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/2.jpg)
O que é?
![Page 3: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/3.jpg)
• Não é uma nova tecnologia, é uma nova abordagem
•Propõe um modelo alternativo de banco de dados
•Não é um modelo relacional
•Não respeita as propriedades de ACID
O que é?
![Page 4: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/4.jpg)
É um conjunto de propriedades fundamentais que garantem consistência de dados.
ACID?
![Page 5: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/5.jpg)
Atomicidade - Capacidade de uma transação ter todas as suas operações executada ou nenhuma delas.
Resumindo “ou vai, ou racha“
ACID – no bom popular
![Page 6: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/6.jpg)
Consistência - Indica que a base de dados está consistente no início da transação e ao seu final, porém durante a transação certas regras podem ser quebradas.
Resumindo “antes do pai sair e depois que chegar as coisas têm que estar arrumadas, durante seja lá o que Deus quiser “
ACID – no bom popular
![Page 7: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/7.jpg)
Isolamento - Capacidade das operações de uma transação não serem vistas pelas outras transações até que esta esteja encerrada.
Resumindo "não mete o bedelho no que estou fazendo “
ACID – no bom popular
![Page 8: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/8.jpg)
Durabilidade - Indica que depois de uma transação ser executada com sucesso, as alterações efetuadas persistam e não sejam desfeitas.
Resumindo "ajoelhou tem que rezar "
ACID – no bom popular
![Page 9: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/9.jpg)
Quebrar as correntes e a ditadura da base de dados relacional, junto com as
propriedades ACID!
Proposta!
![Page 10: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/10.jpg)
Cenário realO que realmente é necessário para um sistema funcionar?
![Page 11: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/11.jpg)
Cenário realO que realmente é necessário para um sistema funcionar?
![Page 12: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/12.jpg)
O que um sistema precisa para funcionar ?
Teorema de Brewer’s
Cenário real
![Page 13: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/13.jpg)
ACID x BASE
![Page 14: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/14.jpg)
BASEBasically Available
Soft state Eventual consistency
![Page 15: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/15.jpg)
Usa conceito de BASE
Alta perfomance
Alta escalabilidade
Configurações de particionamento fáceis
Abordagem não-relacional
![Page 16: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/16.jpg)
Relacional x não-relacionalAplicação crescendo, parabéns!
Mas e agora?
![Page 17: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/17.jpg)
Scale Up
Scale out
![Page 18: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/18.jpg)
Scale Up
![Page 19: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/19.jpg)
Problemas – Scale UpHardware possuem limitações!
![Page 20: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/20.jpg)
Scale out
![Page 21: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/21.jpg)
Problems – Scale outConfiguração é complexa!
![Page 22: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/22.jpg)
FilosofiaSimple n’ robust!
Se preocupe com sua aplicação!
Não precisamos mais do antigo profissional DBA
Relacional x não-relacional
![Page 23: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/23.jpg)
• Chave/Valor
• Documento
• Tabular
• Grafo
• Outros
Tipos de banco de dados não relacionais
![Page 24: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/24.jpg)
• Chave/Valor
• Documento
• Tabular
• Grafo
• Outros
Tipos de banco de dados não relacionais
![Page 25: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/25.jpg)
Chave / ValorComo o próprio nome diz, é um modelo de banco de dados que associa um registro a uma chave.
![Page 26: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/26.jpg)
Chave / ValorComo o próprio nome diz, é um modelo de banco de dados que associa um registro a uma chave.
This is a hash!
![Page 27: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/27.jpg)
Totalmente livre de schemas de banco de dados, deixando a semântica e os tipos de dados a critério do desenvolvedor.
Interface para desenvolvimento entretanto simples e patronizadas.
Put(chave, valor)
Get(chave)
Chave / Valor
![Page 28: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/28.jpg)
Redundância e replicação
Estudo de caso
Chave / Valor
![Page 29: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/29.jpg)
Amazon SimpleDB
Chave / Valor - Serviços na cloud
![Page 30: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/30.jpg)
Azure table Storage
Redis
Riak
Genie
Chave / Valor - Exemplos
![Page 31: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/31.jpg)
Semelhante ao chave valor, entretanto possui uma estrutura definida por um arquivo de marcação (xml, json, etc)
Um dos modelos mais usados no mercado
Baseados em Documento
![Page 32: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/32.jpg)
{Type: contactFirst:PauloLastName:SouzaEmail: work: [email protected]
home: [email protected]}
Baseados em Documento
![Page 33: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/33.jpg)
CouchBD MongoDBBaseados em Documento
![Page 34: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/34.jpg)
Baseados em Grafo
“Tipicamente, grafos podem ser definidos como uma abstração matemática que podem ser representados através de vértices e arestas, representando caminhos.”
![Page 35: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/35.jpg)
Baseados em Grafo
Definem registros em forma de vértices(conteúdo, propriamente dito) e arestas (relacionamento entre os conteúdos)
Não necessita de um modelo de armazenamento, como o baseado em documentos.
![Page 36: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/36.jpg)
Baseados em Grafo
![Page 37: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/37.jpg)
Baseados em Grafo
Maior complexidade
Menor redundância e replicação desnecessária
![Page 38: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/38.jpg)
Complexidade x Armazemento
![Page 39: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/39.jpg)
Mitos sobre o noSQL
É realmente escalonável?
Não precisamos mais de profissionais com o perfil de DBA?
Baixo custo
![Page 40: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/40.jpg)
Desempenho - Benchmarks
Dificuldades em encontrar um experimento válido, consiste e com parâmetros válidos.
Estudo de caso, Yahoo! Cloud Serving.
Levantar dados baseados na latência após receber uma carga de trabalho, através de uma ferramenta feito em java.
![Page 41: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/41.jpg)
Arquitetura da ferramenta
![Page 42: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/42.jpg)
Bancos que foram analisados
Sherpa
![Page 43: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/43.jpg)
Desempenho – carga A
![Page 44: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/44.jpg)
Desempenho – carga B
![Page 45: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/45.jpg)
noSQL na prática
![Page 46: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/46.jpg)
Vantagens x desvantagens
Procurar a solução ideal para o problema sempre!
![Page 47: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/47.jpg)
Modelo hibrido
Todos os sistemas geralmente possuem necessidades cruciais de consistência em algum módulo
Pensar em aproveitar de melhor forma as duas abordagens
![Page 48: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/48.jpg)
Conclusão
![Page 49: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/49.jpg)
Questões
![Page 50: NOSQL - Uma real alternativa](https://reader033.vdocuments.net/reader033/viewer/2022061206/5483119bb47959050d8b499a/html5/thumbnails/50.jpg)
Obrigado
Renato Molina Tothwww.renatomolina.in