O documento discute o surgimento e vantagens dos bancos de dados NoSQL como uma alternativa aos bancos de dados relacionais tradicionais. Apresenta os principais tipos de bancos de dados NoSQL (key-value stores, bancos orientados a colunas e bancos baseados em documentos), além de discutir um caso de uso da AOL que demonstra como os bancos NoSQL podem lidar melhor com grandes volumes de dados não estruturados.
1. Bancos de Dados NoSQL – Uma nova
abordagem para a utilização de algoritmos
de Mineração de Dados
J. Gabriel Lima
jgabriel.ufpa@gmail.com
LINC - Laboratório de Inteligência Artificial
2. 2
• Introdução
• Grande Vantagem
• Um pouco sobre bancos RELACIONAIS
• Limitações de Bancos de Dados relacionais
• NoSQL: Uma grande mudança de perspectiva
• NoSQL: Prós e Contras
• Caso de Uso o/ o/ o/
• Expectativas e Trabalhos Futuros
Agenda
3. 3
• Introdução
• Grande Vantagem
• Um pouco sobre bancos RELACIONAIS
• Limitações de Bancos de Dados relacionais
• NoSQL: Uma grande mudança de perspectiva
• NoSQL: Prós e Contras
• Caso de Uso o/ o/ o/
• Expectativas e Trabalhos Futuros
Agenda
4. 4
Introdução
• Organizações que coletam grandes quantidades de dados não
estruturados estão usando cada vez mais bases de dados não
relacionais, agora frequentemente chamados bancos de
dados NoSQL (NOT ONLY SQL).
• Existem várias abordagens conceituais para bases de dados
NoSQL, mas oque todos tem em comum é que são bases Não
Relacionais
5. 5
• Ao contrário de bancos de dados relacionais, eles lidam
com dados não estruturados, tais como arquivos de texto,
e-mail, multimídia e mídias sociais de forma eficiente.
Grande Vantagem
6. 6
• Segundo Neal Leavitt, presidente da Leavitt Communications:
“Bases de dados NoSQL permitem uma melhor performance, o que é
particularmente importante para aplicações com grandes quantidades de
dados”
7. 7
• Edgar Codd, um ex-IBM, foi o responsável pela criação do modelo
de banco de dados relacional em 1970.
• Um banco de dados relacional é um conjunto de tabelas contendo os
dados em “categorias” pré-definidas.
• Cada tabela contém uma ou mais categorias de dados organizadas em
colunas. Cada linha contém uma instância única de dados para as categorias
definidas pelas colunas.
• Bancos de dados relacionais funcionam melhor com dados estruturados,
tais como um conjunto de números de vendas, que prontamente se
encaixa em tabelas organizadas.
• E se eu precisar trabalhar com textos e imagens?!
Um pouco sobre bancos RELACIONAIS
8. 8
• Uma grande característica dos bancos de dados relacionais é a
garantia de integridade dos dados.
Vantagens de utilizar bancos de dados relacionais
9. 9
• A estrutura de dados relacional em um banco de dados é pré-
definido pelo “layout” das tabelas e os nomes fixos e tipos das
colunas.
• Escalabilidade.
• Complexidade
• SQL
LIMITAÇÕES DE BANCOS DE DADOS
REL ACIONAIS
10. 10
• Surgimento oficial do conceito NoSQL que foi definida em 1998
e reintroduzido em 2007
• Em resposta à crescente consciência das limitações de bancos de
dados relacionais, empresas estão são cada vez mais utilizando a
proposta NoSQL.
NoSQL : Uma grande mudança de perspectiva
11. 11
• Um dos momentos-chave desta mudança ocorreu em 2007, quando
a Amazon publicou um artigo que introduziu o seu sistema
distribuído NoSQL chamado de Dynamo, para uso interno.
• A Amazon foi uma das primeiras grandes empresas para armazenar
seus dados corporativos em um banco de dados não-relacional.
NoSQL : Uma grande mudança de perspectiva
12. 12
• Existem 3 tipos mais populares de banco de dados NoSQL:
• Key-Value Store:
• Como está explícito no próprio nome, consiste em um sistema de
armazenamento <chave,valor> em que as chaves são indexadas para
futura recuperação.
• Ex. SimpleDB da Amazon é um WebService que fornece uma base de dados
central com funções de indexação de informação e consulta em nuvem.
• Column-oriented databases:
• Bancos de dados orientados à colunas contêm colunas de dados
extensíveis ao contrário dos bancos relacionais
• Ex. O Facebook criou o Cassandra, banco de dados de alto desempenho
para atender a demanda dos usuários d sua rede social.
13. 13
• Document-based stores:
• Estes bancos de dados armazenam e organizam dados como coleções
de documentos ao invés de tabelas estruturadas.
• Com estas bases de dados, os usuários podem adicionar qualquer
número de campos de qualquer comprimento em um documento.
• A 10Gen suporta comercialmente e patrocina o desenvolvimento
do MongoDB, um banco de dados baseado em documento construído
para escalabilidade e facilidade de uso.
• Ex. Migração dos dados da base de segurança pública do
Estado do Pará foi feita em 63 segundos...
14. 14
NoSQL baseado em Grafos
• A vantagem de utilização do modelo baseado em grafos
fica bastante clara quando consultas complexas são
exigidas pelo usuário.
• Comparado ao modelo relacional, que para estas
situações pode ser muito custoso, o modelo orientado
a grafos tem um ganho de performance, permitindo
um melhor desempenho das aplicações.
16. 16
• Bancos de dados NoSQL processam dados mais rápido do
que bancos relacionais.
• Não seguem o ACID (atomicidade, consistência, isolamento,
durabilidade).
• Os desenvolvedores geralmente não têm ACID em Bancos de
dados NoSQL, o que aumenta consideravelmente o
desempenho das aplicações, mas isso pode causar problemas
quando usado para aplicações que requerem grande precisão.
• Bancos de dados NoSQL também são muitas vezes mais rápido
porque os seus modelos de dados são mais simples
Vantagens...
17. 17
• Caso o desenvolvedor precise realizar transações eu exijam ACID,
ele pode implementar essas rotinas em NoSQL.
• Existem projetos (Google... ‘sempre é né?!’) que garantem
características ACID para alguns sistemas NoSQL.
Vantagens...
18. 18
• Vai depender muito de quem está desenvolvendo....
Desvantagens....
20. 20
AOL (America Online)
• A empresa usa utiliza os bancos de dados: Hadoop e CouchDB, para
executar suas operações de segmentação de anúncios.
• Os anúncios são escolhidos baseados nas informações que a AOL tem
sobre o usuário, juntamente com palpites sobre que anúncios seriam mais
interessantes para o usuário.
O processo deve ser executado dentro de cerca de 40 milissegundos.
Caso de Uso...
21. 21
AOL (America Online)
• A base de dados é volumosa
• Os logs são mantidos em todas as ações dos usuários em cada servidor
• Eles devem ser analisados e reagrupados para construir um perfil de cada
usuário.
• Os corretores de anúncios também definem um conjunto complexo de regras
de quanto eles vão pagar por uma impressão de anúncio, ou quais os anúncios
devem ser mostrados para cada usuários.
Caso de Uso...
22. 22
AOL (America Online)
• Esta atividade gera de 4 a 5 terabytes de dados por dia, gerando
600 petabytes de dados operacionais por mês.
• O sistema mantém mais de 650 bilhões de chaves, incluindo um para
cada usuário, bem como chaves para lidar com outros aspectos de
dados também.
• O sistema deve reagir a 600.000 eventos por segundo.
• Os logos do servidor e as fontes externas alimentam a base de dados
Petabyte (PB) 1 024 TB / 1 048 576 GB / 1 073 741 824 MB / 1 099 511 627 776 kB / 1 125 899 906 842
624 (250) Bytes
Caso de Uso...
24. 24
• Integrante do portfólio de produtos Big Data (bancos de dados
com um tamanho excepcional) da Oracle.
• Gerenciar com facilidade imensos volumes de dados com
esquemas dinâmicos, como dados de logs da web, de sensores e
medidores inteligentes, coletados para personalização e mantidos
pelas redes sociais.
• Altamente disponível e escalável, além de facilitar o
armazenamento eficiente de dados em um formato simples e
flexível
25. 25
• Com a expertise da Oracle na gestão de dados empresariais e o
apoio de suporte líder do setor, o Oracle NoSQL Database é
também mais fácil de instalar, configurar e gerenciar do que
várias soluções da concorrência.
• Oracle Big Data Appliance, uma plataforma otimizada para
executar o Oracle NoSQL Database e outros produtos de Big Data
da Oracle
O Oracle Big Data Appliance será lançado no
primeiro trimestre de
2012
28. 28
• Técnicas de DataMining são “essencialmente”
‘VELHAS’...
• PENSAM DE FORMA ESTRUTURADA...
• Ex...
29. 29
Considerações finais e Trabalhos
Futuros...
30. Bancos de Dados NoSQL – Uma nova
abordagem para a utilização de algoritmos
de Mineração de Dados
J. Gabriel Lima
jgabriel.ufpa@gmail.com
LINC - Laboratório de Inteligência Artificial