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.

Apresentação

  • 1.
    Banco de Dados NoSQL UMAALTERNATIVA AO TRADICIONAL MODELO RELACIONAL
  • 2.
    Joel Jr. Twitter: @jhowvasconcelos Blog:joevjunior.wordpress.com E-mail: jr.joelvasconcelos@gmail.com
  • 3.
    “Every 2 dayswe 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 Bancode 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    Investimentoem 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 FCodd 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  EmTI 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  Otermo   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çana forma de pensar no desenvolvimento de software
  • 12.
    Grande Volume deDados  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
  • 13.
  • 14.
    Grande volume dedados  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 dedados  Escalabilidade  Definição  Vertical  Bom para o modelo relacional  Alto custo  Limitação
  • 16.
    Grande voluma dedados  Horizontal  Problemas com o modelo relacional  Ilimitado  Custo baixo
  • 17.
    Bancos de DadosNoSQL  Surgimento  Modelo de Dados Agregados  Schemaless  Map Reduce  Propriedade ACID
  • 18.
    Banco de DadosNoSQL 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 DadosNoSQL  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 DadosNoSQL 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 DadosNoSQL Modelo de Dados Agregados – Exemplo Modelo Relacional
  • 22.
    Banco de DadosNoSQL Modelo de Dados Agregados – Exemplo Modelo Agregado
  • 23.
    Banco de DadosNoSQL Modelo de Dados Agregados – Exemplo Modelo Agregado
  • 24.
    Banco de DadosNoSQL 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 DadosNoSQL 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 DadosNoSQL Map Reduce Map
  • 27.
    Banco de DadosNoSQL Map Reduce Reduce
  • 28.
    Banco de DadosNoSQL 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
  • 29.
  • 30.
    Conclusão  Resolução de umproblema  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 debancos NoSQL  Redis  MongoDB  Neo4j  Referências Bibliográficas
  • 32.
    Atuais Categorias deBancos NoSQL  Armazenamento orientado a colunas  Armazenamento em chave / valor  Banco de Dados orientado a documentos  Banco de Dados orientado a grafos
  • 33.
    Atuais Categorias deBancos 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 deBancos 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 deBancos 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 deBancos 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  Muitorápido  Ótimo para replicação  Leve e pequeno  Transações  Open Source (BSD License).
  • 38.
    Redis  O que possoarmazenar 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
  • 39.
  • 40.
    MongoDB  Breve Introdução   Poderoso  Flexível  Escalável   Mantido pela10gen 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 possoarmazenar 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
  • 42.
  • 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
  • 45.
  • 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.