В чем разница между графической базой данных и сетевой базой данных? - PullRequest
15 голосов
/ 18 февраля 2011

В чем разница между графической базой данных (например, Neo4J) и сетевой базой данных (например, IDS, CODASYL)? В принципе это одно и то же?

Ответы [ 2 ]

16 голосов
/ 18 февраля 2011

Сетевые базы данных, такие как CODSASYL , все еще более или менее основаны на иерархической модели данных , рассматриваемой в терминах отношений родитель-ребенок (или владелец-член в терминологии CODASYL). Это также означает, что в сетевой базе данных вы не можете связать произвольные записи друг с другом, что затрудняет работу с графо-ориентированными наборами данных. Например, вы можете использовать графическую базу данных для анализа существующих связей между сущностями.

Кроме того, сетевые базы данных используют фиксированные записи с предопределенным набором полей, в то время как графовые базы данных используют более гибкую модель графа свойств , допускающую произвольные пары ключ / значение как на узлах / вершинах, так и на отношениях / ребрах .

3 голосов
/ 14 сентября 2018

Копирование из книги «Проектирование приложений с интенсивным использованием данных».

  1. В сетевой модели в базе данных была схема, в которой указывалось, какой тип записи может быть вложен в какой другой тип записи.В базе данных графов такого ограничения нет: любая вершина может иметь ребро по отношению к любой другой вершине.Это дает приложениям большую гибкость для адаптации к изменяющимся требованиям.

  2. В сетевой модели единственный способ получить конкретную запись - это пройти по одному из путей доступа к ней.В базе данных графов вы можете напрямую обращаться к любой вершине по ее уникальному идентификатору или использовать индекс для поиска вершин с определенным значением.

  3. В сетевой модели дочерние элементызаписи были упорядоченным набором, поэтому база данных должна была поддерживать этот порядок (что имело последствия для структуры хранилища), а приложениям, которые вставляли новые записи в базу данных, приходилось беспокоиться о положении новых записей в этих наборах.В базе данных графов вершины и ребра не упорядочены (результаты можно сортировать только при выполнении запроса).

  4. В сетевой модели все запросы были обязательными, их было трудно написать илегко нарушается изменениями в схеме.В графовой базе данных вы можете написать свой обход в императивном коде, если хотите, но большинство графовых баз данных также поддерживают высокоуровневые декларативные языки запросов, такие как Cypher или SPARQL.

...