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:
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/