Pentru PostgreSQL extensia AGE (AgensGraph-Extension) cu implementarea limbajului de interogare pentru manipularea seturilor de date ierarhice interconectate, care formează un grafic. În loc de coloane și rânduri, bazele de date orientate pe graf utilizează o structură similară unei rețele - se definesc noduri, proprietățile acestora și relațiile dintre noduri. AGE sub licența Apache 2.0, transmisă de compania Bitnine sub auspiciile Fondului Apache și în prezent plasată în incubatorul Apache.
Proiectul continuă dezvoltarea SGBD-ului , care este o modificare reworked pentru procesarea grafurilor a PostgreSQL. Principala distincție este implementarea AGE sub formă de extensie universală, care funcționează ca un addon peste versiunile standard ale PostgreSQL. Ultima versiune publicată suportă funcționarea cu PostgreSQL 11.
În starea actuală, AGE oferă funcționalitățile limbajului de interogare Cypher, cum ar fi utilizarea expresiei „CREATE” pentru a defini noduri și conexiuni, expresia „MATCH” pentru a căuta date în graf în condițiile specificate (WHERE), în ordinea dorită (ORDER BY) și cu limitările definite (SKIP, LIMIT). Setul de date rezultant, returnat de interogare, este determinat prin expresia „RETURN”. Pentru a combina mai multe interogări într-un lanț, există expresia „WITH”.
Este posibilă crearea de baze de date multimodale care combină modele de stocare ierarhică a proprietăților sub formă de graf, modelul relațional și modelul de stocare a documentelor în format JSON. Se suportă executarea de interogări integrate, care includ elemente din limbajele SQL și Cypher.
Este disponibilă crearea de indecși pentru proprietățile vârfurilor și arcelor graficului.
Pentru utilizare, este propus un set extins de tipuri Agtype, incluzând tipuri pentru arce, vârfuri și căi în graf. Expresiile agregate nu sunt încă implementate. Printre funcțiile specializate disponibile se numără: id, start_id, end_id, type, properties, head, last, length, size, startNode, endNode, timestamp, toBoolean, toFloat, toInteger și coalesce.
Sursa: opennet.ro
