Voor PostgreSQL de extensie AGE (AgensGraph-Extension) met implementatie van de querytaal voor het manipuleren van sets van met elkaar verbonden hiƫrarchische gegevens die een graaf vormen. In plaats van kolommen en rijen gebruiken graaf-georiƫnteerde databases een structuur die lijkt op een netwerk - knooppunten, hun eigenschappen en de relaties tussen knooppunten worden gedefinieerd. AGE onder de Apache 2.0-licentie, is overgedragen door Bitnine onder de hoede van de Apache Foundation en bevindt zich momenteel in de Apache-incubator.
Het project blijft de database verder ontwikkelen , die een gewijzigde versie van PostgreSQL is die is herschreven voor grafen. Het belangrijkste verschil is de implementatie van AGE in de vorm van een universele extensie die werkt als een laag bovenop de standaardversies van PostgreSQL. De onlangs gepubliceerde versie ondersteunt PostgreSQL 11.
In de huidige staat ondersteunt AGE mogelijkheden van de Cypher-querytaal, zoals het gebruik van de expressie 'CREATE' voor het definiƫren van knooppunten en relaties, de expressie 'MATCH' voor het zoeken naar gegevens in de graaf op basis van specifieke voorwaarden (WHERE), in een bepaalde volgorde (ORDER BY) en met ingestelde beperkingen (SKIP, LIMIT). De resulterende dataset die door de query wordt teruggegeven, wordt gedefinieerd met de expressie 'RETURN'. Om meerdere queries in een keten te combineren, is er de expressie 'WITH'.
Het is mogelijk om multimodale databases te creëren die eigenschapsmodellen in de vorm van een graaf combineren, relationele modellen en documentopslagmodellen in JSON-formaat. Het uitvoeren van geïntegreerde queries, die elementen van zowel SQL- als Cypher-talen bevatten, wordt ondersteund.
Het is mogelijk om indexen te creƫren voor de eigenschappen van knooppunten en de verbindingen in de graaf.
Voor gebruik wordt een uitgebreide set van Agtype-types aangeboden, inclusief types voor verbindingen, knooppunten en paden in de graaf. Aggregaatuitdrukkingen zijn momenteel nog niet geĆÆmplementeerd. Onder de beschikbare gespecialiseerde functies zijn: id, start_id, end_id, type, properties, head, last, length, size, startNode, endNode, timestamp, toBoolean, toFloat, toInteger en coalesce.
Bron: opennet.ru
