Для PostgreSQL подготовлено дополнение AGE для хранения данных в форме графа

Для PostgreSQL предложено дополнение AGE (AgensGraph-Extension) с реализацией языка запросов openCypher для манипуляций с наборами связанных между собой иерархических данных, образующих граф. Вместо столбцов и строк графо-ориентированые БД используют структуру, похожую на сеть — задаются узлы, их свойства и отношения между узлами. AGE распространяется под лицензией Apache 2.0, передан компанией Bitnine под покровительство Фонда Apache и в настоящее время помещён в инкубатор Apache.

Проект продолжает развитие СУБД AgensGraph, которая представляет собой переработанную для обработки графов модификацию PostgreSQL. Ключевым отличием является реализация AGE в форме универсального дополнения, работающего в виде надстройки над штатными выпусками PostgreSQL. Опубликованный на днях выпуск Apache AGE 0.2.0 поддерживает работу с PostgreSQL 11.

В текущем состоянии AGE поддерживает такие возможности языка запросов Cypher, как применение выражения «CREATE» для определения узлов и связей, выражение «MATCH» для поиска данных в графе по заданным условиям (WHERE), в указанном порядке (ORDER BY) и с выставленными ограничениями (SKIP, LIMIT). Результирующий набор данных, возвращаемый запросом, определяется при помощи выражения «RETURN». Для объединения нескольких запросов в цепочку доступно выражение «WITH».

Возможно создание мультимодельных БД, сочетающих модели иерархического хранения свойств в форме графа, реляционную модель и модель хранения документов в формате JSON. Поддерживается выполнение интегрированных запросов, включающих элементы языков SQL и Cypher.
Доступно создание индексов для свойств вершин и рёбер графа.
Для использования предложен расширенный набор типов Agtype, включающий типы для рёбер, вершин и путей в графе. Агрегатные выражения пока не реализованы. Среди доступных специализированных функций: id, start_id, end_id, type, properties, head, last, length, size, startNode, endNode, timestamp, toBoolean, toFloat, toInteger и coalesce.

Источник: opennet.ru