O documento apresenta uma introdução sobre bancos de dados NoSQL como uma alternativa ao modelo relacional tradicional. Aborda os principais motivos para o surgimento dos bancos NoSQL, como o grande volume de dados gerados na internet, e apresenta as principais categorias de bancos NoSQL, incluindo armazenamento em colunas, chave-valor, orientado a documentos e orientado a grafos.
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.
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)
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.
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
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
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
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.