• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Introdução ao NoSql

on

  • 4,851 views

Mini Curso introdutório sobre NoSQL,

Mini Curso introdutório sobre NoSQL,

Statistics

Views

Total Views
4,851
Views on SlideShare
4,810
Embed Views
41

Actions

Likes
2
Downloads
133
Comments
2

3 Embeds 41

http://gentecomum.blogspot.com 33
http://www.linkedin.com 7
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

12 of 2 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Apresentação poderia sem muito melhor... ficou devendo
    Are you sure you want to
    Your message goes here
    Processing…
  • Muito bom PR,

    além de programador logo, vc vira comediante Stand-UP, pode até substituir o marcelo TAS... hauhauahuauhauahuahauh
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Introdução ao NoSql Introdução ao NoSql Presentation Transcript

    • O que é NoSQL? Uma introdução prática em 4 passos! Professor Paulo Roberto Donatilio Rego btolinux@gmail.com.br @btolinux http://gentecomum.blogspot.com
    • Sobre 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;
    • Sumá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.
    • Analisando o Problema ➔ As vezes pensar é mais importante do que agir.
    • “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?
    • 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);
    • 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;
    • NoSQL X SQL? É 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;
    • Bancos Não Relacionais! Agora 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!
    • Bancos Não Relacionais! 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;
    • Quais são os Produtos? =
    • Quem são as empresas? ...
    • O escolhido de Hoje é: ➔ Open Source; ➔ Hight Performance; ➔ Schema-Free; ➔ Object Oriented; ➔ Scalable;
    • How to install this 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!
    • Um Novo Despertar Acordar cedo pode ser chato as vezes, mas geralmente é compensador.
    • “No principio disseram: Haja 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?
    • Então, já que é tudo isso 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!
    • O Novo Quarteto Fantástico ➔ Os 4 Cavaleiros do Apocalipse: ● Databases; ● Coleções; ● Documentos; ● BSON;
    • O Novo Quarteto Fantástico ➔ Databases: ● Agrupamento físico de coleções ● Um arquivo com os “namespaces”; – Nome das coleções; ● Aonde Guarda os dados;
    • O Novo Quarteto Fantástico ➔ Coleções: ● Agrupamento lógico de documentos em um database; ● Equivalente a tabela do YesREL;
    • O Novo Quarteto 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;
    • O Novo Quarteto 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;
    • Vamos Construir ➔ O Importante é dar o primeiro passo... ou colocar a primeira lajota.
    • “Agora é que a chapa vai 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?)
    • Mã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;
    • Mã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!
    • Mã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'
    • Mã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']});
    • Mão na massa pessoal ➔ Removendo dados: ● Apaga tudo: – db.cadPart.remove(); ● Apaga documento selecionado: – db.cadPart.remove({nome:'Claudio José'});
    • Conecta isso em uma linguagem de verdade vai! ➔ Conceitos Importantes: ● Linguagem + Banco = Software; ● Um olhar Básico com PHP; ● CRUD = – Create – Retrieve – Update – Delete
    • Conecta isso em uma 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
    • Escovador de Bits eu escolho você! ➔ Veja só esse código: $conn_mongodb = new Mongo(); $db = $conn_mongodb->selectDB("blogs"); $col = $db->selectCollection("users");
    • Escovador de Bits eu 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);
    • Escovador de Bits eu 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);
    • Escovador de Bits eu 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);
    • Pelo menos isso vocês 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;
    • Pelo menos isso vocês tem que aprender hoje!!
    • Pelo menos isso vocês tem que aprender hoje!!
    • Agora deixa eu perguntar uma coisa?
    • Rumo ao Novo Mundo ➔ Pedro Á Cabral deve ter dito assim quando viu o Brasil pela primeira vez: Putz, mandei Bem!
    • “Opa o estômago roncou 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.com ● http://twitter.com/btolinux
    • So this is the end! Por hoje é só pessoal! ➔