SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
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
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;
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.
Analisando o ProblemaAnalisando o Problema
➔
As vezes pensar éAs vezes pensar é
mais importante domais importante do
que agir.que agir.
““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?
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);
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;
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;
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!
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;
Quais são os Produtos?Quais são os Produtos?
=
Quem são as empresas?Quem são as empresas?
...
O escolhido de Hoje é:O escolhido de Hoje é:
➔ Open Source;
➔ Hight Performance;
➔ Schema-Free;
➔ Object Oriented;
➔ Scalable;
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!
Um Novo DespertarUm Novo Despertar
Acordar cedo podeAcordar cedo pode
ser chato as vezes,ser chato as vezes,
mas geralmente émas geralmente é
compensador.compensador.
““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?
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!
O NovoO Novo
Quarteto FantásticoQuarteto Fantástico
➔ Os 4 Cavaleiros do Apocalipse:
● Databases;
● Coleções;
● Documentos;
● BSON;
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;
O NovoO Novo
Quarteto FantásticoQuarteto Fantástico
➔ Coleções:
● Agrupamento lógico de documentos em um
database;
● Equivalente a tabela do YesREL;
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;
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;
Vamos ConstruirVamos Construir
➔
O Importante é dar oO Importante é dar o
primeiro passo... ouprimeiro passo... ou
colocar a primeiracolocar a primeira
lajota.lajota.
““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?)
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;
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!
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'
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']});
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é'});
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
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
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");
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);
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);
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);
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;
Pelo menos isso vocêsPelo menos isso vocês
tem que aprender hoje!!tem que aprender hoje!!
Pelo menos isso vocêsPelo menos isso vocês
tem que aprender hoje!!tem que aprender hoje!!
Agora deixa eu perguntarAgora deixa eu perguntar
uma coisa?uma coisa?
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!
““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
So this is the end!So this is the end!
➔Por hoje é só pessoal!

Weitere ähnliche Inhalte

Was ist angesagt?

Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)Rodrigo Valerio
 
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLEstudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLOrlando Vitali
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...iMasters
 
Primeiros passos com o Cassandra
 Primeiros passos com o Cassandra  Primeiros passos com o Cassandra
Primeiros passos com o Cassandra Otávio Santana
 
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroiMasters
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Ambiente Livre
 
Mais um comparativo MongoDB - Fernando Boaglio - abril.2014
Mais um comparativo MongoDB - Fernando Boaglio - abril.2014Mais um comparativo MongoDB - Fernando Boaglio - abril.2014
Mais um comparativo MongoDB - Fernando Boaglio - abril.2014Fernando Boaglio
 
Introducao aos Bancos de Dados Não-relacionais
Introducao aos Bancos de Dados Não-relacionaisIntroducao aos Bancos de Dados Não-relacionais
Introducao aos Bancos de Dados Não-relacionaisMauricio De Diana
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPAricelio Souza
 
NoSQL - Soluções alternativas para bancos de dados
NoSQL - Soluções alternativas para bancos de dadosNoSQL - Soluções alternativas para bancos de dados
NoSQL - Soluções alternativas para bancos de dadosNicolas Ibanheiz
 
Conhecendo Apache Cassandra @Movile
Conhecendo Apache Cassandra  @MovileConhecendo Apache Cassandra  @Movile
Conhecendo Apache Cassandra @MovileEiti Kimura
 
DBA Brasil 2.0 NOSql Apache Cassandra para DBAs
DBA Brasil 2.0   NOSql Apache Cassandra para DBAsDBA Brasil 2.0   NOSql Apache Cassandra para DBAs
DBA Brasil 2.0 NOSql Apache Cassandra para DBAsRonaldo Leite Martins
 
Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra) Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra) Otávio Santana
 
Introdução no sql mongodb java
Introdução no sql mongodb javaIntrodução no sql mongodb java
Introdução no sql mongodb javaFabiano Modos
 
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na WebMeritt - Cada Aluno é Único
 

Was ist angesagt? (20)

Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)
 
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLEstudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
 
Primeiros passos com o Cassandra
 Primeiros passos com o Cassandra  Primeiros passos com o Cassandra
Primeiros passos com o Cassandra
 
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
 
Mais um comparativo MongoDB - Fernando Boaglio - abril.2014
Mais um comparativo MongoDB - Fernando Boaglio - abril.2014Mais um comparativo MongoDB - Fernando Boaglio - abril.2014
Mais um comparativo MongoDB - Fernando Boaglio - abril.2014
 
Introducao aos Bancos de Dados Não-relacionais
Introducao aos Bancos de Dados Não-relacionaisIntroducao aos Bancos de Dados Não-relacionais
Introducao aos Bancos de Dados Não-relacionais
 
Cassandra NoSQL JUG Vale 2012
Cassandra NoSQL JUG Vale 2012Cassandra NoSQL JUG Vale 2012
Cassandra NoSQL JUG Vale 2012
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 
NoSQL - Soluções alternativas para bancos de dados
NoSQL - Soluções alternativas para bancos de dadosNoSQL - Soluções alternativas para bancos de dados
NoSQL - Soluções alternativas para bancos de dados
 
Conhecendo Apache Cassandra @Movile
Conhecendo Apache Cassandra  @MovileConhecendo Apache Cassandra  @Movile
Conhecendo Apache Cassandra @Movile
 
Mongo db slides
Mongo db slidesMongo db slides
Mongo db slides
 
DBA Brasil 2.0 NOSql Apache Cassandra para DBAs
DBA Brasil 2.0   NOSql Apache Cassandra para DBAsDBA Brasil 2.0   NOSql Apache Cassandra para DBAs
DBA Brasil 2.0 NOSql Apache Cassandra para DBAs
 
Cassandra - O básico
Cassandra - O básicoCassandra - O básico
Cassandra - O básico
 
Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra) Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra)
 
Introdução no sql mongodb java
Introdução no sql mongodb javaIntrodução no sql mongodb java
Introdução no sql mongodb java
 
Banco de Dados - NoSQL
Banco de Dados - NoSQLBanco de Dados - NoSQL
Banco de Dados - NoSQL
 
MAC5855 - NoSQL
MAC5855 - NoSQLMAC5855 - NoSQL
MAC5855 - NoSQL
 
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
 

Andere mochten auch

NoSQL com Cassandra
NoSQL com CassandraNoSQL com Cassandra
NoSQL com CassandraJugVale
 
MongoDB: introdução à sua próxima base de dados
MongoDB:  introdução à sua próxima base de dadosMongoDB:  introdução à sua próxima base de dados
MongoDB: introdução à sua próxima base de dadosJordan Kobellarz
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesChristiano Anderson
 
MongoDB - Apresentação
MongoDB - ApresentaçãoMongoDB - Apresentação
MongoDB - ApresentaçãoTerra / Neo
 
Mini-Curso de MongoDB
Mini-Curso de MongoDBMini-Curso de MongoDB
Mini-Curso de MongoDBBrunno Gomes
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDBLelyBarros
 
Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Christiano Anderson
 
MongoDB - Tudo que você precisa saber - FGSL 2014
MongoDB - Tudo que você precisa saber - FGSL 2014MongoDB - Tudo que você precisa saber - FGSL 2014
MongoDB - Tudo que você precisa saber - FGSL 2014Christiano Anderson
 
MongoDB - Tudo o que você precisa saber - FISL16
MongoDB - Tudo o que você precisa saber - FISL16MongoDB - Tudo o que você precisa saber - FISL16
MongoDB - Tudo o que você precisa saber - FISL16Christiano Anderson
 
Data warehouse & Data mining
Data warehouse & Data miningData warehouse & Data mining
Data warehouse & Data miningCassius Busemeyer
 
Modelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência PoliglotaModelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência PoliglotaGlaucio Scheibel
 
Introdução ao Data Warehouse
Introdução ao Data WarehouseIntrodução ao Data Warehouse
Introdução ao Data WarehouseMessias Batista
 
Desmistificando NoSQL e Novas Tecnologias de Bancos de Dados
Desmistificando NoSQL e Novas Tecnologias de Bancos de DadosDesmistificando NoSQL e Novas Tecnologias de Bancos de Dados
Desmistificando NoSQL e Novas Tecnologias de Bancos de DadosFabíola Fernandes
 

Andere mochten auch (20)

Artigo Nosql
Artigo NosqlArtigo Nosql
Artigo Nosql
 
datawarehouse2
datawarehouse2datawarehouse2
datawarehouse2
 
NoSQL com Cassandra
NoSQL com CassandraNoSQL com Cassandra
NoSQL com Cassandra
 
MongoDB: introdução à sua próxima base de dados
MongoDB:  introdução à sua próxima base de dadosMongoDB:  introdução à sua próxima base de dados
MongoDB: introdução à sua próxima base de dados
 
NoSQL e MongoDB - ETEC
NoSQL e MongoDB - ETECNoSQL e MongoDB - ETEC
NoSQL e MongoDB - ETEC
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentes
 
Workshop MongoDB
Workshop MongoDBWorkshop MongoDB
Workshop MongoDB
 
MongoDB - Iniciando e Conhecendo
MongoDB - Iniciando e ConhecendoMongoDB - Iniciando e Conhecendo
MongoDB - Iniciando e Conhecendo
 
MongoDB - Apresentação
MongoDB - ApresentaçãoMongoDB - Apresentação
MongoDB - Apresentação
 
Palestra MongoDB
Palestra MongoDBPalestra MongoDB
Palestra MongoDB
 
NoSQL e MongoDB
NoSQL e MongoDBNoSQL e MongoDB
NoSQL e MongoDB
 
Mini-Curso de MongoDB
Mini-Curso de MongoDBMini-Curso de MongoDB
Mini-Curso de MongoDB
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDB
 
Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15
 
MongoDB - Tudo que você precisa saber - FGSL 2014
MongoDB - Tudo que você precisa saber - FGSL 2014MongoDB - Tudo que você precisa saber - FGSL 2014
MongoDB - Tudo que você precisa saber - FGSL 2014
 
MongoDB - Tudo o que você precisa saber - FISL16
MongoDB - Tudo o que você precisa saber - FISL16MongoDB - Tudo o que você precisa saber - FISL16
MongoDB - Tudo o que você precisa saber - FISL16
 
Data warehouse & Data mining
Data warehouse & Data miningData warehouse & Data mining
Data warehouse & Data mining
 
Modelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência PoliglotaModelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência Poliglota
 
Introdução ao Data Warehouse
Introdução ao Data WarehouseIntrodução ao Data Warehouse
Introdução ao Data Warehouse
 
Desmistificando NoSQL e Novas Tecnologias de Bancos de Dados
Desmistificando NoSQL e Novas Tecnologias de Bancos de DadosDesmistificando NoSQL e Novas Tecnologias de Bancos de Dados
Desmistificando NoSQL e Novas Tecnologias de Bancos de Dados
 

Ähnlich wie Introdução ao NoSql

Mongodb praquer-usar-uaijugcloudday2014
Mongodb praquer-usar-uaijugcloudday2014Mongodb praquer-usar-uaijugcloudday2014
Mongodb praquer-usar-uaijugcloudday2014Rogerio Fontes
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopDiego Sana
 
Mude seu jeito de pensar com MongoDB
Mude seu jeito de pensar com MongoDBMude seu jeito de pensar com MongoDB
Mude seu jeito de pensar com MongoDBDouglas Lira
 
Uma implementação de suporte a
Uma implementação de suporte a Uma implementação de suporte a
Uma implementação de suporte a Rômulo Jales
 
Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Christiano Anderson
 
JavaScript Firme: Módulos com RequireJS e BDD com Jasmine
JavaScript Firme: Módulos com RequireJS e BDD com JasmineJavaScript Firme: Módulos com RequireJS e BDD com Jasmine
JavaScript Firme: Módulos com RequireJS e BDD com JasmineAndré Willik Valenti
 
Desenvolvendo soluções com banco de dados não relacional - MongoDB
Desenvolvendo soluções com banco de dados não relacional - MongoDBDesenvolvendo soluções com banco de dados não relacional - MongoDB
Desenvolvendo soluções com banco de dados não relacional - MongoDBiMasters
 
Desenvolva rapidamente utilizando o framework Desenvolva rapidamente utiliz...
Desenvolva rapidamente
utilizando o framework
Desenvolva rapidamente utiliz...Desenvolva rapidamente
utilizando o framework
Desenvolva rapidamente utiliz...
Desenvolva rapidamente utilizando o framework Desenvolva rapidamente utiliz...Renato Shirakashi
 
MongoDB e OpenShift - JUDCon2014
MongoDB e OpenShift - JUDCon2014MongoDB e OpenShift - JUDCon2014
MongoDB e OpenShift - JUDCon2014Fernando Boaglio
 
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...Pablo Dall'Oglio
 
Removendo o cheiro ruim do seu código - SoLiSC 2011
Removendo o cheiro ruim do seu código - SoLiSC 2011Removendo o cheiro ruim do seu código - SoLiSC 2011
Removendo o cheiro ruim do seu código - SoLiSC 2011Luís Cobucci
 
MongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saberMongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saberChristiano Anderson
 

Ähnlich wie Introdução ao NoSql (20)

MongoDB
MongoDBMongoDB
MongoDB
 
Mongodb praquer-usar-uaijugcloudday2014
Mongodb praquer-usar-uaijugcloudday2014Mongodb praquer-usar-uaijugcloudday2014
Mongodb praquer-usar-uaijugcloudday2014
 
Mongopesl
MongopeslMongopesl
Mongopesl
 
Palestra nosql
Palestra nosqlPalestra nosql
Palestra nosql
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day Workshop
 
Mude seu jeito de pensar com MongoDB
Mude seu jeito de pensar com MongoDBMude seu jeito de pensar com MongoDB
Mude seu jeito de pensar com MongoDB
 
Uma implementação de suporte a
Uma implementação de suporte a Uma implementação de suporte a
Uma implementação de suporte a
 
MongoDB na Campus Party
MongoDB na Campus PartyMongoDB na Campus Party
MongoDB na Campus Party
 
Mongo
MongoMongo
Mongo
 
P566Aula10
P566Aula10P566Aula10
P566Aula10
 
Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7
 
JavaScript Firme: Módulos com RequireJS e BDD com Jasmine
JavaScript Firme: Módulos com RequireJS e BDD com JasmineJavaScript Firme: Módulos com RequireJS e BDD com Jasmine
JavaScript Firme: Módulos com RequireJS e BDD com Jasmine
 
Desenvolvendo soluções com banco de dados não relacional - MongoDB
Desenvolvendo soluções com banco de dados não relacional - MongoDBDesenvolvendo soluções com banco de dados não relacional - MongoDB
Desenvolvendo soluções com banco de dados não relacional - MongoDB
 
Desenvolva rapidamente utilizando o framework Desenvolva rapidamente utiliz...
Desenvolva rapidamente
utilizando o framework
Desenvolva rapidamente utiliz...Desenvolva rapidamente
utilizando o framework
Desenvolva rapidamente utiliz...
Desenvolva rapidamente utilizando o framework Desenvolva rapidamente utiliz...
 
MongoDB e OpenShift - JUDCon2014
MongoDB e OpenShift - JUDCon2014MongoDB e OpenShift - JUDCon2014
MongoDB e OpenShift - JUDCon2014
 
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...
Construindo ERP's com PHP: Desafios em design, manutenção segurança e perf...
 
Novas Fronteiras
Novas FronteirasNovas Fronteiras
Novas Fronteiras
 
Mean Stack
Mean StackMean Stack
Mean Stack
 
Removendo o cheiro ruim do seu código - SoLiSC 2011
Removendo o cheiro ruim do seu código - SoLiSC 2011Removendo o cheiro ruim do seu código - SoLiSC 2011
Removendo o cheiro ruim do seu código - SoLiSC 2011
 
MongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saberMongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saber
 

Mehr von Paulo Roberto Donatilio Rego

Mehr von Paulo Roberto Donatilio Rego (7)

Desenvolvimento Com Software Livre
Desenvolvimento Com Software LivreDesenvolvimento Com Software Livre
Desenvolvimento Com Software Livre
 
Aula 9 - Introdução ao Python
Aula 9 - Introdução ao PythonAula 9 - Introdução ao Python
Aula 9 - Introdução ao Python
 
Aula 4 - Conhecendo as Estruturas de Repetição
Aula 4 - Conhecendo as Estruturas de RepetiçãoAula 4 - Conhecendo as Estruturas de Repetição
Aula 4 - Conhecendo as Estruturas de Repetição
 
Aula 3 - Utilizando a variável SE e conhecendo operadores lógicos
Aula 3 - Utilizando a variável SE e conhecendo operadores lógicosAula 3 - Utilizando a variável SE e conhecendo operadores lógicos
Aula 3 - Utilizando a variável SE e conhecendo operadores lógicos
 
Aula 2 - Conceito de váriáveis cumulativas
Aula 2 - Conceito de váriáveis cumulativasAula 2 - Conceito de váriáveis cumulativas
Aula 2 - Conceito de váriáveis cumulativas
 
Aula 1 - Introdução ao conceito de algoritmos
Aula 1 - Introdução ao conceito de algoritmosAula 1 - Introdução ao conceito de algoritmos
Aula 1 - Introdução ao conceito de algoritmos
 
Empreendedorismo com Software Livre - Um novo Horizonte
Empreendedorismo com Software Livre - Um novo HorizonteEmpreendedorismo com Software Livre - Um novo Horizonte
Empreendedorismo com Software Livre - Um novo Horizonte
 

Introdução ao NoSql

  • 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. 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. 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. Analisando o ProblemaAnalisando o Problema ➔ As vezes pensar éAs vezes pensar é mais importante domais importante do que agir.que agir.
  • 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. 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. 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. 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. 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. 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. Quais são os Produtos?Quais são os Produtos? =
  • 12. Quem são as empresas?Quem são as empresas? ...
  • 13. O escolhido de Hoje é:O escolhido de Hoje é: ➔ Open Source; ➔ Hight Performance; ➔ Schema-Free; ➔ Object Oriented; ➔ Scalable;
  • 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. 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. ““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. 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. O NovoO Novo Quarteto FantásticoQuarteto Fantástico ➔ Os 4 Cavaleiros do Apocalipse: ● Databases; ● Coleções; ● Documentos; ● BSON;
  • 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. O NovoO Novo Quarteto FantásticoQuarteto Fantástico ➔ Coleções: ● Agrupamento lógico de documentos em um database; ● Equivalente a tabela do YesREL;
  • 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. 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. Vamos ConstruirVamos Construir ➔ O Importante é dar oO Importante é dar o primeiro passo... ouprimeiro passo... ou colocar a primeiracolocar a primeira lajota.lajota.
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Pelo menos isso vocêsPelo menos isso vocês tem que aprender hoje!!tem que aprender hoje!!
  • 38. Pelo menos isso vocêsPelo menos isso vocês tem que aprender hoje!!tem que aprender hoje!!
  • 39. Agora deixa eu perguntarAgora deixa eu perguntar uma coisa?uma coisa?
  • 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. ““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. So this is the end!So this is the end! ➔Por hoje é só pessoal!