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

PPTX
Banco de dados Orientado à objetos
PPTX
Banco de dados orientados a objetos
PPT
Banco de Dados Orientado a Objeto
PDF
Apresentação Banco de Dados - Caché
PDF
Trabalho banco de dados orientado a objetos
PPT
Bancos de Dados Orientados a Objeto
PPT
BD Orientado a Objetos Versant
Banco de dados Orientado à objetos
Banco de dados orientados a objetos
Banco de Dados Orientado a Objeto
Apresentação Banco de Dados - Caché
Trabalho banco de dados orientado a objetos
Bancos de Dados Orientados a Objeto
BD Orientado a Objetos Versant

Mais procurados (8)

PPTX
Banco de dados orientado a objetos
PDF
Banco de dados_orientado_a_objetos
PPT
Banco aula 01
PPT
Aula 2 - Introdução a Banco de Dados
PPTX
Banco de dados
PPTX
PDF
O NoSQL e o Relacional: Uma Análise
PDF
O NoSQL e o Relacional: Uma Análise
Banco de dados orientado a objetos
Banco de dados_orientado_a_objetos
Banco aula 01
Aula 2 - Introdução a Banco de Dados
Banco de dados
O NoSQL e o Relacional: Uma Análise
O NoSQL e o Relacional: Uma Análise
Anúncio

Semelhante a Apresentação (20)

PPTX
#1 Introdução ao MongoDB
PPT
Bancos de dados NoSQL (Not only sql)
PDF
Pesquisa sobre no sql
PPTX
Introdução ao MongoDB (NoSQL)
PDF
Bigadata casese opotunidades
PDF
NoSQL Familia de Colunas Monografia
PPTX
No sql Orientado a documento
PPTX
Do mapa mental para Serviços de Dados até APIs
PDF
NoSql e NewSql
PDF
Análise comparativa entre SGBDs NoSQL no contexto de IoT
PPTX
Big data da teoria à prática
PDF
Cobo, Cristiane Brandão. Especialização Banco de Dados
PDF
NoSQL, MongoDB e MEAN
PPTX
Modelos NoSQL e a Persistência Poliglota
PDF
BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008
PDF
Big Data na Nuvem
PDF
Bancos de dados NoSQL
PDF
Bancos de dados nosql (not only sql)
PDF
Material Seminário NoSQL
PDF
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
#1 Introdução ao MongoDB
Bancos de dados NoSQL (Not only sql)
Pesquisa sobre no sql
Introdução ao MongoDB (NoSQL)
Bigadata casese opotunidades
NoSQL Familia de Colunas Monografia
No sql Orientado a documento
Do mapa mental para Serviços de Dados até APIs
NoSql e NewSql
Análise comparativa entre SGBDs NoSQL no contexto de IoT
Big data da teoria à prática
Cobo, Cristiane Brandão. Especialização Banco de Dados
NoSQL, MongoDB e MEAN
Modelos NoSQL e a Persistência Poliglota
BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008
Big Data na Nuvem
Bancos de dados NoSQL
Bancos de dados nosql (not only sql)
Material Seminário NoSQL
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Anúncio

Apresentação

  • 1. Banco de Dados NoSQL UMA ALTERNATIVA AO TRADICIONAL MODELO RELACIONAL
  • 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.