MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

BDs de gráficos vs. BDs de documentos vs. Triplestores


Não tenho certeza se concordaria com o sentimento de que muitas pessoas não gostam do SPARQL. O SPARQL 1.0 teve algumas deficiências, mas abordou muito bem para o que foi projetado, e a nova iteração, SPARQL 1.1, se baseia nele adicionando muitas construções do SQL que as pessoas esperavam ver na especificação original, incluindo subconsultas, agregações &atualizar a semântica. Eu acho que o fato de ser padrão e você pode esperar ver a mesma análise e semântica em cada armazenamento triplo, em oposição aos dialetos do SQL, é um bom recurso.

Eu também diria que todos os armazenamentos triplos são bancos de dados gráficos; você pode colocar propriedades em bordas específicas em RDF, embora não tão bem quanto com o Neo4j. Mas os armazenamentos triplos têm a vantagem de uma linguagem de consulta real, uma representação de dados padrão w3c que torna trivial levar seus dados para outro armazenamento triplo e, para vários armazenamentos triplos, a capacidade de executar raciocínio com base em OWL.

Eu não sei nada sobre a escalabilidade para a maioria dos bancos de dados gráficos, mas geralmente, os bancos de dados RDF comerciais escalam muito bem. Todos podem ser dimensionados para bilhões de triplos, o que lida com muitos casos de uso. Embora a forma como eles lidam com a escala seja muito diferente de fornecedor para fornecedor wrt para escalar verticalmente ou horizontalmente, clustering, etc. Você também verá requisitos de memória e hardware bastante diferentes para corresponder às implementações de cada um. Para mim, eu tendia a apenas pegar uma instância do EC2, geralmente um 2XL ou 4XL, montar um EBS grande o suficiente para armazenar os dados e estou muito bem definido.

Além disso, alguns armazenamentos triplos se integram ao Lucene ou tecnologias semelhantes para fornecer índices invertidos sobre os dados, e muitos agora estão começando a incluir índices geoespaciais e temporais. Esses são recursos muito úteis que não tenho certeza de sua disponibilidade em algo como o Neo4j.

Com isso dito, eles não vão escalar tão bem quanto um banco de dados relacional, eles não são tão maduros. Mas você também não vai se ferrar quando tiver quantidades "reais" de dados. É claro que uma das vantagens das lojas triplas é o raciocínio, cujo desempenho em escala é complicado, mas é por isso que os vários perfis OWL foram criados. Mas você pode ficar encurralado se não pensar no futuro.

Acho que bancos de dados gráficos, armazenamentos triplos especificamente, podem ser uma boa combinação para muitos aplicativos que estão sendo construídos, mas não acho que isso signifique que tudo deva ser feito com eles. Como qualquer outra coisa, eles são ferramentas com seus pontos bons e seus pontos ruins, então você meio que tem que fazer a escolha certa com base na sua aplicação. Mas eles provavelmente sempre merecem pelo menos uma consideração nos dias de hoje.