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?
2 answers
As bases de dados da rede como CODSASYL são ainda mais ou menos baseadas num modelo de dados hierárquico , pensando em termos de relações pai-filho (ou membro do proprietário na terminologia do CODASYL). Isso também significa que na base de dados de rede você não pode relacionar registros arbitrários um com o outro, o que torna difícil trabalhar com conjuntos de dados orientados para grafos. Por exemplo, você pode usar um banco de dados de grafos para analisar quais relações existem entre entidades.
Também bases de dados da rede use registros fixos com um conjunto predefinido de campos, enquanto bases de dados de grafos usam o modelo de grafos de propriedade mais flexível , permitindo pares de chaves/valores arbitrários em ambos os nós/vértices e relacionamentos/arestas.
Cópia do livro que projecta uma aplicação intensiva de dados.
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.
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.
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).
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.