GSQL

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
GSQL
Класс языка свободное программное обеспечение и язык программирования
Лицензия GNU GPL
Сайт gsql.org

GSQL — это язык программирования, разработанный для графовой базы данных компании TigerGraph[англ.][1]. GSQL — это полный по Тьюрингу язык программирования, который включает в себя управление потоком процедур и итерацию, а также средство для сбора и изменения вычисляемых значений, связанных с выполнением программы для всего графа или для элементов графа, называемых аккумуляторами[2]. Эти функции разработаны для того, чтобы итеративные вычисления графа можно было объединить с исследованием и извлечением данных. Графы GSQL должны быть описаны схемой вершин и рёбер, которая ограничивает все вставки и обновления. Таким образом, эта схема обладает свойством закрытого мира GSQL-схемы, и этот аспект GSQL (также отраженный в проектных предложениях, вытекающих из проекта Morpheus[3]) предлагается в качестве важной дополнительной функции GSQL[1].

Вершины и рёбра — это именованные объекты схемы, которые содержат данные, но также определяют вменённый тип, подобно тому, как таблицы SQL являются контейнерами данных с соответствующим неявным типом строки. Графы GSQL составляются из этих наборов вершин и рёбер, а несколько именованных графов могут включать один и тот же набор вершин или рёбер. GSQL разработал новые функции с момента своего выпуска в сентябре 2017 года[4], в частности, введение сопоставления шаблонов рёбер переменной длины[5] с использованием синтаксиса, похожим на тот, который можно увидеть в Cypher, PGQL и SQL/PGQ, но также близкого по стилю к шаблонам фиксированной длины, предлагаемым Microsoft SQL/Server Graph[6].

GSQL также поддерживает концепцию мультиграфов, которые позволяют подмножествам графа иметь управление доступом на основе ролей. Мультиграфы важны для графов корпоративного масштаба, которым требуется детальное управление доступом для разных пользователей[7].

Примечания

[править | править код]
  1. 1 2 Wu, Mingxi; Deutsch, Alin GSQL: An SQL-Inspired Graph Query Language (англ.). Дата обращения: 9 ноября 2019. Архивировано 10 ноября 2019 года.
  2. Deutsch, Alin. Aggregation Support for Modern Graph Analytics in TigerGraph // Proceedings of the 2020 ACM SIGMOD International Conference on Management of Data : [англ.]. — Jun 14, 2020. — P. 377–392. — ISBN 9781450367356. — doi:10.1145/3318464.3386144.
  3. Voigt, Hannes; Selmer, Petra; Lindaaker, Tobias; Plantikow, Stefan; Green, Alastair Property Graph Schema, ANSI INCITS DM32.2 SQL Property Graph Extensions Ad Hoc submission sql-pg-2018-0056r1, Neo4j Query Languages Standards and Research Team (англ.). openCypher.org (декабрь 2018). Дата обращения: 12 ноября 2019. Архивировано 7 декабря 2024 года.
  4. GSQL documentation Tigergraph 1.0. (англ.) (2017). Дата обращения: 9 ноября 2019. Архивировано 10 ноября 2019 года.
  5. Pattern Matching, TigerGraph 2.4 Release Notes. (англ.) (июнь 2019). Дата обращения: 9 ноября 2019. Архивировано 10 ноября 2019 года.
  6. Query language extensions, Graph processing with SQL Server and Azure SQL Database (англ.). Microsoft Inc. (2017). Дата обращения: 10 ноября 2019. Архивировано 6 сентября 2022 года.
  7. Multigraphs, TigerGraph Online Documentation (англ.) (июнь 2019). Дата обращения: 7 января 2022. Архивировано 7 декабря 2024 года.