SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
Introdução aos bancos não-
relacionais com MongoDB
Unidev 1ª edição
Quem sou eu
• Estagiário na SecrelNet;
• Desenvolvedor há 8 anos;
• Membro preguiçoso de comunidades;
• Apaixonado pelo que faço;
Eu com Jon "Maddog" Hall, CTO da Linux
International
Primeiro, vamos recapitular o que são bancos
de dados relacionais
Bancos grandes demais se
tornam dificeis de se
manter
FilosofiaA.C.I.D
•Atomicity (Atômicidade)
•Consistency (Consistência)
•Isolation (Isolado)
•Durability (Durável)
* Bancos de dados precisam ser constantemente normalizados.
SQL (StructuredQuery Language)
• Criada pela IBM em 1974
• Usada por todos os bancos relacionais
• Realiza todos os tipos de operações em um banco de dados
• Consultas mal escritas podem acarretar em gargalo
Revisão feita, agora vamos ver como
são os banco não-relacionais
Um pouco de historia....
• Termo NoSQL criado 1998 porCarlo Strozzi
• Carlo Stozziconsiderava o SQL:
• Muito complexo
• Pouco portábil
• Limitado
• Com uma fraca usabilidade
• Criou a próprialinguagem baseado emOperator-Stream
Paradigm(Pipe)
Carlo Strozzi
Utilizava-se de recursos comoAWK, Perl e Grep para se
realizar a busca
No começo do NoSQL..
As tabelas eram arquivos textos
separados por tab
Uso de redirecionamento à esquerda para leitura dos dados
Um pouco de historia....
• Em 2004 foi lançadoo BigTable pela
Google.Seguido pelo Dynamo(Amazon)
em 2007 e pelo Cassandra(Facebook)em
2008
• Em 2009 foi realizado o primeiro grande
evento debancosNoSQLem San Fracisco,
patrocinadopela Last.FMcomparceria
comFacebookeLinkedin
• Tambémrecebeu o nomede NoREL (Not
Relational)
Programação 1º grande evento de NoSQL
Um pouco de historia....
Em 2008 usando MySQL (banco relacional) oTwitter ficou 84 horas offline
ao decorrer do ano. Já em 2009 após migrar para Cassandra esse tempo caiu
para 23 horas e 45 minutos.
Fonte: http://bit.ly/1yZ0cEn(ComputerWorld)
Fonte: http://bit.ly/1aZA0Or (InfoWorld)
Hoje existe uma variedade de bancos NoSQL
Agora vamos falarde coisa boa, vamos
falar de
• Lançado em Fevereiro de 2009 pela 10gen (hoje Mongo Inc.)
• Escrito em C++
• Opensource (código-aberto)
• Surgiu da palavra homongous (gigantesco)
• Orientado à documentos
• Mais de 9 milhões de downloads desde seu lançamento
Quem utiliza?
Schemas
• Utilizasse de BSON (Binary JSON)
Exemplo de JSON
Beleza, beleza. Já entendi maaaaas....
Bancos Relacionaisx MongoDB
• MongoDB não possui nenhum tipo de relacionamento entre seus documentos
• Segue o modelo BASE (Basically Available, Soft state, Eventual consistency):
• Disponível otempo inteiro
• Disponível emestado leve
• Eventualmenteconsistente
• Facilmente escalonável
Motivo 1: Evita "AlterTables"
• Documentos não precisam seguir ter os mesmos atributos
• Como se cada linha da tabela fosse "independente"
• É função no DBA garantir que essa liberdade não vire bagunça
Motivo 2:Auto-sharding
• Consiste em utilizar mais de uma máquina para rodar todo o Banco de
Dados
• Processo trás uma série de vantagens:
• Otimiza o tempodas consultas
• Casoalguma das máquinastenha problema
• MongoDB possui sistemas de sharding automático
Motivo 2:Auto-sharding
Motivo 3: Ótimo para Big Data
• O protocolo mais utilizado hoje porWeb Services é o JSON
• Acaba evitando ORM (Object-Relational Mapping) em diversas situações
Motivo 4: Simples porém Robusto
• BSON Query relativamente simples
• Não há preocupação com relacionamentos
• Ideal para iniciantes em NoSQL
Iniciandono
Instalando o
Via linha de comando: (linhas de comando são legais)
Usuários de Linux baseados em Debian/Ubuntu:
Usuários de Linux baseados em RedHat/Fedora/CentOS:
Usuários de MacOSX:
Usuários de NPM (todos os Sistemas Operacionais) *Recomendado
Instalando o
Via linha de comando: (linhas de comando são legais)
Para usuários de Windows via Chocolatey:
Ou baixando diretamente do site xD
https://www.mongodb.org/downloads
Instalando cliente gráfico
http://robomongo.org/
Inicializandoo Mongo
1º passo: Inicialização do servidor do Mongo
2º passo:
* Para os fãs de terminal:
* Para os fãs de interface gráfica:
Abram o Robomongo
APIs para Mongo
•PyMongo (Python)
•Php_mongo (PHP)
•Mongo JDBC Driver (Java)
• Mongo Ruby Driver (Ruby)
• Mgo (Go)
Para outras linguagens consulte:
http://api.mongodb.org/
Quem sabe faz ao vivo!
Agora é a hora....
Me sigam :D
https://github.com/Ziggoto
http://pt.slideshare.net/ziggoto

Mais conteúdo relacionado

Mais procurados

Apache camel
Apache camelApache camel
Apache cameldist_bp
 
Tópicos Avancados com DBExpress Framework e Firebird
Tópicos Avancados com DBExpress Framework e FirebirdTópicos Avancados com DBExpress Framework e Firebird
Tópicos Avancados com DBExpress Framework e FirebirdKelver Merlotti
 
PostgreSql - Um banco de dados Open Source que figura entre os grandes
PostgreSql - Um banco de dados Open Source que figura entre os grandesPostgreSql - Um banco de dados Open Source que figura entre os grandes
PostgreSql - Um banco de dados Open Source que figura entre os grandesjoanio trade
 
Aplicações Distribuídas com .NET | TDC Recife Online 2020
Aplicações Distribuídas com .NET | TDC Recife Online 2020Aplicações Distribuídas com .NET | TDC Recife Online 2020
Aplicações Distribuídas com .NET | TDC Recife Online 2020Renato Groff
 

Mais procurados (7)

Apache camel
Apache camelApache camel
Apache camel
 
Tópicos Avancados com DBExpress Framework e Firebird
Tópicos Avancados com DBExpress Framework e FirebirdTópicos Avancados com DBExpress Framework e Firebird
Tópicos Avancados com DBExpress Framework e Firebird
 
Browsers como vivem o que fazem
Browsers como vivem o que fazemBrowsers como vivem o que fazem
Browsers como vivem o que fazem
 
MVC na plataforma JEE
MVC na plataforma JEEMVC na plataforma JEE
MVC na plataforma JEE
 
PostgreSql - Um banco de dados Open Source que figura entre os grandes
PostgreSql - Um banco de dados Open Source que figura entre os grandesPostgreSql - Um banco de dados Open Source que figura entre os grandes
PostgreSql - Um banco de dados Open Source que figura entre os grandes
 
Aplicações Distribuídas com .NET | TDC Recife Online 2020
Aplicações Distribuídas com .NET | TDC Recife Online 2020Aplicações Distribuídas com .NET | TDC Recife Online 2020
Aplicações Distribuídas com .NET | TDC Recife Online 2020
 
Arquitetura API em NodeJS
Arquitetura API em NodeJSArquitetura API em NodeJS
Arquitetura API em NodeJS
 

Semelhante a Introducao aos bancos_nao_relacionais_com_mongodb

Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Introdução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDBIntrodução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDBJhonathan de Souza Soares
 
Projeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordProjeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordtchandy
 
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: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.Leonardo Quevedo
 
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeça
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeçaTrês anos de Scala em Produção: desafios, aprendizados e dores de cabeça
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeçaFelipe Hummel
 
Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Thiago de Azeredo
 
Trabalhando com banco de dados e Entity Framework
Trabalhando com banco de dados e Entity FrameworkTrabalhando com banco de dados e Entity Framework
Trabalhando com banco de dados e Entity FrameworkPriscila Mayumi
 
Estudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologiasEstudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologiasHelio Henrique L. C. Monte-Alto
 
Pepe Legal Python e Babalu MongoDB, uma dupla dinâmica
Pepe Legal Python e Babalu MongoDB, uma dupla dinâmicaPepe Legal Python e Babalu MongoDB, uma dupla dinâmica
Pepe Legal Python e Babalu MongoDB, uma dupla dinâmicaFATEC São José dos Campos
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edtedbrunoaalves
 

Semelhante a Introducao aos bancos_nao_relacionais_com_mongodb (20)

Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Introdução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDBIntrodução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDB
 
Projeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordProjeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecord
 
Mongo db
Mongo dbMongo db
Mongo db
 
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
 
MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.MongoDB: Prós, Contras e Showcases.
MongoDB: Prós, Contras e Showcases.
 
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeça
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeçaTrês anos de Scala em Produção: desafios, aprendizados e dores de cabeça
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeça
 
Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)
 
Trabalhando com banco de dados e Entity Framework
Trabalhando com banco de dados e Entity FrameworkTrabalhando com banco de dados e Entity Framework
Trabalhando com banco de dados e Entity Framework
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
Estudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologiasEstudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologias
 
LT - Redis
LT - RedisLT - Redis
LT - Redis
 
Pepe Legal Python e Babalu MongoDB, uma dupla dinâmica
Pepe Legal Python e Babalu MongoDB, uma dupla dinâmicaPepe Legal Python e Babalu MongoDB, uma dupla dinâmica
Pepe Legal Python e Babalu MongoDB, uma dupla dinâmica
 
Bigdata
BigdataBigdata
Bigdata
 
C # banco de dados
C # banco de dadosC # banco de dados
C # banco de dados
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 

Introducao aos bancos_nao_relacionais_com_mongodb

  • 1. Introdução aos bancos não- relacionais com MongoDB Unidev 1ª edição
  • 2. Quem sou eu • Estagiário na SecrelNet; • Desenvolvedor há 8 anos; • Membro preguiçoso de comunidades; • Apaixonado pelo que faço; Eu com Jon "Maddog" Hall, CTO da Linux International
  • 3. Primeiro, vamos recapitular o que são bancos de dados relacionais
  • 4.
  • 5.
  • 6. Bancos grandes demais se tornam dificeis de se manter
  • 7. FilosofiaA.C.I.D •Atomicity (Atômicidade) •Consistency (Consistência) •Isolation (Isolado) •Durability (Durável) * Bancos de dados precisam ser constantemente normalizados.
  • 8. SQL (StructuredQuery Language) • Criada pela IBM em 1974 • Usada por todos os bancos relacionais • Realiza todos os tipos de operações em um banco de dados • Consultas mal escritas podem acarretar em gargalo
  • 9. Revisão feita, agora vamos ver como são os banco não-relacionais
  • 10. Um pouco de historia.... • Termo NoSQL criado 1998 porCarlo Strozzi • Carlo Stozziconsiderava o SQL: • Muito complexo • Pouco portábil • Limitado • Com uma fraca usabilidade • Criou a próprialinguagem baseado emOperator-Stream Paradigm(Pipe) Carlo Strozzi Utilizava-se de recursos comoAWK, Perl e Grep para se realizar a busca
  • 11. No começo do NoSQL.. As tabelas eram arquivos textos separados por tab Uso de redirecionamento à esquerda para leitura dos dados
  • 12. Um pouco de historia.... • Em 2004 foi lançadoo BigTable pela Google.Seguido pelo Dynamo(Amazon) em 2007 e pelo Cassandra(Facebook)em 2008 • Em 2009 foi realizado o primeiro grande evento debancosNoSQLem San Fracisco, patrocinadopela Last.FMcomparceria comFacebookeLinkedin • Tambémrecebeu o nomede NoREL (Not Relational) Programação 1º grande evento de NoSQL
  • 13. Um pouco de historia.... Em 2008 usando MySQL (banco relacional) oTwitter ficou 84 horas offline ao decorrer do ano. Já em 2009 após migrar para Cassandra esse tempo caiu para 23 horas e 45 minutos. Fonte: http://bit.ly/1yZ0cEn(ComputerWorld) Fonte: http://bit.ly/1aZA0Or (InfoWorld)
  • 14. Hoje existe uma variedade de bancos NoSQL
  • 15. Agora vamos falarde coisa boa, vamos falar de
  • 16. • Lançado em Fevereiro de 2009 pela 10gen (hoje Mongo Inc.) • Escrito em C++ • Opensource (código-aberto) • Surgiu da palavra homongous (gigantesco) • Orientado à documentos • Mais de 9 milhões de downloads desde seu lançamento
  • 18. Schemas • Utilizasse de BSON (Binary JSON) Exemplo de JSON
  • 19. Beleza, beleza. Já entendi maaaaas....
  • 20. Bancos Relacionaisx MongoDB • MongoDB não possui nenhum tipo de relacionamento entre seus documentos • Segue o modelo BASE (Basically Available, Soft state, Eventual consistency): • Disponível otempo inteiro • Disponível emestado leve • Eventualmenteconsistente • Facilmente escalonável
  • 21. Motivo 1: Evita "AlterTables" • Documentos não precisam seguir ter os mesmos atributos • Como se cada linha da tabela fosse "independente" • É função no DBA garantir que essa liberdade não vire bagunça
  • 22. Motivo 2:Auto-sharding • Consiste em utilizar mais de uma máquina para rodar todo o Banco de Dados • Processo trás uma série de vantagens: • Otimiza o tempodas consultas • Casoalguma das máquinastenha problema • MongoDB possui sistemas de sharding automático
  • 24. Motivo 3: Ótimo para Big Data • O protocolo mais utilizado hoje porWeb Services é o JSON • Acaba evitando ORM (Object-Relational Mapping) em diversas situações
  • 25. Motivo 4: Simples porém Robusto • BSON Query relativamente simples • Não há preocupação com relacionamentos • Ideal para iniciantes em NoSQL
  • 27. Instalando o Via linha de comando: (linhas de comando são legais) Usuários de Linux baseados em Debian/Ubuntu: Usuários de Linux baseados em RedHat/Fedora/CentOS: Usuários de MacOSX: Usuários de NPM (todos os Sistemas Operacionais) *Recomendado
  • 28. Instalando o Via linha de comando: (linhas de comando são legais) Para usuários de Windows via Chocolatey: Ou baixando diretamente do site xD https://www.mongodb.org/downloads
  • 30. Inicializandoo Mongo 1º passo: Inicialização do servidor do Mongo 2º passo: * Para os fãs de terminal: * Para os fãs de interface gráfica: Abram o Robomongo
  • 31. APIs para Mongo •PyMongo (Python) •Php_mongo (PHP) •Mongo JDBC Driver (Java) • Mongo Ruby Driver (Ruby) • Mgo (Go) Para outras linguagens consulte: http://api.mongodb.org/
  • 32. Quem sabe faz ao vivo!
  • 33.
  • 34. Agora é a hora....