SlideShare uma empresa Scribd logo
1 de 46
Banco de Dados
NoSQL
UMA ALTERNATIVA AO TRADICIONAL MODELO RELACIONAL
Joel Jr.
Twitter: @jhowvasconcelos
Blog: joevjunior.wordpress.com
E-mail: jr.joelvasconcelos@gmail.com
“Every 2 days we create
as much information as
we did up 2003”
ERIC SCHMIDT, GOOGLE
Por que NoSQL ?


Como o Google, Facebook e Twitter processam aquela imensidão
de dados ?



Como desenvolver algo tão rápido e otimizado utilizando modelo
relacional ?



O preço deve ser muito alto.
Conteúdo
1º Dia
Introdução
Contextualização Banco de Dados
Grande volume de Dados (Big Data)
Bancos de Dados NoSQL
2º Dia
Atuais Categorias de bancos NoSQL
Redis
MongoDB
Neo4j
Referências Bibliográficas
Introdução



Evolução dos Computadores





Investimento em pesquisa
Aumento do poder de processamento

Surgimento de tecnologias para armazenamento de dados


Conceituar, estruturar e manipular a informação independente da
máquina
Introdução


Modelo relacional




Edgar F Codd

Década de 70 surgem os primeiros bancos de
dados relacionais





System R
Ingres

Crescimento da internet


Cada vez mais pessoas acessando a internet



Cada vez mais dispositivos conectados à internet

Edgar F. Codd, criador do artigo Um Modelo
Relacional para Grandes Bancos de Dados
Compartilhados.
Bala de prata


Em TI a única bala de prata, ainda, é o banco de dados relacional.
Banco de Dados


Dado, Informação e Conhecimento


Dado





Sintático
Entidade matemática

Informação





Semântica
Abstração informal

Conhecimento


Contexto subjetivo



Abstração pessoal
Banco de Dados


O termo



Coleção logicamente coerente





Possui um aspecto do mundo real
Construído para uma finalidade específica

Evolução do conceito de arquivo





Redundância
Inconsistência

Vantagens


Integração



Controle de concorrência



Modelo Padronizado


SQL (Structured Query Language)
Banco de Dados


Mudança na forma de pensar no desenvolvimento de software
Grande Volume de Dados



Internet


Surgimento


Guerra Fria



J. C. R. Licklider (1962)



ARPANET (1972)




Trocar informações de maneira segura e ininterrupta

World Wide Web (Tim Bernes-Lee)


Até então a internet era muito chata



CERN libera a tecnologia (WWW) para qualquer usar sem necessidade de
pagamento de taxa
Grande Volume de Dados
Grande volume de dados


Big Data


Quão grande um conjunto de dados precisa ser para ser classificado como
Big Data ?


Acima dos terabytes (10^12)


Momento em que o modelo relacional começa apresentar problemas



O tráfego de dados irá quadruplicar de 2011 a 2016. Com uma taxa de 31%
ao ano.



Em nível global, o trafego de dados irá alcançar os 91,6 exabytes por mês,
ultrapassando os 23,9 exabytes por mês de 2011.



O tráfego da internet mundial 2016 será equivalente a 54 vezes o volume
da internet global de 2005



O google hoje está preparado para processar 20 petabytes (10^15) POR
DIA



O número de usuários acessando a internet no Brasil foi de 55 milhões para
83,4 milhões de 2008 a 2012
Grande volume de dados


Escalabilidade


Definição



Vertical


Bom para o modelo relacional



Alto custo



Limitação
Grande voluma de dados


Horizontal


Problemas com o modelo relacional



Ilimitado



Custo baixo
Bancos de Dados NoSQL


Surgimento



Modelo de Dados Agregados



Schemaless



Map Reduce



Propriedade ACID
Banco de Dados NoSQL
Surgimento
Banco

de dados relacional que não usava
SQL como linguagem de manipulação de
dados, criado por Carlo Strozzi.
2009

por Johan Oskarsson, desenvolvedor de
software londrino.
Falta

de um banco de dados que
funcionasse naturalmente em uma
arquitetura distribuída horizontalmente.
Resolver


a diferença de impedância.

Produtividade no desenvolvimento de
software.
Banco de Dados NoSQL



Diferença de Impedância.



Bancos orientados a objetos



Necessidade de “espremer” os dados
no esquema proposto.



Soluções caras no mundo relacional
Banco de Dados NoSQL
Modelo de Dados Agregados
Modelo


Tabelas, linhas e colunas

Modelo


Relacional
agregado

Unidades

Efeitos

do uso do modelo agregado



Abrir mão de resoluções propostas pelo modelo relacional



Consulta demorada para certos casos
Banco de Dados NoSQL
Modelo de Dados Agregados – Exemplo
Modelo

Relacional
Banco de Dados NoSQL
Modelo de Dados Agregados – Exemplo
Modelo

Agregado
Banco de Dados NoSQL
Modelo de Dados Agregados – Exemplo
Modelo

Agregado
Banco de Dados NoSQL
Schemaless
Como

é no modelo relacional

Flexibilidade
Facilidade
Efeitos

de lidar com dados não uniformes

no uso de banco de dados schmaless



Quando o programa exigir conhecimento dos nomes dos campos



Necessidade de analisar o código da aplicação



Banco de dados ignorante, no que diz respeito aos dados que estão sendo
armazenados.
Banco de Dados NoSQL
Map Reduce
Arquitetura


Cliente / Servidor

Preocupação com a quantidade de dados trafegados na rede

Cluster

de computadores



Divisão do processamento



Preocupação com a quantidade de dados trafegados na rede

Conceito
Map


Age em cada elemento de uma determinada lista

Reduce


(accumulate, compress e inject function)

Opera nas várias saídas produzidas pela função map.
Banco de Dados NoSQL
Map Reduce
Map
Banco de Dados NoSQL
Map Reduce
Reduce
Banco de Dados NoSQL
Propriedades ACID
Atomicidade


Transações envolvendo mais
de uma estrutura de dados agregados

Consistência


Escrita



Leitura



Consistência eventual

Teorema

CAP



Consistency



Availability



Partition tolerance
Observações


Quando usar NoSQL
Conclusão


Resolução de um problema


Crescimento da quantidade de dados (BigData)



Incertezas



Pequenas empresas devem tomar cuidado




Teorema CAP

Realizar uma boa análise para identificar qual das categorias
existentes de bancos NoSQL melhor se encaixa no modelo de
negócio
 Atuais

Categorias de bancos NoSQL

 Redis
 MongoDB
 Neo4j
 Referências

Bibliográficas
Atuais Categorias de Bancos NoSQL


Armazenamento orientado a colunas



Armazenamento em chave / valor



Banco de Dados orientado a documentos



Banco de Dados orientado a grafos
Atuais Categorias de Bancos NoSQL
Armazenamento orientado a colunas


Conceito



Evita desperdício de disco



Leitura muito rápida





Schmaless

Escrita um pouco mais lenta

Produtos


HBase



Hypertable



Amazon DynamoDB



Cloudata
Atuais Categorias de Bancos NoSQL
Armazenamento em chave / valor


Conceito


Categoria mais simples de NoSQL



Hash table




Acesso muito rápido aos dados

Produtos


Riak



Redis



Memcached DB



Membase



Kyoto Cabinet
Atuais Categorias de Bancos NoSQL
Banco de Dados orientado a documentos


Conceito


Documento


XML, JSON, BSON etc



Árvores hierárquicas auto descritíveis,
que consistem de mapas, coleções
e valores escalares



Collection





Conjunto de documentos similares
Pode ser comparada a uma tabela
do modelo relacional

Produtos


MongoDB



CouchDB
Atuais Categorias de Bancos NoSQL
Banco de Dados orientado a grafos


Conceito


Permite armazenar os
relacionamentos




Entidades




Podem possuir propriedades
Nós (vértices)

Relacionamentos


Arestas







Pode-se representar os
relacionamentos entre entidades
na maneira como eles ocorrem no
mundo real
Consulta muito rápida

Produtos


Neo4j



FlockDB
Redis


Breve introdução





Key-value store
In-memory

Características


Muito rápido



Ótimo para replicação



Leve e pequeno



Transações



Open Source (BSD License).
Redis


O que posso armazenar com Redis ?



Intengers



Hash



Lists



Sets





Strings

Sorted Sets

Clientes para Redis


C, C#, C++, Clojure, Common Lisp, Erlang, Go, Haskell



haXe, Java, Lua, Node.JS, Objetive C, Perl, PHP, Python



Ruby, Scala, SmallTalk, Tcl
Redis


Quem utiliza Redis ?
MongoDB


Breve Introdução



Poderoso



Flexível



Escalável





Mantido pela 10gen

Fácil de se trabalhar (amigável)

Características


Utiliza JSON



Schema flexível



Atualizações atômicas



Performance



Replicação



Auto-sharding
MongoDB


O que posso armazenar com o MongoDB





Boolean, Integer, String, Date, Regular Expression
Code, Array, Embedded document

Clientes para MongoDB


C, C++, C#, Erlang, Java



Perl, PHP, Python, Ruby, Scala
MongoDB


Quem usa MongoDB ?
Neo4j


Breve Introdução



Embeddable / Server



ACID (Atomicidade, consistência, isolamento e durabilidade)



Alta disponibilidade (Versão Enterprise)





Tudo pode ser modelado com grafos

Schemaless

Casos onde usar grafos


Sistemas de recomendação, Business Inteligence



Social Computing, Sistemas de gerenciamento



Web of things, Catálogo de Produtos, Web analytics
Neo4j


Clientes para Neo4j


Java, Ruby, PHP, .net, py2neo, node.js



Scala, Borneo, Python, django
Neo4j


Quem usa Neo4j ?
Referências


ABITEBOUL, Serge; BUNEMAN, Peter; SUCIU, Dan. Data on the Web: from relations to semistructured data and XML. San Francisco: Morgan Kaufmann Publishers, 2000.



CHODOROW, Kristina; DIROLF, Michael. MongoDB: the definitive guide. Sebastopol: O’Reilly Media Inc., 2010.



CISCO. VNI forecast highlights. Disponível em: < http://www.cisco.com/ web/solutions/sp/vni/vni_forecast_highlights/index.html#~Region>. Acesso em: 26 jan. 2013.



COMMITTEE ON INNOVATIONS IN COMPUTING AND COMMUNICATIONS. Funding a Revolution. Washington: National Academies Press, 1999.



ELMASRI; NAVATHE. Sistemas de banco de dados. 3. ed. São Paulo: Pearson, 2010.



ELON UNIVERSITY SCHOOL OF COMMUNICATIONS. Imagining the Internet: a history and forecast. Disponível em: < http://www.elon.edu/eweb/predictions/early90s/internethistory.xhtml>. Acesso em: 26 jan. 2013.



FERREIRA, Edmar. Escolhendo entre escalabilidade horizontal e escalabilidade vertical. Disponível em: <http://escalabilidade.com/2010/09/21/escolhendo-entre-escalabilidadehorizontal- e-escalabilidade-vertical/>. Acesso em: 26 jan. de 2013.



GREGOL, R. E. Weizenmann. Recursos de escalabilidade e alta disponibilidade para aplicações web. 2011. Monografia (Conclusão de Curso em Análise e Desenvolvimento de
Sistemas). UTFPR. 2011.



INTERNET SOCIETY. Brief history of the Internet. Disponível em: < http://www.internetsociety.org/internet/what-internet/history-internet/brief-history- internet#Origins>. Acesso em 26 jan
2013.



MANDEL, Arnaldo; IMRE, Simon; DELYRA, Jorge L. Informação: computação e comunicação. São Paulo: USP, 1997.



PETER, Ian. History of the World Wide Web. Disponível em: < http://www.nethistory.info/History%20of%20the%20Internet/web.html>. Acesso em: 26 jan. 2013.



RODRIGUES FILHO, José. A. F. Data Mining: conceitos, técnicos e aplicação, 2001. Dissertação (Mestrado em Engenharia) – Escola Politécnica, Universidade de São Paulo, 2001.



59



SADALAGE, Pramodkumar J.; FOWLER, Martin. NoSQL Distilled: A brief guide to the emerging world of polyglot persistence. Nova Jersey: Pearson Education Inc., 2012.



SETZER, Valdemar W. Dado, informação, conhecimento e competência. Disponível em: <http://www.dgz.org.br/dez99/Art_01.htm>. Acesso em: 21 out. 2012.



STRAUCH, Christof. NoSQL Databases. Stuttgart, 2011. Disponível em: <http://www.christof-strauch.de/nosqldbs.pdf>. Acesso em: 23 mai. 2013.



TIWARI, Shashank. Professional NoSQL. Indianápolis: Jhon Wiley & Sons, 2011.



YONG, Shao Chu. Banco de dados: organização, sistemas, administração. São Paulo: Atlas, 1983.



ZAKON, Robert H. Hobbes’ Internet timeline 10.2. Disponível em: <http://www.zakon.org/robert/internet/timeline/>. Acesso em: 26 jan. 2013.

Mais conteúdo relacionado

Mais procurados

Mais procurados (8)

Banco de dados orientado a objetos
Banco de dados orientado a objetosBanco de dados orientado a objetos
Banco de dados orientado a objetos
 
Banco de dados_orientado_a_objetos
Banco de dados_orientado_a_objetosBanco de dados_orientado_a_objetos
Banco de dados_orientado_a_objetos
 
Banco aula 01
Banco aula 01Banco aula 01
Banco aula 01
 
Aula 2 - Introdução a Banco de Dados
Aula 2 - Introdução a Banco de DadosAula 2 - Introdução a Banco de Dados
Aula 2 - Introdução a Banco de Dados
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Big Data
Big DataBig Data
Big Data
 
O NoSQL e o Relacional: Uma Análise
O NoSQL e o Relacional: Uma AnáliseO NoSQL e o Relacional: Uma Análise
O NoSQL e o Relacional: Uma Análise
 
O NoSQL e o Relacional: Uma Análise
O NoSQL e o Relacional: Uma AnáliseO NoSQL e o Relacional: Uma Análise
O NoSQL e o Relacional: Uma Análise
 

Semelhante a Banco de Dados NoSQL

Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Thiago de Azeredo
 
NoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaNoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaAugusto Giles
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documentoAlex Martins
 
Do mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIsDo mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIsWSO2
 
Análise comparativa entre SGBDs NoSQL no contexto de IoT
Análise comparativa entre SGBDs NoSQL no contexto de IoTAnálise comparativa entre SGBDs NoSQL no contexto de IoT
Análise comparativa entre SGBDs NoSQL no contexto de IoTAllexandre Sampaio
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à práticaMario Guedes
 
Cobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de DadosCobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de Dadoscris.finholdt
 
NoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEANNoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEANOsmar Petry
 
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
 
BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008
BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008
BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008CharlesAlfenasmg
 
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
 
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosApresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosMozart Dornelles Claret
 

Semelhante a Banco de Dados NoSQL (20)

#1 Introdução ao MongoDB
#1   Introdução ao MongoDB#1   Introdução ao MongoDB
#1 Introdução ao MongoDB
 
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)
 
Pesquisa sobre no sql
Pesquisa sobre no sqlPesquisa sobre no sql
Pesquisa sobre no sql
 
Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)
 
Bigadata casese opotunidades
Bigadata casese opotunidadesBigadata casese opotunidades
Bigadata casese opotunidades
 
NoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaNoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas Monografia
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documento
 
Do mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIsDo mapa mental para Serviços de Dados até APIs
Do mapa mental para Serviços de Dados até APIs
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
Análise comparativa entre SGBDs NoSQL no contexto de IoT
Análise comparativa entre SGBDs NoSQL no contexto de IoTAnálise comparativa entre SGBDs NoSQL no contexto de IoT
Análise comparativa entre SGBDs NoSQL no contexto de IoT
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à prática
 
Cobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de DadosCobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de Dados
 
NoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEANNoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEAN
 
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
 
BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008
BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008
BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008
 
Big Data na Nuvem
Big Data na NuvemBig Data na Nuvem
Big Data na Nuvem
 
Bancos de dados NoSQL
Bancos de dados NoSQLBancos de dados NoSQL
Bancos de dados NoSQL
 
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)
 
Material Seminário NoSQL
Material Seminário NoSQLMaterial Seminário NoSQL
Material Seminário NoSQL
 
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosApresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
 

Banco de Dados NoSQL

  • 1. Banco de Dados NoSQL UMA ALTERNATIVA AO TRADICIONAL MODELO RELACIONAL
  • 2. Joel Jr. Twitter: @jhowvasconcelos Blog: joevjunior.wordpress.com E-mail: jr.joelvasconcelos@gmail.com
  • 3. “Every 2 days we create as much information as we did up 2003” ERIC SCHMIDT, GOOGLE
  • 4. Por que NoSQL ?  Como o Google, Facebook e Twitter processam aquela imensidão de dados ?  Como desenvolver algo tão rápido e otimizado utilizando modelo relacional ?  O preço deve ser muito alto.
  • 5. Conteúdo 1º Dia Introdução Contextualização Banco de Dados Grande volume de Dados (Big Data) Bancos de Dados NoSQL 2º Dia Atuais Categorias de bancos NoSQL Redis MongoDB Neo4j Referências Bibliográficas
  • 6. Introdução  Evolução dos Computadores    Investimento em pesquisa Aumento do poder de processamento Surgimento de tecnologias para armazenamento de dados  Conceituar, estruturar e manipular a informação independente da máquina
  • 7. Introdução  Modelo relacional   Edgar F Codd Década de 70 surgem os primeiros bancos de dados relacionais    System R Ingres Crescimento da internet  Cada vez mais pessoas acessando a internet  Cada vez mais dispositivos conectados à internet Edgar F. Codd, criador do artigo Um Modelo Relacional para Grandes Bancos de Dados Compartilhados.
  • 8. Bala de prata  Em TI a única bala de prata, ainda, é o banco de dados relacional.
  • 9. Banco de Dados  Dado, Informação e Conhecimento  Dado    Sintático Entidade matemática Informação    Semântica Abstração informal Conhecimento  Contexto subjetivo  Abstração pessoal
  • 10. Banco de Dados  O termo   Coleção logicamente coerente   Possui um aspecto do mundo real Construído para uma finalidade específica Evolução do conceito de arquivo    Redundância Inconsistência Vantagens  Integração  Controle de concorrência  Modelo Padronizado  SQL (Structured Query Language)
  • 11. Banco de Dados  Mudança na forma de pensar no desenvolvimento de software
  • 12. Grande Volume de Dados  Internet  Surgimento  Guerra Fria  J. C. R. Licklider (1962)  ARPANET (1972)   Trocar informações de maneira segura e ininterrupta World Wide Web (Tim Bernes-Lee)  Até então a internet era muito chata  CERN libera a tecnologia (WWW) para qualquer usar sem necessidade de pagamento de taxa
  • 14. Grande volume de dados  Big Data  Quão grande um conjunto de dados precisa ser para ser classificado como Big Data ?  Acima dos terabytes (10^12)  Momento em que o modelo relacional começa apresentar problemas  O tráfego de dados irá quadruplicar de 2011 a 2016. Com uma taxa de 31% ao ano.  Em nível global, o trafego de dados irá alcançar os 91,6 exabytes por mês, ultrapassando os 23,9 exabytes por mês de 2011.  O tráfego da internet mundial 2016 será equivalente a 54 vezes o volume da internet global de 2005  O google hoje está preparado para processar 20 petabytes (10^15) POR DIA  O número de usuários acessando a internet no Brasil foi de 55 milhões para 83,4 milhões de 2008 a 2012
  • 15. Grande volume de dados  Escalabilidade  Definição  Vertical  Bom para o modelo relacional  Alto custo  Limitação
  • 16. Grande voluma de dados  Horizontal  Problemas com o modelo relacional  Ilimitado  Custo baixo
  • 17. Bancos de Dados NoSQL  Surgimento  Modelo de Dados Agregados  Schemaless  Map Reduce  Propriedade ACID
  • 18. Banco de Dados NoSQL Surgimento Banco de dados relacional que não usava SQL como linguagem de manipulação de dados, criado por Carlo Strozzi. 2009 por Johan Oskarsson, desenvolvedor de software londrino. Falta de um banco de dados que funcionasse naturalmente em uma arquitetura distribuída horizontalmente. Resolver  a diferença de impedância. Produtividade no desenvolvimento de software.
  • 19. Banco de Dados NoSQL  Diferença de Impedância.  Bancos orientados a objetos  Necessidade de “espremer” os dados no esquema proposto.  Soluções caras no mundo relacional
  • 20. Banco de Dados NoSQL Modelo de Dados Agregados Modelo  Tabelas, linhas e colunas Modelo  Relacional agregado Unidades Efeitos do uso do modelo agregado  Abrir mão de resoluções propostas pelo modelo relacional  Consulta demorada para certos casos
  • 21. Banco de Dados NoSQL Modelo de Dados Agregados – Exemplo Modelo Relacional
  • 22. Banco de Dados NoSQL Modelo de Dados Agregados – Exemplo Modelo Agregado
  • 23. Banco de Dados NoSQL Modelo de Dados Agregados – Exemplo Modelo Agregado
  • 24. Banco de Dados NoSQL Schemaless Como é no modelo relacional Flexibilidade Facilidade Efeitos de lidar com dados não uniformes no uso de banco de dados schmaless  Quando o programa exigir conhecimento dos nomes dos campos  Necessidade de analisar o código da aplicação  Banco de dados ignorante, no que diz respeito aos dados que estão sendo armazenados.
  • 25. Banco de Dados NoSQL Map Reduce Arquitetura  Cliente / Servidor Preocupação com a quantidade de dados trafegados na rede Cluster de computadores  Divisão do processamento  Preocupação com a quantidade de dados trafegados na rede Conceito Map  Age em cada elemento de uma determinada lista Reduce  (accumulate, compress e inject function) Opera nas várias saídas produzidas pela função map.
  • 26. Banco de Dados NoSQL Map Reduce Map
  • 27. Banco de Dados NoSQL Map Reduce Reduce
  • 28. Banco de Dados NoSQL Propriedades ACID Atomicidade  Transações envolvendo mais de uma estrutura de dados agregados Consistência  Escrita  Leitura  Consistência eventual Teorema CAP  Consistency  Availability  Partition tolerance
  • 30. Conclusão  Resolução de um problema  Crescimento da quantidade de dados (BigData)  Incertezas  Pequenas empresas devem tomar cuidado   Teorema CAP Realizar uma boa análise para identificar qual das categorias existentes de bancos NoSQL melhor se encaixa no modelo de negócio
  • 31.  Atuais Categorias de bancos NoSQL  Redis  MongoDB  Neo4j  Referências Bibliográficas
  • 32. Atuais Categorias de Bancos NoSQL  Armazenamento orientado a colunas  Armazenamento em chave / valor  Banco de Dados orientado a documentos  Banco de Dados orientado a grafos
  • 33. Atuais Categorias de Bancos NoSQL Armazenamento orientado a colunas  Conceito   Evita desperdício de disco  Leitura muito rápida   Schmaless Escrita um pouco mais lenta Produtos  HBase  Hypertable  Amazon DynamoDB  Cloudata
  • 34. Atuais Categorias de Bancos NoSQL Armazenamento em chave / valor  Conceito  Categoria mais simples de NoSQL  Hash table   Acesso muito rápido aos dados Produtos  Riak  Redis  Memcached DB  Membase  Kyoto Cabinet
  • 35. Atuais Categorias de Bancos NoSQL Banco de Dados orientado a documentos  Conceito  Documento  XML, JSON, BSON etc  Árvores hierárquicas auto descritíveis, que consistem de mapas, coleções e valores escalares  Collection    Conjunto de documentos similares Pode ser comparada a uma tabela do modelo relacional Produtos  MongoDB  CouchDB
  • 36. Atuais Categorias de Bancos NoSQL Banco de Dados orientado a grafos  Conceito  Permite armazenar os relacionamentos   Entidades   Podem possuir propriedades Nós (vértices) Relacionamentos  Arestas    Pode-se representar os relacionamentos entre entidades na maneira como eles ocorrem no mundo real Consulta muito rápida Produtos  Neo4j  FlockDB
  • 37. Redis  Breve introdução    Key-value store In-memory Características  Muito rápido  Ótimo para replicação  Leve e pequeno  Transações  Open Source (BSD License).
  • 38. Redis  O que posso armazenar com Redis ?   Intengers  Hash  Lists  Sets   Strings Sorted Sets Clientes para Redis  C, C#, C++, Clojure, Common Lisp, Erlang, Go, Haskell  haXe, Java, Lua, Node.JS, Objetive C, Perl, PHP, Python  Ruby, Scala, SmallTalk, Tcl
  • 40. MongoDB  Breve Introdução   Poderoso  Flexível  Escalável   Mantido pela 10gen Fácil de se trabalhar (amigável) Características  Utiliza JSON  Schema flexível  Atualizações atômicas  Performance  Replicação  Auto-sharding
  • 41. MongoDB  O que posso armazenar com o MongoDB    Boolean, Integer, String, Date, Regular Expression Code, Array, Embedded document Clientes para MongoDB  C, C++, C#, Erlang, Java  Perl, PHP, Python, Ruby, Scala
  • 43. Neo4j  Breve Introdução   Embeddable / Server  ACID (Atomicidade, consistência, isolamento e durabilidade)  Alta disponibilidade (Versão Enterprise)   Tudo pode ser modelado com grafos Schemaless Casos onde usar grafos  Sistemas de recomendação, Business Inteligence  Social Computing, Sistemas de gerenciamento  Web of things, Catálogo de Produtos, Web analytics
  • 44. Neo4j  Clientes para Neo4j  Java, Ruby, PHP, .net, py2neo, node.js  Scala, Borneo, Python, django
  • 46. Referências  ABITEBOUL, Serge; BUNEMAN, Peter; SUCIU, Dan. Data on the Web: from relations to semistructured data and XML. San Francisco: Morgan Kaufmann Publishers, 2000.  CHODOROW, Kristina; DIROLF, Michael. MongoDB: the definitive guide. Sebastopol: O’Reilly Media Inc., 2010.  CISCO. VNI forecast highlights. Disponível em: < http://www.cisco.com/ web/solutions/sp/vni/vni_forecast_highlights/index.html#~Region>. Acesso em: 26 jan. 2013.  COMMITTEE ON INNOVATIONS IN COMPUTING AND COMMUNICATIONS. Funding a Revolution. Washington: National Academies Press, 1999.  ELMASRI; NAVATHE. Sistemas de banco de dados. 3. ed. São Paulo: Pearson, 2010.  ELON UNIVERSITY SCHOOL OF COMMUNICATIONS. Imagining the Internet: a history and forecast. Disponível em: < http://www.elon.edu/eweb/predictions/early90s/internethistory.xhtml>. Acesso em: 26 jan. 2013.  FERREIRA, Edmar. Escolhendo entre escalabilidade horizontal e escalabilidade vertical. Disponível em: <http://escalabilidade.com/2010/09/21/escolhendo-entre-escalabilidadehorizontal- e-escalabilidade-vertical/>. Acesso em: 26 jan. de 2013.  GREGOL, R. E. Weizenmann. Recursos de escalabilidade e alta disponibilidade para aplicações web. 2011. Monografia (Conclusão de Curso em Análise e Desenvolvimento de Sistemas). UTFPR. 2011.  INTERNET SOCIETY. Brief history of the Internet. Disponível em: < http://www.internetsociety.org/internet/what-internet/history-internet/brief-history- internet#Origins>. Acesso em 26 jan 2013.  MANDEL, Arnaldo; IMRE, Simon; DELYRA, Jorge L. Informação: computação e comunicação. São Paulo: USP, 1997.  PETER, Ian. History of the World Wide Web. Disponível em: < http://www.nethistory.info/History%20of%20the%20Internet/web.html>. Acesso em: 26 jan. 2013.  RODRIGUES FILHO, José. A. F. Data Mining: conceitos, técnicos e aplicação, 2001. Dissertação (Mestrado em Engenharia) – Escola Politécnica, Universidade de São Paulo, 2001.  59  SADALAGE, Pramodkumar J.; FOWLER, Martin. NoSQL Distilled: A brief guide to the emerging world of polyglot persistence. Nova Jersey: Pearson Education Inc., 2012.  SETZER, Valdemar W. Dado, informação, conhecimento e competência. Disponível em: <http://www.dgz.org.br/dez99/Art_01.htm>. Acesso em: 21 out. 2012.  STRAUCH, Christof. NoSQL Databases. Stuttgart, 2011. Disponível em: <http://www.christof-strauch.de/nosqldbs.pdf>. Acesso em: 23 mai. 2013.  TIWARI, Shashank. Professional NoSQL. Indianápolis: Jhon Wiley & Sons, 2011.  YONG, Shao Chu. Banco de dados: organização, sistemas, administração. São Paulo: Atlas, 1983.  ZAKON, Robert H. Hobbes’ Internet timeline 10.2. Disponível em: <http://www.zakon.org/robert/internet/timeline/>. Acesso em: 26 jan. 2013.