 
                                NoSQL em 5 minutos!
Edimo Sousa Silva
SI / FA7
Verde Tecnologia
Diferencial
 Escalabilidade
 Disponibilidade (acessos simultâneos)
Diferencial
 Performance
Com a possibilidade de um maior escalonamento, o
acesso aos dados se torna mais performatico.
 Estruturas dinâmicas
Tipos de Bancos de dados
NoSQL
Key/Value Store
HashTable gigante .
Maior escalabilidade.
Tipos de Bancos de dados
NoSQL
Wide Columns Store
 Listas de valores e/ou sub-colunas.
Tipos de Bancos de dados
NoSQL
Document Store
XML ou JSON
Graph Store
Complexibilidade maior
Objetos
Grafos
Tipos de Bancos de dados
NoSQL
Column Oriented Store
Relacional
Grande numero de colunas
NoSQL vs Relacionais
NoSQL
Relacionais
Esclabilidade
Alta / Fácil
Baixa / Dificil
Disponibilidade
Alta / Fácil
Baixa / Dificil
NoSQL vs Relacionais
NoSQL
Relacionais
Linguagem de
Não
consulta Padrão
Sim
Mudança entre
BD
Sim, com grande
esforço
Não
NoSQL sem ACID
 BASE (Basically Available,Soft state, Eventual
consistency)
 “Consistência em Momento Indeterminado”
(Maurício De Diana.)
BASE
Passa grande parte do tempo consistente.
Menos consistência mais disponibilidade.
NoSQL+ACID = Neo4j (exemplo)
Map and Reduce
Programação funcional
Funções combinadoras (Combinators), sendo
Map e Reduce as duas mais significativas.
Map
Map and Reduce
Muito eficiente na procura por textos e em data
mining.
Paralelização.
Poder de consulta comparado ao SQL.
Termos MongoDB
MySQL
MongoDB
database
database
table
collection
row
BSON document
column
BSON field
primary key
_id field
Sintaxe MongoDB
SQL
MongoDB
INSERT INTO USERS
VALUES(3,5)
db.users.insert({a:3,b:5})
SELECT * FROM users
db.users.find()
SELECT * FROM users
WHERE age=33
db.users.find({age:33})
SELECT a,b FROM users
WHERE age=33
db.users.find({age:33},
{a:1,b:1})
SELECT * FROM users
db.users.find({'age':{$gt:33,$lte:
WHERE age>33 AND age<=40 40}})
Quem usa?
Exemplos open-source
MongoDB : Disney
Apache Cassandra : Facebook & Twitter
FlockDN : Twitter
BigTable : Google
Twiter:edimoss
Skype/Gtalk:
edimossilva