No
artigo anterior foi mostrado um conceito básico sobre os banco nosql
além de fazer comparações entre os bancos“tradicionais” com os bancos
nosql. Nesse artigo será abordado sobre os tipos de bancos nosql além de
sua classificação serão mostrados também alguns exemplos. Esses bancos
por serem bastante novos ainda não existem padrões, ou seja, por mais que
dois bancos possuam exatamente as mesma classificações não é absoluto
afirmar que eles possuem os mesmo recursos e que fazem as mesmas coisas
sem falar no grande trabalho que haverá na mudança de um banco nosql para
o outro mesmo sendo semelhantes. Existem hoje diversos SGBDs que se
encaixam como nosql eles são classificados por: Arquitetura,
Armazenamento, modelo dedados:
Arquitetura
Na arquitetura se pode dividir em dois tipos: distribuídos e não
distribuídos. Os distribuídos tomam a responsabilidade pela partição
dos dados e pela sua replicação.
Distribuídos:
· AmazonDynamo
· Scalaris
· Voldemort
· CouchDb
· Riak
· MongoDb
· BigTable
· Cassandra
· HyperTable
· HBase
Não distribuídos:
· Redis
· TokyoTyrant
· MemcacheDb
· AmazonSimpleDb
Armazenamento:
Se defini por aqueles que armazenam dados em disco e os que armazenam
na memória. Esta diferenciação é importante por que no caso da gravação
em disco você vai precisar de um cache explicito. Já os dados
armazenados em memória não são duráveis. Um ponto interessante a ser
avaliado é que no disco os dados tem menos possibilidade de ser perdidos
no entanto o custo de I/O é altíssimo já com memória apesar de ser mais
rápido o acesso deve-se levar em conta o fato dos dados ficarem em
regiões voláteis.
Memória:
· Scalaris
· Redis
Disco:
· CouchDb
· MongoDb
· Riak
· Voldemort
Configurável
· BigTable
· Cassandra
· Hbase
· HyperTable
Modelo de dados
No modelo de dados é definido como a informação é armazenada e estruturada dentro do banco.
· Chave/Valor Possuiuma
estrutura muito semelhante a do java.util.Map, onde podemos armazenar
uma chave e seu valor. Esse valor pode ser qualquer informação.
· AmazonDynamo
· AmazonS3
· Redis
· Scalaris
· Voldemort
Documento
Estemodelo
permite armazenar qualquer documento, sem ter a necessidade de definir
previamente sua estrutura. O documento e composto por uma inúmeros
campos, com tipos de dados diversos, inclusive um campo pode conter um
outro, possui uma estrutura semelhante a um arquivo XML.
· AmazonSimpleDb
· ApacheCouchdb
· MongoDb
· Riak
Colunas Essemodelo se tornou popular através do paper
BigTable do Google, com o objetivo de montar um sistema de
armazenamento de dados distribuído, projetado para ter um alto grau de
escalabilidade e de volume de dados é composto por três componentes
Keyspace tem como função agrupar um conjunto de Famílias de Colunas. Semelhante a um banco de dados relacional.
Família de Colunas organizas as colunas. faz o uso de uma chave única,
que traz flexibilidade ao modelo sem poluir as linhas com colunas
nulas. Semelhante a uma tabela no modelo relacional.
Coluna, que é uma tupla composta por nome,timestamp e valor, onde os dados são realmente armazenados.
Duas características adicionais e importantes deste modelo são a forma
de consulta, que pode ser executada apenas através da chave das linhas
de uma família de colunas, e a necessidade de definir previamente o
conjunto de colunas que podem ser armazenadas em cada família.
· Cassandra
· GoogleBigTable
· HBase
· Hyperbase
Grafo(whiteboardfriendly)
é uma estrutura de dados que conecta um conjunto de vértices através de
um conjunto de arestas. Os bancos de dados de grafo modernos suportam
estruturas de grafo multi-relacionais, onde existem tipos diferentes
devértices (representando pessoas, lugares, itens) e diferentes tipos de
arestas(como por exemplo amigo de, mora em, comprado por.
· Neo4j
· InfoGrid
· Sones
· HyperGraphDB
Conclusão:
Neste
artigo foi falado sobre os diversos tipos de bancos NOSQL, além de
classificá-los por arquitetura, armazenamento e modelo dados. Com isso
conclui-se que com o grande número de aplicações e suas diversidade se
fez necessário a criação de algumas forma de armazenamento para atender
melhor um requisito específico. Finalizado uma breve introdução sobre o
NOSQL no próximo artigo será falado sobre o Cassandra e suas
características.
Referência:
Porcelli,Alexandre. Java Magazine nº 86 Introdução ao nosql
http://escalabilidade.com/2010/03/08/introducao-ao-nosql-parte-i/
Cassandra: http://cassandra.apache.org/
Valéria Quadros dos Reis http://horasdeocionerd.blogspot.com/2011/02/consistencia-dos-dados-no-cassandra.html
Nenhum comentário:
Postar um comentário