Qual é o Modelo de Dados dos Bancos nosql?

Estava lendo uns posts do blog do mongodb e li sobre esse assunto e achei muito interessante e resolvi fazer uma meia tradução dele e alguns comentarios.Venho estudado e fazendo testes com o mongodb no rails, e espero em breve usa-lo em produção, e realmente eu nunca havia parado para pensar que modelo de dados o mongodb e o couchdb seguiam.

Recentemente os bancos de dados não relacionais("nosql") vem ganhando espaço, sabemos que o modelo de dados não é relacional, mas qual é o modelo? qual é o modelo certo?

Existem muitas possibilidades, As mais populares são:
Chave/Valor(key/value).onde o valor é armazenado por chave.

Tabular.Alguns projetos como a BigTable(a solução nosql do Google) usam como modelo de dados o que chamamos de "tabular" aqui - ou pode-se pensar nela como "tabela multidimensional".

Orientado a Documento(Document-Oriented). utiliza o JSON para armazenar os dados.

Abaixo algumas reflexões sobre sobre as abordagens acima:

Chave/Valor tem a vantagem de ser simples.É fácil de fazer tais sistemas(simples) rápidos e escalonáveis.A implementação é simples para alguns problemas do mundo real.Nós gostaríamos de ver algo mais de uso geral.
O Tabular traz mais flexibilidade, Mas por que aderir a tabelas? Será que não devemos fazer algo mais próximo do modelo de dados das linguagens de programação? Alias os fundamentos teóricos do tabular são da álgebra relacional, mas ainda temos o trabalho de mapeamento de objetos significativos do programa para "tabelas".
Orientada a Documento é a preferida e a utilizada pela equipe do mongodb, o couchdb também segue este modelo.Baseando se nas linguagens de programação que usamos hoje, para não mencionar os serviços da Web, o JSON se adequa muito bem.O JSON gera um objeto, como representação, e também não é preso a uma unica linguagem de programação, apesar de ser uma notação de objeto de javascript( o que para alguns é um ponto negativo), o seu uso não requer o javascript exclusivamente.

Das três abordagens concordo com a equipe do mongodb e acho que a orientação a documento é a melhor abordagem, pois pensando na web a busca por documentos são mais simples e melhores para serem classificadas do que a abordagem com "tabelas".Não conheço muito o BigTable do Google preciso fazer uns testes para ter uma opinião melhor sobre ele o que escrevi foi baseado no que li no post do blog do mongodb então se alguem já testou ele e quiser comentar seria muito legal.



Leia mais(otimos posts) no http://blog.mongodb.org/

Etiquetas