E agora: que tipo de Banco de Dados devo usar?
Fabíola Souza Pereira
FISL 14 – Julho 2013
um pouco sobre mim…
Mas antes…
FISL 14 – Julho 2013
Quem é Fabíola?
FISL 14 – Julho 2013
Quem é Fabíola?
FISL 14 – Julho 2013
Quem é Fabíola?
FISL 14 – Julho 2013
Quem é Fabíola?
FISL 14 – Julho 2013
FISL 14 – Julho 2013
FISL 14 – Julho 2013
Análise de Requisitos
Conceitos
Categorias de BDs & Ferramentas
Metodologia para Arquitetura de Dados
Estudo de Caso
Conclusão
FISL 14 – Julho 2013
Análise de Requisitos=
Fase das Perguntas
FISL 14 – Julho 2013
FISL 14 – Julho 2013
FISL 14 – Julho 2013
FISL 14 – Julho 2013
Análise de Requisitos
Conceitos
Categorias de BDs & Ferramentas
Metodologia para Arquitetura de Dados
Estudo de Caso
Conclusão
FISL 14 – Julho 2013
A C I DAtomicidade Isolamento DurabilidadeConsistência
FISL 14 – Julho 2013
Teorema CAP
FISL 14 – Julho 2013
CONSISTENCY
AVAILABILITY
PARTITIONTOLERANCE
FISL 14 – Julho 2013
CONSISTENCY
AVAILABILITY
PARTITIONTOLERANCE
Todos os clientes têm
sempre a MESMA
VISÃO do sistema
(commits atômicos)
FISL 14 – Julho 2013
CONSISTENCY
AVAILABILITY
PARTITIONTOLERANCE
O cliente pode
SEMPRE ler e
escrever
FISL 14 – Julho 2013
CONSISTENCY
AVAILABILITY
PARTITIONTOLERANCE
O sistema SEMPRE
FUNCIONA mesmo que
haja “partições” –
quebra de comunicação
entre nós
FISL 14 – Julho 2013
CONSISTENCY
AVAILABILITY
PARTITIONTOLERANCE
Escolhaduas!
FISL 14 – Julho 2013
FISL 14 – Julho 2013
B A S EBasically Soft
stateEventuallyconsistent
Available
FISL 14 – Julho 2013
FISL 14 – Julho 2013
FISL 14 – Julho 2013
FISL 14 – Julho 2013
Análise de Requisitos
Conceitos
Categorias de BDs & Ferramentas
Metodologia para Arquitetura de Dados
Estudo de Caso
Conclusão
FISL 14 – Julho 2013
FISL 14 – Julho 2013
FISL 14 – Julho 2013
RelacionalChave-valor
GrafoOrientado a
Coluna/Tabular
Orientado a Documento
FISL 14 – Julho 2013
Relacional
Chave-valor
Grafo
Orientado a Coluna/Tabular Orientado a
Documento
Complexidade dos Dados
Vo
lum
e
FISL 14 – Julho 2013
SGBDRs (MySQL, PostgreSQL)
Cassandra, BigTable,Hbase, Hypertable
Dynamo, MemcacheDB
CouchDB,MongoDB,
Riak
Neo4j
FISL 14 – Julho 2013
CONSISTENCY
AVAILABILITY
PARTITIONTOLERANCE
Escolhaduas!
CASGBDRs
CPBigTable, Hypertable, HBase, MongoDB, MemcacheDB
APCassandra, Riak, Dynam
o
FISL 14 – Julho 2013
NoSQL = Não-relacional? Relacional = SQL?
FISL 14 – Julho 2013
NoSQL e SQL referem-se a linguagens de
consulta
Relacional e Não-relacional referem-
se a modelo de dados
FISL 14 – Julho 2013
Análise de Requisitos
Conceitos
Categorias de BDs & Ferramentas
Metodologia para Arquitetura de Dados
Estudo de Caso
Conclusão
FISL 14 – Julho 2013
Fase das Perguntas
Fase dos Conceitos
Fase das Respostas
FISL 14 – Julho 2013
Requisitos
Conceitos
Escolha de Ferramentas
FISL 14 – Julho 2013
Análise de Requisitos
Conceitos
Categorias de BDs & Ferramentas
Metodologia para Arquitetura de Dados
Estudo de Caso
Conclusão
FISL 14 – Julho 2013
59 anos em operação
Mais de 1900 associados
Mais de 800K clientes
FISL 14 – Julho 2013
Concessão – 87 cidades em 4 estados
Área de autorização – escritórios expandindo em estados importantes
Dados e voz
Serviços de TI
Negócios
Varejo
FISL 14 – Julho 2013
FISL 14 – Julho 2013
Que tal um aplicativo que todos osdias, às 8h da manhã, faz uma ligação
para mim e toca minha músicafavorita?
FISL 14 – Julho 2013
FISL 14 – Julho 2013
Envia MMS
Envia SMS
Tradutor
CapturaConteúdo
Web Service
Envial Email
Ao receberSMS
Ao receberMMS
Math
Faz ligação
Get e PostDTMF
Banco deDados
Concat
Toca áudio
Internet
Utils
Storage
Telecom
FISL 14 – Julho 2013
CapturaConteúdo
Faz Ligação
Toca áudio
FISL 14 – Julho 2013
App Engine
Components
Event Handler
Serv
ice
s
Mo
nit
ori
ng
and
Sta
tist
ics
Logs
an
d S
DR
s
PortalSCE
Web ServicesGadgets
Co
reo
Ide
nti
ty S
erv
er
3rd Party and Web AppsUsers
COREO Platform
File Manager
Scheduler
WS Broker
DB Manager
Telecom PlatformsSDP
FISL 14 – Julho 2013
E agora: que tipo de Banco de Dados devo usar no projeto COREO?
FISL 14 – Julho 2013
1) Teremos dados estruturados?
2) Precisaremos de performance?
3) Teremos grande volume de dados?
4) Precisaremos de um mecanismo de cache de dados da sessão!
5) Precisaremos de um mecanismo de busca performático parainterface web!
FISL 14 – Julho 2013
6) Precisaremos de alta disponibilidade?
7) Precisaremos de partition tolerance?
8) Quais dados precisam de consistência?
9) Quais dados serão utilizados para BI e Analytics?
FISL 14 – Julho 2013
1) Teremos dados estruturados?
Cadastro de feedbacks do usuário
Armazenamento de transações de recargas de créditos
FISL 14 – Julho 2013
2) Precisaremos de performance?
Durante execução de aplicativos via AppEngine
O scheduler deve ser performático, pois espera-se grande volume de agendamentos
FISL 14 – Julho 2013
3) Teremos grande volume de dados?
Plataforma dinâmica e para Web
Armazenamento de logs de execução de aplicativos
FISL 14 – Julho 2013
E assim por diante…
FISL 14 – Julho 2013
Estruturado, relacional, SQL
Backend de Serviços
Performance, volume de dados
AppEngine
Armazenar sessões
Portal
Performance
Listagem de Apps
Volume, nãoestruturado
Logs de Apps
Volume, performance
Scheduler
Base centralizada
Dados de Usuários
FISL 14 – Julho 2013
Estruturado, relacional, SQL
ORACLE
Performance, volume de dados
CASSANDRA
Armazenar sessões
MEMCACHED
Performance
LUCENE/SOLR
Volume, nãoestruturado
HADOOP
Volume, performance
CASSANDRA
Base centralizada
OpenLDAP
FISL 14 – Julho 2013
Armazenamento de Dados no COREO
FISL 14 – Julho 2013
Análise de Requisitos
Conceitos
Categorias de BDs & Ferramentas
Metodologia para Arquitetura de Dados
Estudo de Caso
Conclusão
FISL 14 – Julho 2013
Analise seus requisitos
Entenda cada conceito
Conheça as ferramentas