Per PostgreSQL il complemento AGE (AgensGraph-Extension) con implementazione del linguaggio di query per la manipolazione di insiemi di dati gerarchici interconnessi che formano un grafo. Invece di colonne e righe, i database orientati ai grafi utilizzano una struttura simile a una rete, definendo nodi, le loro proprietà e le relazioni tra i nodi. AGE è sotto licenza Apache 2.0, trasferito da Bitnine sotto l'egida della Apache Foundation e attualmente in incubazione in Apache.
Il progetto continua a svilupparsi come sistema di gestione di database , che una modifica rielaborata per la gestione di grafi di PostgreSQL. La differenza chiave è l'implementazione di AGE sotto forma di un complemento universale, che funziona come un'estensione delle release standard di PostgreSQL. La release pubblicata recentemente supporta il funzionamento con PostgreSQL 11.
Nell'attuale stato AGE le funzionalità del linguaggio di query Cypher, come l'uso dell'espressione «CREATE» per definire nodi e relazioni, l'espressione «MATCH» per cercare dati nel grafo in base a condizioni specifiche (WHERE), in un ordine specificato (ORDER BY) e con vincoli impostati (SKIP, LIMIT). Il set di dati risultante restituito dalla query è definito tramite l'espressione «RETURN». Per concatenare più query in una catena è disponibile l'espressione «WITH».
È possibile creare database multimodello, che combinano modelli di archiviazione gerarchica delle proprietà in forma di grafo, modello relazionale e modello di archiviazione dei documenti in formato JSON. È supportata l'esecuzione di query integrate che includono elementi dei linguaggi SQL e Cypher.
È disponibile la creazione di indici per le proprietà dei nodi e dei lati del grafo.
È proposto un insieme ampliato di tipi Agtype, che include tipi per lati, nodi e percorsi nel grafo. Le espressioni aggregate non sono ancora implementate. Tra le funzioni specializzate disponibili ci sono: id, start_id, end_id, type, properties, head, last, length, size, startNode, endNode, timestamp, toBoolean, toFloat, toInteger e coalesce.
Fonte: opennet.ru
