Você está na página 1de 37

Ps Graduao Anlise e Desenvolvimento de Sistemas

Aplicados Gesto Empresarial


INSTITUTO FEDERAL DE EDUCAO, CINCIA E TECNOLOGIA
TRINGULO MINEIRO Campus Avanado Uberlndia

Disciplina

Gerenciamento de Banco
de Dados

noSql
Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Introduo
NoSql quer dizer No somente Sql, ou
seja, deixar de visualizar o modelo
relacional como bala de prata;
NoSql representa mais um movimento, ou
uma nova escola de pensamento, do que
alguma tecnologia em particular

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Alguns SGBDs modelo


Relacional

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Alguns SGBDs modelo


noSql

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Por que noSql?


Aps enfrentar problemas de
escalabilidade, custo e performance,
muitas empresas comearam a pesquisar e
investir em novos mecanismos de
armazenamento;
Os bancos so considerados noSql, pois
no existe obrigatoriedade quanto ao
modelo de dados, estruturas fixas de
tabelas e schemas. Estas tambm no
suportam joins entre tabelas.
Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Por que noSql?


Com sistemas cada vez mais distribudos,
um grande volume de dados gerado,
transformando-se em um gargalo nos
sistemas atuais;
Solues em noSql costumam buscar
atingir objetivos como baixa latncia, alta
performance e escalabilidade.

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Quem usa noSql?


Cassandra:
BigTable:
Voldemort:

Apache Hadoop:
MongoDB:

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Histrico Armazenamento de
Dados
1965 Arquivos sequenciais .dat;
1968 SGBDs baseados em estruturas
hierrquicas;
1970 SGBDs baseados em grafos;
1980 Popularizao dos SGBDs
relacionais;
2009 Incio do movimento noSql.

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Histrico noSql
O movimento noSql surgiu de um
encontro, que teve por objetivo discutir o
crescente surgimento de solues opensource de armazenamento de dados
distribudos no relacionais;
noSql = nova onda de SGBDs que prope
alternativas ao modelo relacional, em
situaes especficas.
Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Modelo de Dados
Modelos relacionais possuem tabelas,
colunas, linhas e relacionamentos entre
estas, prezando pela integridade dos
dados;
NoSql pode ser dividido basicamente em 5
modelos: chave-valor, orientado a
documentos, famlia de colunas (ou big
table), Grafo e Objetos.
Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Modelo chave-valor

Lembram a estrutura java.util.Map;


Pesquisa unicamente pelas chaves;
Muito utilizado para Caches;
Tempo de O(1) para acesso aos dados.

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Modelo orientado a
documentos
Um documento uma estrutura de dados
composta por uma quantidade varivel de
campos, com tipos de dados diversos,
inclusive um campo pode conter outro
documento;
Um arquivo xml ou json seria como um
documento.

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Modelo orientado a
documentos
Modelo permite armazenar qualquer
documento, sem ter a necessidade de
definir previamente sua estrutura;
Possui forte tendncia para
desnormalizao de dados, deixando em 1
s documento todas as informaes
relacionadas;

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Modelo orientado a
documentos

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Modelo Famlia de Colunas


(ou BigTable)
Se tornou popular em 2006, atravs do
paper BigTable do Google;
Composto pelos componentes: Keyspaces,
Famlias de Colunas e Colunas;
Consultas apenas atravs das chaves;
til quando se precisa consultar um
grande volume de dados em um tempo de
resposta muito baixo;
Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Modelo Famlia de Colunas


(ou BigTable)
Deve-se definir previamente o conjunto de
colunas que podem ser armazenadas em
cada famlia

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Modelo Grafo
Grafos conectam um conjunto de vrtices
atravs de um conjunto de arestas;
Modelo de Grafos suportam estruturas de
grafos multirelacionais, com diferentes
vrtices (representando pessoas, lugares,
itens...) e diferentes tipos de arestas
(amigo de,mora em,comprando
por, etc..).

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Modelo Grafo
Modelo Whiteboard Friendly;
Navegao entre os relacionamentos de
forma linear O(1).

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Modelo Objeto
Bancos de Dados que armazenam objetos
ao invs de tabelas.

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Arquitetura
Solues noSql costumam utilizar uma
arquitetura no muito ortodoxa:
Redundncia de dados;
BASE ao invs de ACID;
Utilizao de solues alternativas para
persistncia;
Falta de padronizao nas APIs;
Busca quase que unicamente por chaves;
Prioridade em Escalabilidade Horizontal.
Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Arquitetura - BASE
BASE = Basically Avaible, Soft-State,
Eventual Consistency;
Abre mo da consistncia por algum
tempo em favor da escalabilidade e
disponibilidade;
Eventual Consistency = Consistncia em
algum momento indeterminado. Ex: TEDs
de bancos;
Existem excees: Neo4j possui ACID.
Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Arquitetura - Persistncia
Acessos ao disco possuem alto custo de
I/O. Solues que necessitam de baixa
latncia em geral no se adequam a este
meio de persistncia;
Memory-mapped mapeia parte da
memria diretamente para o disco, mas
deve-se replicar os dados em mais de uma
mquina para diminuir o risco de perda
de dados;
Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Arquitetura - Persistncia
Algumas solues noSql utilizam a
memria como principal meio de
persistncia, utilizando o disco como
forma secundria, fazendo serializao
com o disco por meio de threads paralelas
(google).

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Arquitetura Manipulao
de dados
No existe padro de APIs em noSql,
como existe no Java (por exemplo JDBC e
JPA);
Grande parte das ferramentas noSql
permitem apenas a busca de dados por
uma nica chave, ou atravs de views
previamente definidas;
Consultas ad-hoc so permitas em poucas
ferramentas (por ex: Cassandra)
Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Arquitetura Distribuio
Ferramentas noSql geramente so criadas
para estarem em um ambiente distribudo;
Algumas ferramentas oferecem
particionamento automtico dos dados;
Modelos relacionais se comportam melhor
com escalabilidade vertical;
Modelos nosql se comportam melhor com
escalabilidade horizontal
Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Redis
muito mais do que um banco chavevalor, um servidor de estrutura de
dados;
http://redis.io/

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

MongoDB
SGBD orientado a documentos;
Troca de informaes entre a aplicao e o
SGBD por meio de mensagens JSON, via
Socket;
Para muitos, o novo M do LAMP;
http://www.mongodb.org/downloads;

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

MongoDB - instalao
Efetuar o Download da ltima verso
estvel (mongodb-win32-x86_64-2008plus2.6.1) e instalar;
Criar o diretrio abaixo:

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

MongoDB - inicializao
Iniciar o banco pelo comando mongod

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

MongoDB - inicializao
Executar o comando mongo pela linha de
comando

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

MongoDB
Persistncia de objetos no banco:

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

MongoDB
Bibliotecas a serem usadas com Java:
mongo-x.xx.x.jar (driver do banco);
morphia-0.xx.jar (biblioteca para efetuar
mapeamento objeto-documento);
Visualizar cdigo-fonte do projeto
MongoDB-ProjetoEclipse

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Neo4j
Uma das solues noSql mais maduras;
Idealizado em 2000 por uma equipe sueca
chamada Windth Tecnologies;
Escrito em Java;
http://www.neo4j.org/

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Neo4j
Ambiente para efetuar consultas

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Cassandra
Nasceu dentro do Facebook para lidar
com as buscas nas caixas de entrada de
mensagens de seus usurios;
Cdigo liberado em 2009, tornou-se um
projeto incubado dentro da fundao
Apache;
Modelo baseado em famlia de colunas;
Arquitetura totalmente distribuda;
http://cassandra.apache.org/
Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Cassandra
O Cassandra escrito em Java;
O batch cassandra.bat responsvel por
subir o servidor

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Referncias
[1] Porcelli, Alexandre. O que noSql
Revista Java Magazine ed 86 e 87;
[2] Ramos, Jos Yoshiriro. NoSql:
Conceitos e Evoluo Revista MundoJ
ed 51;
[3] Garcia, Mrcio. Java e MongoDB
Revista MundoJ ed 51;

Prof Carlos Eduardo Dantas carloseduardodantas@iftm.edu.br

Você também pode gostar