Qual é a diferença entre um banco de dados de Grafos e um banco de dados de rede?

Qual é a diferença entre uma base de dados de Grafos (por exemplo, Neo4J) e uma base de dados de rede (por exemplo, IDS, CODASYL)? Em princípio, são a mesma coisa?

Author: skaffman, 2011-02-18

2 answers

Cópia do livro que projecta uma aplicação intensiva de dados.

  1. No modelo de rede, a base de dados tinha um esquema que especificava qual o tipo de registro que poderia ser aninhado dentro de qual outro tipo de registro. Em um banco de dados de grafos, não existe tal restrição: qualquer vértice pode ter uma aresta para qualquer outro vértice. Isto proporciona uma flexibilidade muito maior para as aplicações se adaptarem a exigências em mudança.

  2. No modelo de rede, a única maneira de alcançar um determinado recorde foi para atravessar um dos caminhos de acesso a ele. Em um banco de dados de grafos, você pode se referir diretamente a qualquer vértice por seu ID único, ou você pode usar um índice para encontrar vértices com um valor particular.

  3. No modelo de rede, os filhos de um registro eram um conjunto ordenado, então o banco de dados teve que manter essa encomenda (que teve consequências para o layout de armazenamento) e as aplicações que inseriram novos registros na base de dados tiveram que se preocupar com as posições dos novos registros nesses conjuntos. Em um banco de dados de grafos, vértices e arestas não são ordenados (você só pode ordenar os resultados ao fazer uma consulta).

  4. No modelo de rede, todas as consultas eram imperativas, difíceis de escrever e facilmente quebradas por mudanças no esquema. Em um banco de dados de grafos, você pode escrever seu traversal em código imperativo se quiser, mas a maioria das bases de dados de grafos também suportam linguagens de consulta de alto nível, declarativas, como Cypher ou SPARQL.

 2
Author: Sumit Sethia, 2018-09-14 05:35:55