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