Desenvolvendo com NOSQL – Cassandra em java –Classificação de bancos NOSQL

     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

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s