![Page 1: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/1.jpg)
Banco de Dados NoSQL de código aberto
Jean Carlo Nascimento aka SUISSACTO - AtrionWeb Developer - Tagon8
http://about.me/suissa
![Page 2: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/2.jpg)
Sobre o autor
● Desenvolvedor web há 8 anos● Formado pela UTF-PR em SI● Especialista em Desenvolvimento Web● Criador do Sampa.js e FrontinSampa● Evangelista Node.js e NoSQL● nosqlbr.com.br● javascriptbrasil.com● jquerybrasil.org● frontendbrasil.com.br
![Page 3: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/3.jpg)
![Page 4: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/4.jpg)
![Page 5: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/5.jpg)
![Page 6: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/6.jpg)
![Page 7: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/7.jpg)
Tipos de Armazenamento
● Coluna● Documento● Chave/Valor● Grafo● Object● XML● Mutimodel
![Page 8: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/8.jpg)
![Page 9: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/9.jpg)
BigTable
"Bigtable is used by more than sixty Google products and projects, including Google Analytics, Google Finance, Orkut, Personalized Search, Writely, and Google Earth."
http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/pt-BR//archive/bigtable-osdi06.pdf
![Page 10: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/10.jpg)
![Page 11: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/11.jpg)
![Page 12: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/12.jpg)
Cassandra● O melhor do BigTable e Dynamo● Java● Licença Apache● Protocol personalizado, Thrift
http://cassandra.apache.org/
![Page 13: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/13.jpg)
Cassandra
● Consulta por faixa de coluna e chaves● BigTable-como características: colunas, famílias de
coluna ● Tem índices secundários● As gravações são muito mais rápido do que lê (!)● Map / Reduce possível com Apache Hadoop
http://cassandra.apache.org/
![Page 14: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/14.jpg)
CassandraMelhor usado: Quando você escreve mais do que você lê (logging). Se todos os componentes do sistema deve ser em Java.
Por exemplo: Bancos, setor financeiro (Embora não necessariamente para transações financeiras, mas estas indústrias são muito maiores do que isso). Ótimo para aplicações em tempo real e análise de dados.
http://cassandra.apache.org/
![Page 15: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/15.jpg)
![Page 16: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/16.jpg)
![Page 17: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/17.jpg)
![Page 18: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/18.jpg)
![Page 19: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/19.jpg)
![Page 20: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/20.jpg)
![Page 21: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/21.jpg)
Redis
● Super rápido● C/C++● Licença: BSD● Telnet-like
http://redis.io/
![Page 22: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/22.jpg)
Redis● Replicação master-slave● Possui transações● Valores podem expirar (como em um cache)● Pub/Sub permite implementação de aplicação de
mensagens
http://redis.io/
![Page 23: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/23.jpg)
RedisMelhor uso: Para mudança rápida de dados com um banco de dados de tamanho previsível (deve caber principalmente na memória).
Exemplos: Os preços das ações. Analytics. Coleção de dados em tempo real. Comunicação em tempo real.
http://redis.io/
![Page 24: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/24.jpg)
![Page 25: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/25.jpg)
![Page 26: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/26.jpg)
MongoDB
● C++● Mantém algumas propriedades favoráveis de SQL.
(Query, index)● Licença: AGPL● Protocolo personalizado, REST
http://www.mongodb.org/
![Page 27: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/27.jpg)
MongoDB
● Master / slave de replicação (failover automático com conjuntos de réplicas)
● Sharding embutido● As consultas são expressões javascript● Executa funções javascript do lado do servidor
http://www.mongodb.org/
![Page 28: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/28.jpg)
MongoDB
● Usa arquivos de memória mapeada para armazenamento de dados
● Em sistemas de 32 bits, limitado a ~ 2.5Gb● GridFS para armazenar grande de dados de metadados● Tem indexação geoespacial
http://www.mongodb.org/
![Page 29: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/29.jpg)
MongoDBMelhor usado: Se você precisar de consultas dinâmicas. Se você precisa de bom desempenho em um banco de dados grande. Sistemas de logging.
Por exemplo: Para a maioria das coisas que você faria com MySQL ou PostgreSQL, mas ter colunas predefinidas realmenteseguram você.
http://www.mongodb.org/
![Page 30: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/30.jpg)
![Page 31: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/31.jpg)
![Page 32: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/32.jpg)
Neo4J
● Java● Grafos - dados conectados● Licença: GPL, AGPL/commercial● Protocolo HTTP/REST (ou incorporado no Java)
http://neo4j.org/
![Page 33: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/33.jpg)
Neo4J
● Standalone, ou embutido em aplicações Java● ACID completo (incluindo dados duráveis)● Ambos os nós e os relacionamentos podem ter
metadados● Linguagem de consulta integrada ("Cypher")● Linguagem "Gremlin" pode ser usada● Indexação de nós e relacionamentos
http://neo4j.org/
![Page 34: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/34.jpg)
Neo4J
● Administrador web agradável auto-suficiente● Vários algoritmos de busca de caminho● Indexação de chaves e relacionamentos● Optimizado para leitura
http://neo4j.org/
![Page 35: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/35.jpg)
Neo4JMelhor usado: Para grafos ricos ou complexos, e para relacionamento entre entidades. Neo4j é bastante diferente dos outros neste sentido.
Por exemplo: relações sociais, transportes públicos, mapas rodoviários, topologias de rede.
http://neo4j.org/
![Page 36: Secot banco de dados no sql de código aberto](https://reader036.vdocuments.pub/reader036/viewer/2022070302/547ea83fb47959c5508b4bb7/html5/thumbnails/36.jpg)