Introdução ao NoSql

4,946
-1

Published on

Mini Curso introdutório sobre NoSQL,

Published in: Technology
2 Comments
3 Likes
Statistics
Notes
No Downloads
Views
Total Views
4,946
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
168
Comments
2
Likes
3
Embeds 0
No embeds

No notes for slide

Introdução ao NoSql

  1. 1. O que é NoSQL?O que é NoSQL? Uma introdução prática em 4 passos!Uma introdução prática em 4 passos! Professor Paulo Roberto Donatilio RegoProfessor Paulo Roberto Donatilio Rego btolinux@gmail.com.brbtolinux@gmail.com.br @btolinux@btolinux http://gentecomum.blogspot.comhttp://gentecomum.blogspot.com
  2. 2. Sobre MimSobre Mim ➔ Desenvolvedor de sistemas desde 2001; ➔ Linguagens: ● Delphi, PHP, Lazarus, Java; ➔ Bancos de Dados: ● Mysql, Interbase, Firebird, MongoDB; ➔ Graduado em Ciências da Computação pelo Pitágoras de Teixeira de Freitas; ➔ Pós graduando em Engenharia de Software; ➔ Professor da UnesulBahia;
  3. 3. SumárioSumário ➔ Analisando o Problema: ● Afinal o que é NoSQL? ➔ Um Novo Despertar: ● A quebra de um paradigma. ➔ Vamos Construir: ● Grandes obras devem ser iniciadas. ➔ Rumo ao Novo Mundo: ● Agora é com vocês.
  4. 4. Analisando o ProblemaAnalisando o Problema ➔ As vezes pensar éAs vezes pensar é mais importante domais importante do que agir.que agir.
  5. 5. ““Vamos por partes!”Vamos por partes!” ➔ Questões Relevantes: ● Pra que surgiu o NoSQL? ● Como surgiu o NoSQL? ● Qual a diferença entre SQL e NoSQL? ● Qual a estrutura de um Banco Não Relacional? ● Quais os produtos mais comuns? ● Qual desses a gente vai ver hoje? ● Como que instala o MongoDB?
  6. 6. Como Surgiu o NoSQL?Como Surgiu o NoSQL? ➔ Qual a Necessidade? ● Novo Cenário: Cloud Computing; ● Volumes de dados on Web cada vez maiores; ● Necessidade de grande storages; ● A estrutura de DBs atual não suporta a escalabilidade exigida pela Nuvem; ● Aplicativos com respostas mais rápidas; ● Diminuir o custo com DBM; (DataBase Managements); ● Diminuir o custo com DBA; (DataBase Administrators);
  7. 7. Como Surgiu o NoSQL?Como Surgiu o NoSQL? ➔ E Quando Surgiu? ● 1998, primeira vez utilizado o Termo NoSQL; ● O DB não possuía interface SQL; ● O movimento iniciou-se Open Source; ● Só ganhou força em 2009 com a criação de um seminário para debater bancos de dados Distribuídos;
  8. 8. NoSQL X SQL?NoSQL X SQL? É isso mesmo?É isso mesmo? ➔ E Começam os Trabalhos: ● A ideia é ser diferente do modelo relacional, o certo então seria chamar noREL; ● Um banco NoREL (esse nome não pega), supre as necessidades deixadas por um banco YesRel: – Alta performance, escalabilidade, replicação, sub- Colunas, etc; ● Como é um conceito iniciado no Open Source, a ideia foi debatida em todo mundo;
  9. 9. Bancos Não Relacionais!Bancos Não Relacionais! Agora simAgora sim ➔ NoSQL é mais commercial! ● Bancos de Dados Horizontais; – Mais dados Mais Servidores com: – Baixo Custo; – Grande poder de processamento; – Facilidade de Manutenção; ● Então aparecem diversas formas de se ver o mundo!
  10. 10. Bancos Não Relacionais!Bancos Não Relacionais! Como assim?Como assim? ➔ How This Stuff Work? ● Como o Banco NoSQL manipula os dados? – Key/Value Store; – Wide Columns Store; – Document Store; – Graph Store; – Column Oriented Store;
  11. 11. Quais são os Produtos?Quais são os Produtos? =
  12. 12. Quem são as empresas?Quem são as empresas? ...
  13. 13. O escolhido de Hoje é:O escolhido de Hoje é: ➔ Open Source; ➔ Hight Performance; ➔ Schema-Free; ➔ Object Oriented; ➔ Scalable;
  14. 14. How to install thisHow to install this Database?Database? ➔ Processo de Instalação: ➔ No Ubuntu é extremamente fácil... ● Entre no Synaptic e escolha o MongoDB e instale; ➔ No Windows então mais fácil ainda... ● Baixa o arquivo extraia em uma pasta e pronto!
  15. 15. Um Novo DespertarUm Novo Despertar Acordar cedo podeAcordar cedo pode ser chato as vezes,ser chato as vezes, mas geralmente émas geralmente é compensador.compensador.
  16. 16. ““No principio disseram:No principio disseram: Haja Google e ouve GoogleHaja Google e ouve Google”!!!”!!! ➔ Nossos primeiros passos: ● Como que funciona o MongoDB? ● Iniciando nosso servidor MongoDB! ● Novos conceitos, novos nomes! ● Databases, Coleções, Documentos, BSON! ● Hum legal, tem mais tio?
  17. 17. Então, já que é tudo issoEntão, já que é tudo isso o que a gente faz agora?o que a gente faz agora? ➔ Vamos iniciar os trabalhos: ● Para Acionar o banco de dados mongoDB – Vamos criar uma pasta para testar nossos bancos ok? – mongodb/data/db/ – Agora, ao acionar o servidor, informa o caminho: – mongod --dbpath mongodb/data/db – Servidor ligado agora reserve!
  18. 18. O NovoO Novo Quarteto FantásticoQuarteto Fantástico ➔ Os 4 Cavaleiros do Apocalipse: ● Databases; ● Coleções; ● Documentos; ● BSON;
  19. 19. O NovoO Novo Quarteto FantásticoQuarteto Fantástico ➔ Databases: ● Agrupamento físico de coleções ● Um arquivo com os “namespaces”; – Nome das coleções; ● Aonde Guarda os dados;
  20. 20. O NovoO Novo Quarteto FantásticoQuarteto Fantástico ➔ Coleções: ● Agrupamento lógico de documentos em um database; ● Equivalente a tabela do YesREL;
  21. 21. O NovoO Novo Quarteto FantásticoQuarteto Fantástico ➔ Documentos: ● Unidade de armazenamento; ● Tipo assim a linha da tabela, morou? ● Cada documento tem um id único em relação a coleção; ● Tamanho máximo 4MB; ● Volumes > 4MB use GridFS;
  22. 22. O NovoO Novo Quarteto FantásticoQuarteto Fantástico ➔ BSON: ● Formato de armazenamento de dados de documentos ou objetos; ● Binary Json; ● Json tem algumas limitações; ● O Binary Json arquiva alguns tipos a mais de dados, por exemplo: Date e e BinData; ● Da forma mais grosseira que se pode explicar é equivalente ao MyISAM ou InnoDB;
  23. 23. Vamos ConstruirVamos Construir ➔ O Importante é dar oO Importante é dar o primeiro passo... ouprimeiro passo... ou colocar a primeiracolocar a primeira lajota.lajota.
  24. 24. ““Agora é que a chapa vaiAgora é que a chapa vai começar a esquentar”!!!começar a esquentar”!!! ➔ Chega de perguntas professor: ● Vamos Brincar; ● Conhecendo o console do MongoDB; ● Dados, dados e mais dados!!! ● Alterar, filtrar, fuçar!! ● Plugando no PHP. ● Métodos Básicos; ● Entendendo um CRUD MongoDB x PHP. ● (o que é Crud Mesmo?)
  25. 25. Mão na massa pessoalMão na massa pessoal ➔ Ligando o console do MongoDB: ● Abram outro terminal, deixem o console anterior ligado; ● Executem o comando: – mongo; ● Apareceu o >? Então tá valendo; ● Comandos iniciais: – help; – Show dbs; – Show collections;
  26. 26. Mão na massa pessoalMão na massa pessoal ➔ Alguns comandos básicos: ● Vamos fazer um cadastro básico de colegas aqui presentes, saber o nome de cada um, a idade e as linguagens de programação que ele acha interessante! ● Para ir cadastrando: ● db.cadPart.save({nome:'Paulo Roberto', idade: 29, lingPref:['java', 'php', 'delphi']}); ● Vamos ver se cadastrou direito? ● db.cadPart.find(); ● Então ok, cadastrem o resto do povo pra gente poder criar os filtros!
  27. 27. Mão na massa pessoalMão na massa pessoal ➔ Agora vamos a filtros de verdade: ● db.cadPart.find({idade: 25}) ● It's Me! ● for(i=0;i<10;i++){db.cadPart.find({idade: 25})}; ● Now I talk about de Query Operators: – $gt '>' $lt - '<' – $lte - '<=' $gte - '>=' $ne - '!=' – $in - 'is in array', $nin - '! in array'
  28. 28. Mão na massa pessoalMão na massa pessoal ➔ Atualizando dados: ● db.cadPart.update({idade: 29},{nome:'Claudio José', idade:25, lingPref['Português']); ● Atualizando dados com $pull e $push; ● db.cadPart.update({nome:'Claudio José'},{$pull: {lingPref['Espanhol']}); ● db.cadPart.update({nome:'Claudio José'},{$push: {lingPref['Espanhol']});
  29. 29. Mão na massa pessoalMão na massa pessoal ➔ Removendo dados: ● Apaga tudo: – db.cadPart.remove(); ● Apaga documento selecionado: – db.cadPart.remove({nome:'Claudio José'});
  30. 30. Conecta isso em umaConecta isso em uma linguagem de verdade vai!linguagem de verdade vai! ➔ Conceitos Importantes: ● Linguagem + Banco = Software; ● Um olhar Básico com PHP; ● CRUD = – Create – Retrieve – Update – Delete
  31. 31. Conecta isso em umaConecta isso em uma linguagem de verdade vai!linguagem de verdade vai! ➔ Conectar o MongoDB ao PHP: ● Instalar o php5-dev; ● Agora digite: ● Sudo pecl install mongo; ● Deixa rolar até o final; ● Então acesse: – gedit /ect/php5/apache2/php.ini ● Ao final acrescente esta linha: – extension=mongo.so ● Reinicie o apache e está pronto
  32. 32. Escovador de Bits euEscovador de Bits eu escolho você!escolho você! ➔ Veja só esse código: $conn_mongodb = new Mongo(); $db = $conn_mongodb->selectDB("blogs"); $col = $db->selectCollection("users");
  33. 33. Escovador de Bits euEscovador de Bits eu escolho você!escolho você! ➔ Veja só esse código: $doc = array("_id" => 1, "email" => "meu@email.com", "nome" => "Joaozinho", "nivel" => "admin_supremo"); $conn_mongodb->selectDB("blogs")-> selectCollection("users")->save($doc);
  34. 34. Escovador de Bits euEscovador de Bits eu escolho você!escolho você! ➔ Veja só esse código: $query = array("nome" => "Joaozinho"); $cursor = $conn_mongodb->selectDB("blogs")-> selectCollection("users")->find($query); $query = array("nome" => "Joaozinho"); $fields = array("email" => true); $cursor = $conn_mongodb->selectDB("blogs")-> selectCollection("users")->find($query,$fields);
  35. 35. Escovador de Bits euEscovador de Bits eu escolho você!escolho você! ➔ Veja só esse código: $query = array("_id" => "1"); $col = $conn_mongodb->selectDB("blogs")->selectCollection("users"); $cursor = $col->find($query); while($cursor->hasNext()) { $doc = $cursor->getNext(); } $query = array("_id" => "1"); $col = $conn_mongodb->selectDB("blogs")->selectCollection("users"); $doc = $col->findOne($query);
  36. 36. Pelo menos isso vocêsPelo menos isso vocês tem que aprender hoje!!tem que aprender hoje!! ➔ Chegamos a conclusão que: ● NoSQL não é uma modinha! ● NoSQL não veio para sobrepor o “YesSQL”! ● NoSQL não foi concebido para pequenos projetos! ● NoSQL é uma quebra de paradigma; ● NoSQL é uma oportunidade nova! ● Pouca gente sabe oque é mesmo NoSQL;
  37. 37. Pelo menos isso vocêsPelo menos isso vocês tem que aprender hoje!!tem que aprender hoje!!
  38. 38. Pelo menos isso vocêsPelo menos isso vocês tem que aprender hoje!!tem que aprender hoje!!
  39. 39. Agora deixa eu perguntarAgora deixa eu perguntar uma coisa?uma coisa?
  40. 40. Rumo ao Novo MundoRumo ao Novo Mundo ➔ Pedro Á Cabral devePedro Á Cabral deve ter dito assimter dito assim quando viu o Brasilquando viu o Brasil pela primeira vez:pela primeira vez: Putz, mandei Bem!Putz, mandei Bem!
  41. 41. ““Opa o estômago roncouOpa o estômago roncou agora, deve ser o sinal”!!!agora, deve ser o sinal”!!! ➔ Sites interessantes: ● http://www.mongodb.org/ ● http://try.mongodb.org/ ● http://www.phpes.org/ ● http://twitter.com/#!/sanainside ● http://gentecomum.blogspot.comhttp://gentecomum.blogspot.com ● http://twitter.com/btolinuxhttp://twitter.com/btolinux
  42. 42. So this is the end!So this is the end! ➔Por hoje é só pessoal!

×