1. ����� �� ����� � ������������� ��� ��������������� �� ���� � ����� �
www.sxc.hu
� � � � � �� � �� � � � � � �
� � � �� �� ����� � �� �� � ���
��� ������ ��������� �� �������
Parte 2: No artigo anterior demonstrouse um
conceito básico sobre os bancos NOSQL
Classificação além de fazer comparações entre os bancos
“tradicionais” versus o NOSQL. Nesse artigo
de bancos NOSQL abordaremos os tipos de bancos NOSQL,
além de sua classificação e, demonstrare
mos também, alguns exemplos.
Por serem novos bancos ainda não
existem padrões. Por mais que dois bancos
possuam exatamente as mesmas classifica
ções não é absoluto afirmar que eles possu
em os mesmo recursos e que fazem as
mesmas coisas. Isso sem falar no grande
trabalho que haverá na mudança de um ban
co NOSQL para outro, mesmo sendo seme
lhantes.
Existem hoje diversos SGBDs que se
encaixam com o NOSQL. Eles são classifi
cados por: Arquitetura, Armazenamento,
�������� ����� � � ������ � � � ��
2. ����� �� ����� � ������������� ��� ��������������� �� ���� � ����� �
Modelo de Dados: Redis
Arquitetura Disco:
Na arquitetura dividemse em dois ti CouchDb
pos: distribuídos e não distribuídos. Os distri MongoDb
buídos tomam a responsabilidade pela
Riak
partição dos dados e pela sua replicação.
Voldemort
Distribuídos :
Amazon Dynamo Configurável
BigTable
Scalaris
Cassandra
Voldemort
Hbase
CouchDb
HyperTable
Riak
MongoDb Modelo de Dados
BigTable O Modelo de Dados define como a in
formação é armazenada e estruturada dentro
Cassandra
do banco.
HyperTable
Chave/Valor Possui uma estrutura muito
HBase semelhante a do Java.util.Map, onde pode
mos armazenar uma chave e seu valor. Esse
Não distribuídos: valor pode ser qualquer informação.
Redis
Amazon Dynamo
Tokyo Tyrant
Amazon S3
MemcacheDb
Redis
Amazon SimpleDb
Scalaris
Armazenamento Voldemort
São aqueles que armazenam dados
em disco e na memória. Esta diferenciação Documento
é importante pois no caso da gravação em Este modelo permite armazenar qual
disco você vai precisar de um cache explici quer documento, sem a necessidade de defi
to. Já os dados armazenados em memória nir previamente sua estrutura. O documento
não são duráveis. Um ponto interessante a é composto por inúmeros campos, com tipos
ser avaliado é que no disco os dados tem de dados diversos inclusive um campo po
menos possibilidade de serem perdidos, no de conter um outro, com uma estrutura se
entanto, o custo de I/O é altíssimo. Em rela melhante a um arquivo XML.
ção à memória, apesar do acesso ser mais Amazon SimpleDb
rápido, devese levar em conta o fato dos da
Apache Couchdb
dos ficarem em regiões voláteis.
MongoDb
Memória: Riak
Scalaris
�������� ����� � � ������ � � � ��
3. ����� �� ����� � ������������� ��� ��������������� �� ���� � ����� �
Colunas amigo de, mora em, comprado por).
Esse modelo tornouse popular através Neo4j
do paper BigTable do Google, com o objetivo
de montar um sistema de armazenamento InfoGrid
de dados distribuído. Projetado para ter um Sones
alto grau de escalabilidade e de volume de
HyperGraphDB
dados é composto por três componentes
Keyspace: Semelhante a um banco de da Conclusão:
dos relacional tem como função agrupar um Neste artigo falouse sobre os diversos
conjunto de Famílias de Colunas. tipos de bancos NOSQL, além de classificá
Família de Colunas: Semelhante a uma ta los por arquitetura, armazenamento e mode
bela no modelo relacional, organiza as colu lo de dados. Concluise que, com o grande
nas. Faz uso de uma chave única, que traz número de aplicações e suas diversidade, foi
flexibilidade ao modelo sem poluir as linhas necessário a criação de algumas formas de
com colunas nulas. armazenamento para atender melhor um re
quisito específico. Finalizando uma breve in
Coluna: É uma tupla composta por nome,
trodução sobre o NOSQL.
timestamp e valor, onde os dados são real
mente armazenados. No próximo artigo abordaremos o Cas
sandra e suas características.
Duas características adicionais e impor
tantes deste modelo são a forma de consul
ta, que pode ser executada apenas através
da chave das linhas de uma família de colu
nas, e a necessidade de definir previamente
Referências
o conjunto de colunas que podem ser arma __ Porcelli, Alexandre: Java Magazine nº 86 Introdu
zenadas em cada família. ção ao NOSQL
Cassandra __ Ferreira, Edmar: http://va.mu/TfSR
Google BigTable __ Cassandra: http://va.mu/TixL
HBase __ Reis, Valéria Quadros dos: http://va.mu/TfST
Hyperbase
Grafo (whiteboard friendly) é uma es
trutura de dados que conecta um conjunto de
vértices através de um conjunto de arestas.
Os bancos de dados de grafo moderno su
portam estruturas de grafo multirelacionais, ������ ��������� �� �������
onde existem tipos diferentes de vértices (re ������� �� ����� �� ������������� ����
��������� �� ��������� �� ������
presentando pessoas, lugares, itens) e dife ����������� ������� ���������� �������� �� ����
rentes tipos de arestas (como por exemplo �� ������� �������� �� ������ �� �����.
�������� ����� � � ������ � � � ��