~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 8759C0E3C899C4B76DBFAB93E2EA5F0F__1718705940 ✰
Заголовок документа оригинал.:
✰ Graph database - Wikipedia ✰
Заголовок документа перевод.:
✰ База данных графов — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Graph_database ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/87/0f/8759c0e3c899c4b76dbfab93e2ea5f0f.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/87/0f/8759c0e3c899c4b76dbfab93e2ea5f0f__translat.html ✰
Дата и время сохранения документа:
✰ 18.06.2024 22:55:55 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 18 June 2024, at 13:19 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

База данных графов — Википедия Jump to content

База данных графов

Из Википедии, бесплатной энциклопедии

База данных графов ( GDB ) — это база данных , которая использует структуры графов для семантических запросов с узлами , ребрами и свойствами для представления и хранения данных. [1] Ключевым понятием системы является граф (или ребро, или взаимосвязь). Граф связывает элементы данных в хранилище с набором узлов и ребер, причем ребра представляют отношения между узлами. Отношения позволяют напрямую связывать данные в хранилище и во многих случаях получать их с помощью одной операции. В графовых базах данных отношения между данными являются приоритетом. Запрос отношений выполняется быстро, поскольку они постоянно хранятся в базе данных. Отношения можно интуитивно визуализировать с помощью графовых баз данных, что делает их полезными для сильно взаимосвязанных данных. [2]

Графовые базы данных обычно называют NoSQL . Базы данных графов похожи на базы данных сетевых моделей 1970-х годов тем, что обе представляют собой общие графы, но базы данных сетевой модели работают на более низком уровне абстракции. [3] и им не хватает простого обхода по цепочке ребер. [4]

Базовый механизм хранения графовых баз данных может различаться. Отношения являются первоклассными элементами графовой базы данных и могут быть помечены, направлены и им присвоены свойства. Некоторые зависят от реляционного механизма и хранят данные графа в таблице (хотя таблица является логическим элементом, поэтому этот подход накладывает определенный уровень абстракции между системой управления базой данных графа и физическими устройствами хранения). Другие используют для хранения хранилище «ключ-значение» или документо-ориентированную базу данных , что делает их по своей сути структурами NoSQL.

По состоянию на 2021 год , ни один язык графовых запросов не получил повсеместного распространения так же, как SQL для реляционных баз данных, и существует большое разнообразие систем, многие из которых тесно привязаны к одному продукту. Некоторые ранние усилия по стандартизации привели к созданию языков запросов от разных производителей, таких как Gremlin , SPARQL и Cypher . В сентябре 2019 года предложение о проекте по созданию нового стандартного языка графовых запросов (ISO/IEC 39075 Информационные технологии — Языки баз данных — GQL) было одобрено членами Объединенного технического комитета 1 ISO/IEC (ISO/IEC JTC 1). GQL задуман как декларативный язык запросов к базе данных, такой как SQL. Помимо интерфейсов языка запросов, доступ к некоторым графовым базам данных осуществляется через интерфейсы прикладного программирования (API).

Базы данных графов отличаются от вычислительных механизмов графов. Базы данных графов — это технологии, которые представляют собой переводы баз данных реляционной онлайн-обработки транзакций (OLTP). С другой стороны, графовые вычислительные машины используются в онлайн-аналитической обработке (OLAP) для массового анализа. [5] Базы данных на графах привлекли значительное внимание в 2000-х годах из-за успехов крупных технологических корпораций в использовании собственных графовых баз данных. [6] наряду с введением с открытым исходным кодом графовых баз данных .

Одно исследование пришло к выводу, что СУБД «сопоставима» по производительности с существующими механизмами анализа графов при выполнении запросов к графам. [7]

История [ править ]

В середине 1960-х годов навигационные базы данных , такие как IBM от IMS , поддерживали древовидные структуры в своей иерархической модели , но строгую древовидную структуру можно было обойти с помощью виртуальных записей. [8] [9]

Структуры графов могли быть представлены в базах данных сетевых моделей конца 1960-х годов. CODASYL , который определил COBOL в 1959 году, определил язык сетевых баз данных в 1969 году.

Размеченные графы могли быть представлены в графовых базах данных середины 1980-х годов, таких как логическая модель данных. [10] [11]

Базы данных коммерческих объектов (ODBMS) появились в начале 1990-х годов. В 2000 году группа управления объектными данными опубликовала стандартный язык для определения структур объектов и отношений (графов) в своей публикации ODMG'93.

Несколько усовершенствований графовых баз данных появились в начале 1990-х годов, а в конце 1990-х их темпы ускорились благодаря попыткам индексировать веб-страницы.

В середине-конце 2000-х годов коммерческие графовые базы данных с гарантиями ACID , такие как Neo4j и Oracle Spatial and Graph стали доступны .

В 2010-х годах коммерческие графовые базы данных ACID, которые можно было масштабировать по горизонтали стали доступны . Кроме того, SAP HANA привнесла в графические базы данных технологии обработки данных в памяти и столбцы . [12] Также в 2010-х годах многомодельные базы данных , поддерживающие графовые модели (и другие модели, такие как реляционная база данных или документ-ориентированная база данных стали доступны ), такие как OrientDB , ArangoDB и MarkLogic (начиная с версии 7.0). За это время графовые базы данных различных типов стали особенно популярны при анализе социальных сетей с появлением компаний, занимающихся социальными сетями. Также в течение десятилетия облачные графовые базы данных, такие как Amazon Neptune и Neo4j AuraDB стали доступны .

Предыстория [ править ]

Базы данных графов отображают данные так, как они рассматриваются концептуально. Это достигается путем передачи данных в узлы и их связей в ребра.

База данных графов — это база данных, основанная на теории графов . Он состоит из набора объектов, которые могут быть узлом или ребром.

  • Узлы представляют собой сущности или экземпляры, такие как люди, предприятия, счета или любые другие элементы, которые необходимо отслеживать. Они примерно эквивалентны записи, отношению или строке в реляционной базе данных или документу в базе данных хранилища документов.
  • Ребра , также называемые графами или отношениями , представляют собой линии, соединяющие узлы с другими узлами; представляющие отношения между ними. Значимые закономерности возникают при изучении соединений и взаимосвязей узлов, свойств и ребер. Края могут быть как направленными, так и ненаправленными. В неориентированном графе ребро, соединяющее два узла, имеет одно значение. В ориентированном графе ребра, соединяющие два разных узла, имеют разное значение в зависимости от их направления. Края — ключевое понятие в графовых базах данных, представляющее абстракцию, которая не реализована напрямую в реляционной модели или модели хранилища документов .
  • Свойства — это информация, связанная с узлами. Например, если бы Википедия была одним из узлов, она могла бы быть привязана к таким свойствам, как веб-сайт , справочный материал или слова, начинающиеся с буквы w , в зависимости от того, какие аспекты Википедии имеют отношение к данной базе данных.

Графовые модели [ править ]

График помеченных свойств [ править ]

Пример графа с метками свойств

Модель графа с помеченными свойствами представлена ​​набором узлов, связей, свойств и меток. Оба узла данных и их связи имеют имена и могут хранить свойства, представленные парами ключ-значение . Узлы могут быть помечены для группировки. Ребра, представляющие отношения, обладают двумя качествами: они всегда имеют начальный и конечный узлы и направлены; [13] сделать граф ориентированным . Отношения также могут иметь свойства. Это полезно для предоставления дополнительных метаданных и семантики связям узлов. [14] Прямое хранение отношений позволяет за постоянное время осуществлять обход . [15]

Структура описания ресурсов (RDF) [ править ]

Пример RDF-графика

В графовой модели RDF каждое добавление информации представлено отдельным узлом. Например, представьте себе сценарий, в котором пользователю необходимо добавить свойство имени для человека, представленного в виде отдельного узла на графе. В модели графа с помеченными свойствами это можно сделать путем добавления свойства имени в узел человека. Однако в RDF пользователю необходимо добавить отдельный узел с именем hasNameсоединяя его с исходным узлом человека. В частности, графовая модель RDF состоит из узлов и дуг. Нотация графа RDF или оператор представлены: узлом для субъекта, узлом для объекта и дугой для предиката. Узел можно оставить пустым, использовать литерал и/или указать URI . Дугу также можно идентифицировать по URI. Литерал узла может быть двух типов: простой (нетипизированный) и типизированный. Простой литерал имеет лексическую форму и, при необходимости, языковой тег. Типизированный литерал состоит из строки с URI, идентифицирующим определенный тип данных. Пустой узел можно использовать для точной иллюстрации состояния данных, когда данные не имеют URI . [16]

Свойства [ править ]

Базы данных графов — мощный инструмент для графоподобных запросов. Например, вычисление кратчайшего пути между двумя узлами графа. Другие графоподобные запросы могут выполняться к базе данных графов естественным способом (например, вычисление диаметра графа или обнаружение сообщества).

Графики являются гибкими, что означает, что они позволяют пользователю вставлять новые данные в существующий график без потери функциональности приложения. Разработчику базы данных нет необходимости подробно планировать будущие варианты использования базы данных.

Хранение [ править ]

Базовый механизм хранения графовых баз данных может различаться. Некоторые зависят от реляционного механизма и «хранят» данные графа в таблице (хотя таблица является логическим элементом, поэтому этот подход накладывает другой уровень абстракции между базой данных графов, системой управления базой данных графов и физическими устройствами, на которых хранятся данные). действительно хранится). Другие используют для хранения хранилище «ключ-значение» или документо-ориентированную базу данных , что делает их по своей сути структурами NoSQL . Узел будет представлен как любое другое хранилище документов, но ребра, связывающие два разных узла, содержат внутри документа специальные атрибуты; атрибуты _from и _to.

Смежность без индекса [ править ]

Производительность поиска данных зависит от скорости доступа от одного конкретного узла к другому. Поскольку смежность без индекса требует, чтобы узлы имели прямые физические адреса RAM и физически указывали на другие соседние узлы, это приводит к быстрому извлечению. Собственная графовая система со смежностью без индексов не должна проходить через какие-либо другие типы структур данных, чтобы найти связи между узлами. Непосредственно связанные узлы в графе сохраняются в кеше после извлечения одного из узлов, что делает поиск данных даже быстрее, чем при первом получении пользователем узла. Однако такое преимущество обходится дорого. Смежность без индексов снижает эффективность запросов, которые не используют обход графа . Собственные графовые базы данных используют смежность без индексов для обработки операций CRUD над хранимыми данными.

Приложения [ править ]

Распознано несколько категорий графиков по типу данных. Gartner предлагает пять основных категорий графиков: [17]

  • Социальный граф : речь идет о связях между людьми; примеры включают Facebook , Twitter и идею шести степеней разделения.
  • График намерений: касается рассуждений и мотивации.
  • График потребления: также известный как «график платежей», график потребления широко используется в розничной торговле. Компании электронной коммерции, такие как Amazon, eBay и Walmart, используют графики потребления для отслеживания потребления отдельных клиентов.
  • График интересов : отображает интересы человека и часто дополняется социальным графиком. У него есть потенциал следовать предыдущей революции в веб-организации, отображая Интернет по интересам, а не индексируя веб-страницы.
  • Мобильный график: строится на основе мобильных данных. Мобильные данные в будущем могут включать данные из Интернета, приложений, цифровых кошельков, GPS и устройств Интернета вещей (IoT).

Сравнение с реляционными базами данных [ править ]

Со времени публикации Эдгара Ф. Кодда в 1970 году статьи о реляционной модели , [18] реляционные базы данных стали де-факто отраслевым стандартом для крупномасштабных систем хранения данных. Реляционные модели требуют строгой схемы и нормализации данных , которая разделяет данные на множество таблиц и удаляет любые повторяющиеся данные в базе данных. Данные нормализуются для сохранения согласованности данных и поддержки транзакций ACID . Однако это накладывает ограничения на то, как можно запрашивать отношения.

Одним из мотивов разработки реляционной модели было достижение быстрого доступа к строкам. [18] Проблемы возникают, когда возникает необходимость формирования сложных связей между хранимыми данными. Хотя отношения можно анализировать с помощью реляционной модели, требуются сложные запросы, выполняющие множество операций соединения с множеством различных атрибутов в нескольких таблицах. При работе с реляционными моделями внешнего ключа при извлечении связей также следует учитывать ограничения , что приводит к дополнительным накладным расходам.

По сравнению с реляционными базами данных графовые базы данных часто работают быстрее для ассоциативных наборов данных. [ нужна цитата ] и более непосредственно сопоставляться со структурой объектно-ориентированных приложений. Они могут масштабироваться более естественно [ нужна цитата ] к большим наборам данных, поскольку они обычно не требуют операций соединения , которые часто могут быть дорогостоящими. Поскольку они меньше зависят от жесткой схемы, они позиционируются как более подходящие для управления специальными и изменяющимися данными с помощью развивающихся схем.

И наоборот, системы управления реляционными базами данных обычно быстрее выполняют одну и ту же операцию с большим количеством элементов данных, позволяя манипулировать данными в их естественной структуре. Несмотря на преимущества графовых баз данных и недавнюю популярность по сравнению с [ нужна цитата ] реляционных баз данных рекомендуется, чтобы сама графовая модель не была единственной причиной замены существующей реляционной базы данных. База данных на графе может стать актуальной, если будут доказательства повышения производительности на порядки и снижения задержки. [19]

Примеры [ править ]

Реляционная модель собирает данные вместе, используя информацию, содержащуюся в данных. Например, можно искать всех «пользователей», номер телефона которых содержит код города «311». Это можно сделать путем поиска в выбранных хранилищах данных или таблицах и поиска в выбранных полях номеров телефонов строки «311». В больших таблицах это может занять много времени, поэтому реляционные базы данных предлагают индексы , которые позволяют хранить данные в подтаблице меньшего размера, содержащей только выбранные данные и уникальный ключ (или первичный ключ) записи. Если номера телефонов проиндексированы, тот же поиск будет происходить в меньшей индексной таблице, собрав ключи соответствующих записей, а затем просматривая в основной таблице данных записи с этими ключами. Обычно таблица хранится таким образом, чтобы поиск по ключу был очень быстрым. [20]

не Реляционные базы данных по своей сути содержат идеи фиксированных связей между записями. Вместо этого связанные данные связываются друг с другом путем сохранения уникального ключа одной записи в данных другой записи. Например, таблица, содержащая адреса электронной почты пользователей, может содержать элемент данных с именем userpk, который содержит первичный ключ пользовательской записи, с которой он связан. Чтобы связать пользователей и их адреса электронной почты, система сначала ищет первичные ключи выбранных записей пользователей, затем ищет эти ключи в userpkстолбец в таблице электронной почты (или, что более вероятно, их индекс), извлекает данные электронной почты, а затем связывает записи пользователя и электронной почты, чтобы создать составные записи, содержащие все выбранные данные. Эта операция, называемая соединением , может быть дорогостоящей в вычислительном отношении. В зависимости от сложности запроса, количества объединений и индексации различных ключей системе, возможно, придется выполнить поиск по нескольким таблицам и индексам, а затем отсортировать их все для сопоставления. [20]

Напротив, графовые базы данных напрямую хранят связи между записями. Вместо того, чтобы найти адрес электронной почты путем поиска ключа пользователя в userpkстолбец, запись пользователя содержит указатель, который напрямую ссылается на запись адреса электронной почты. То есть, выбрав пользователя, указатель можно перейти непосредственно к записям электронной почты, нет необходимости искать в таблице электронной почты, чтобы найти соответствующие записи. Это может исключить дорогостоящие операции соединения. Например, если искать все адреса электронной почты пользователей с кодом города «311», система сначала выполнит обычный поиск, чтобы найти пользователей с кодом «311», а затем получит адреса электронной почты, перейдя по ссылкам, найденным в эти записи. Реляционная база данных сначала найдет всех пользователей в «311», извлечет список первичных ключей, выполнит еще один поиск любых записей в таблице электронной почты с этими первичными ключами и свяжет совпадающие записи вместе. Для этих типов распространенных операций графовые базы данных теоретически будут работать быстрее. [20]

Истинная ценность графового подхода становится очевидной, когда выполняется поиск глубиной более одного уровня. Например, рассмотрим поиск пользователей, у которых есть «подписчики» (таблица, связывающая пользователей с другими пользователями) в коде города «311». В этом случае реляционная база данных должна сначала выполнить поиск всех пользователей с кодом города «311», затем выполнить поиск любого из этих пользователей в таблице подписчиков и, наконец, выполнить поиск в таблице пользователей, чтобы получить подходящих пользователей. Напротив, графовая база данных будет искать всех пользователей в «311», а затем переходить по обратным ссылкам через отношения подписчиков, чтобы найти пользователей-подписчиков. Это позволяет избежать нескольких поисков, просмотров и использования памяти, связанной с хранением всех временных данных из нескольких записей, необходимых для построения выходных данных. В терминах большой записи O этот запрос будет выглядеть так: время – т.е. пропорционально логарифму размера данных. Напротив, реляционная версия будет состоять из нескольких поиск плюс время, необходимое для объединения всех записей данных. [20]

Относительное преимущество извлечения графов растет с увеличением сложности запроса. Например, кто-то может захотеть узнать «тот фильм о подводных лодках с актером, который снимался в этом фильме, с другим актером, сыгравшим главную роль в « Унесенных ветром ». Для этого сначала требуется, чтобы система нашла актеров в «Унесенных ветром» , нашла все фильмы, в которых они снимались, нашла всех актеров во всех тех фильмах, которые не играли главных ролей в « Унесенных ветром» , а затем нашла все фильмы. они были там и, наконец, отфильтровали этот список до тех, в описаниях которых было слово «подводная лодка». В реляционной базе данных это потребовало бы нескольких отдельных поисков по таблицам фильмов и актеров, повторного поиска по фильмам о подводных лодках, поиска всех актеров в этих фильмах и последующего сравнения (больших) собранных результатов. Напротив, графовая база данных будет идти от «Унесенных ветром» к Кларку Гейблу , собирать ссылки на фильмы, в которых он снимался, собирать ссылки из этих фильмов на других актеров, а затем переходить по ссылкам этих актеров обратно на список фильмов. В полученном списке фильмов затем можно выполнить поиск по запросу «подводная лодка». Все это можно сделать с помощью одного поиска. [21]

Свойства добавляют к этой структуре еще один уровень абстракции , что также улучшает многие распространенные запросы. Свойства — это, по сути, метки, которые можно применять к любой записи, а в некоторых случаях и к краям. Например, можно было бы пометить Кларка Гейбла как «актера», что позволило бы системе быстро найти все записи, в которых указаны актеры, а не режиссер или оператор. Если метки по краям разрешены, можно также пометить отношения между « Унесёнными ветром» и Кларком Гейблом как «главные роли» и, выполнив поиск по людям, которые являются «главными» «актёрами» в фильме « Унесённые ветром» , В базе данных появятся Вивьен Ли , Оливия де Хэвилленд и Кларк Гейбл. Эквивалентный SQL-запрос должен будет полагаться на добавленные данные в таблицу, связывающую людей и фильмы, что усложнит синтаксис запроса. Эти типы меток могут улучшить производительность поиска при определенных обстоятельствах, но, как правило, они более полезны для предоставления дополнительных семантических данных конечным пользователям. [21]

Реляционные базы данных очень хорошо подходят для плоского расположения данных, где отношения между данными имеют глубину всего один или два уровня. Например, в базе данных бухгалтерского учета может потребоваться поиск всех позиций для всех счетов-фактур для данного клиента (запрос с тремя соединениями). Базы данных графов предназначены для наборов данных, которые содержат гораздо больше ссылок. Они особенно хорошо подходят для систем социальных сетей , где отношения «друзей» по сути ничем не ограничены. Эти свойства делают графовые базы данных естественным образом подходящими для типов поиска, которые все чаще встречаются в онлайн-системах и средах больших данных . По этой причине графовые базы данных становятся очень популярными для крупных онлайн-систем, таких как Facebook , Google , Twitter и подобных систем с глубокими связями между записями.

Для дальнейшей иллюстрации представьте себе реляционную модель с двумя таблицами: people стол (который имеет person_id и person_name столбец) и friend стол (с friend_id и person_id, который является внешним ключом из peopleстол). В этом случае поиск всех друзей Джека приведет к следующему SQL-запросу.

ВЫБЕРИТЕ   п2  .   person_name  
 ОТ   людей   p1  
 ПРИСОЕДИНЯЙТЕСЬ   другу   ON   (  p1.person_id  к   =   friend.person_id  к  ) 
 ПРИСОЕДИНЯЙТЕСЬ   людям   p2   ON   (  p2.person_id   =   friend.friend_id  ) 
 ГДЕ   p1  .   person_name   =   'Джек'  ; 

Тот же запрос можно перевести в --

  • SPARQL к базе данных графов RDF, , язык запросов стандартизированный W3C RDF Triple и Quad и используемый в нескольких хранилищах .
    • Полная форма
      ПРЕФИКС   foaf  :   <http://xmlns.com/foaf/0.1/> 
      
       SELECT   ?name 
       WHERE   {   s   foaf            ?  :  Person   .  
                ?s   Foaf  :  имя    «Джек»   .  
                ?s   foaf  :  знает   ?o   .  
                ?o   foaf  :  имя    ?имя   .  
              } 
      
    • Короткая форма
      ПРЕФИКС   foaf  :   <http://xmlns.com/foaf/0.1/> 
      
       SELECT   ?name 
       WHERE   {   ?s   foaf  :  name       "Джек"   ; 
                   пенопласт  :  знает       . 
                   ?o   foaf  :  имя    ?имя   . 
              } 
      
  • SPASQL, гибридный язык запросов к базе данных, расширяющий SQL с помощью SPARQL.
    ВЫБЕРИТЕ   людей  .   имя 
     FROM   ( 
            SPARQL   PREFIX   foaf  :   <http://xmlns.com/foaf/0.1/> 
                   SELECT   ?name 
                   WHERE   {   ?s   foaf  :  имя    "Джек"   ;  
                              foaf  :  знает   ?o   . 
                           ​​?o   foaf  :  имя    ?name   . 
                         } 
         )   КАК   люди   ; 
    

Приведенные выше примеры являются простой иллюстрацией базового запроса на взаимосвязь. Они концентрируют идею сложности запросов реляционных моделей, которая увеличивается с увеличением общего объема данных. Для сравнения, запрос к базе данных графов позволяет легко отсортировать граф отношений и представить результаты.

Есть также результаты, которые указывают на то, что простые, сжатые и декларативные запросы к графовым базам данных не обязательно обеспечивают хорошую производительность по сравнению с реляционными базами данных. В то время как графовые базы данных предлагают интуитивное представление данных, реляционные базы данных дают лучшие результаты, когда необходимы операции над множествами. [15]

Список графовых баз данных [ править ]

Ниже приводится список известных графовых баз данных:

имя текущий
версия
последний
выпускать
дата
(ГГГГ-ММ-ДД)
программное обеспечение
лицензия
язык программирования описание
Аэроспайк 7.0 2023-11-15 Собственный С Aerospike Graph — это хорошо масштабируемая база данных графов свойств с малой задержкой, построенная на проверенной платформе данных Aerospike в режиме реального времени. Aerospike Graph сочетает в себе корпоративные возможности базы данных Aerospike — наиболее масштабируемой базы данных NoSQL, работающей в режиме реального времени, — с моделью данных графа свойств с помощью графического вычислительного механизма Apache Tinkerpop. Разработчики получат встроенную поддержку языка запросов Gremlin, которая позволит им напрямую писать мощные бизнес-процессы.
АллегроГраф 7.0.0 2020-04 Собственная лицензия , клиенты: Eclipse Public License v1. C# , C , Common Lisp , Java , Python Структура описания ресурсов (RDF) и база данных графов.
Амазонка
Нептун
1.3.1.0 2024-03-06 [22] Собственный Не разглашается Amazon Neptune — это полностью управляемая графовая база данных от Amazon.com . Он используется как веб-сервис и является частью Amazon Web Services . Поддерживает популярные графовые модели, граф свойств и , W3C RDF а также соответствующие им языки запросов Apache TinkerPop, Gremlin , SPARQL и openCypher .
АнзоГраф БД 2.1 2020-02 Собственный С , С++ AnzoGraph DB — это ) с массовым параллелизмом, база данных в стиле Graph Online Analytics Processing ( GOLAP созданная для поддержки SPARQL и языка запросов Cypher для анализа триллионов взаимосвязей. База данных AnzoGraph предназначена для интерактивного анализа больших наборов данных семантической тройки , но также поддерживает помеченные свойства в соответствии с предложенными стандартами W3C . [23] [24] [25] [26]
АрангоДБ 3.9.1 2022-04 Бесплатный Apache 2 , проприетарный C++ , JavaScript , .NET , Java , Python , Node.js , PHP , Scala , Go , Ruby , Elixir Собственная графовая система базы данных NoSQL , разработанная ArangoDB Inc, поддерживающая три модели данных (ключ/значение, документы, графики), с одним ядром базы данных и унифицированным языком запросов, называемым AQL (язык запросов ArangoDB). Обеспечивает масштабируемость и высокую доступность за счет репликации между центрами обработки данных, автоматического сегментирования, автоматического переключения при сбое и других возможностей.
Azure Космос БД 2017 Собственный Не разглашается Мультимодальная база данных, поддерживающая концепции графов с использованием Apache Gremlin. языка запросов
Датастакс
Предприятие
График
v6.0.1 2018-06 Собственный Джава Распределенная масштабируемая база данных реального времени; поддерживает Tinkerpop и интегрируется с Cassandra. [27]
бесконечный график 2021.2 2021-05 Собственная , коммерческая, бесплатная версия на 50 ГБ. Java , C++ , язык запросов DO Распределенная, облачная и масштабируемая графовая база данных для сложных запросов и операций в реальном времени. Его объекты Vertex и Edge имеют уникальные 64-битные идентификаторы объектов, которые значительно ускоряют операции навигации по графу и поиска пути. Он поддерживает пакетные или потоковые обновления графика наряду с одновременными параллельными запросами. Язык запросов DO в InfiniteGraph позволяет выполнять как запросы на основе значений, так и сложные графические запросы. InfiniteGraph выходит за рамки графовых баз данных и поддерживает сложные объектные запросы.
ЯнусГраф 1.0.0 2023-10-21 [28] Апач 2 Джава Открытый исходный код, масштабируемый, распределенный по графовой базе данных кластера с несколькими компьютерами в рамках The Linux Foundation ; поддерживает различные серверные части хранилища ( Apache Cassandra , Apache HBase , Google Cloud Bigtable , Oracle Berkeley DB ); [29] поддерживает глобальную аналитику графических данных, составление отчетов, а также извлечение, преобразование и загрузку (ETL) посредством интеграции с платформами больших данных ( Apache Spark , Apache Giraph , Apache Hadoop ); поддерживает географический, числовой диапазон и полнотекстовый поиск через внешние индексные хранилища ( Elasticsearch , Apache Solr , Apache Lucene ). [30]
МаркЛогик 8.0.4 2015 Собственная . бесплатная версия для разработчиков Джава Многомодельная база данных NoSQL , в которой хранятся документы (JSON и XML) и данные семантических графов ( тройки RDF ); также имеет встроенную поисковую систему.
Microsoft SQL-сервер 2017 RC1 Собственный SQL /T-SQL, R , Python Предлагает возможности графовой базы данных для моделирования отношений «многие ко многим». Отношения графов интегрированы в Transact-SQL и используют SQL Server в качестве основной системы управления базами данных. [31]
ТуманностьГраф 3.7.0 2024-03 Версия с открытым исходным кодом находится под управлением Apache 2.0, Common Article 1.0. C++ , Go , Java , Python Масштабируемая база данных распределенных графов с открытым исходным кодом для хранения и обработки миллиардов вершин и триллионов ребер с задержкой в ​​миллисекунды. Он разработан на основе распределенной архитектуры без общего доступа и обеспечивает линейную масштабируемость. [32]
Neo4j 5.20 2024-05-23 [33] GPLv3 Community Edition, коммерческие варианты и варианты AGPLv3 для корпоративных и расширенных выпусков Java , .NET , JavaScript , Python , Go , Ruby , PHP , R , Erlang / Elixir , C / C++ , Clojure , Perl , Haskell Открытый исходный код, поддержка ACID, кластеризация высокой доступности для корпоративных развертываний, а также веб-администрирование, включающее полную поддержку транзакций и визуальный обозреватель графов связей между узлами; доступен из большинства языков программирования с помощью встроенного веб-интерфейса REST API и собственного протокола Bolt с официальными драйверами.
Онтотекст GraphDB 10.6.2 2024-03-08 [34] Проприетарные версии , версии Standard и Enterprise являются коммерческими , бесплатная версия — бесплатной. Джава Высокоэффективная и надежная база данных семантических графов с поддержкой RDF и SPARQL, также доступная в виде кластера высокой доступности. Интегрирует OpenRefine для приема и согласования табличных данных и поверх него для доступа к данным на основе онтологий . Подключается к Lucene , SOLR и Elasticsearch для полнотекстового и фасетного поиска , а также к Kafka для обработки событий и потоков. Поддерживает OGC GeoSPARQL . Обеспечивает доступ JDBC к Knowledge Graphs .
Открыть ссылку
Виртуоз
8.2 2018-10 Версия с открытым исходным кодом — GPLv2 , версия Enterprise — частная. С , С++ Многомодельная (гибридная) система управления реляционными базами данных (RDBMS), которая поддерживает как SQL, так и SPARQL для декларативных операций (определение данных и манипулирование данными) над данными, смоделированными в виде таблиц SQL и/или графиков RDF. Также поддерживает индексацию RDF-Turtle, RDF-N-Triples, RDF-XML, JSON-LD, а также сопоставление и создание связей (таблиц SQL или графиков RDF) из многочисленных типов документов, включая CSV, XML и JSON. Может быть развернут как локальный или встроенный экземпляр (как используется в NEPOMUK Semantic Desktop), сетевой сервер с одним экземпляром или сетевой сервер с несколькими экземплярами эластичного кластера без общего доступа. [35]
Oracle RDF-график; часть базы данных Oracle 21в 2020 Собственный СПАРКЛ , SQL Возможности RDF Graph как функции в многомодельной базе данных Oracle: RDF Graph: комплексное управление графами RDF W3C в базе данных Oracle с собственными логическими рассуждениями и трехуровневой защитой меток. ACID, высокая доступность, масштаб предприятия. Включает визуализацию, RDF4J и собственную конечную точку Sparql.
График свойств Oracle; часть базы данных Oracle 21в 2020 Собственный; Спецификация языка с открытым исходным кодом PGQL , Java, Python Граф свойств; состоящий из набора объектов или вершин и набора стрелок или ребер, соединяющих объекты. Вершины и ребра могут иметь несколько свойств, которые представлены в виде пар ключ-значение. Включает PGQL, SQL -подобный язык графовых запросов и механизм анализа в памяти (PGX), содержащий почти 60 готовых алгоритмов параллельных графов. Включает REST API и визуализацию графиков.
ОриентДБ 3.2.28 2024-02 Community Edition — Apache 2 , Enterprise Edition — коммерческая версия. Джава Второе поколение [ нужны разъяснения ] распределенная графовая база данных с гибкостью документов в одном продукте (т.е. это одновременно графовая база данных и документная NoSQL база данных); лицензируется по лицензии Apache 2 с открытым исходным кодом; и имеет полную ACID поддержку ; имеет репликацию с несколькими хозяевами; поддерживает режимы без схемы, полный и смешанный; имеет профилирование безопасности на основе пользователя и ролей; поддерживает язык запросов, аналогичный SQL . Он имеет HTTP REST и JSON API .
RedisGraph 2.0.20 2020-09 Доступная лицензия на исходный код Redis С База данных Property Graph с возможностью запроса в памяти, которая использует разреженные матрицы для представления матрицы смежности в графах и линейную алгебру для запроса графа. [36]
SAP Хана 2.0 СПС 05 2020-06 [37] Собственный C , C++ , Java , JavaScript и SQL -подобный язык. в памяти ACID Граф свойств, поддерживаемый транзакциями [38]
Спаркзее 5.2.0 2015 Проприетарное , коммерческое , бесплатное ПО для оценки, исследований и разработок. С++ Высокопроизводительная масштабируемая система управления базами данных от Sparsity Technologies; главной особенностью является производительность запросов при извлечении и исследовании больших сетей; имеет привязки для Java , C++, C# , Python и Objective-C ; Версия 5 — это первая графическая мобильная база данных .
Скррл
Предприятие
2.0 2015-02 Собственный Джава Распределенная графовая база данных, работающая в режиме реального времени, обеспечивающая безопасность на уровне ячеек и массовое масштабирование. [39]
Терадата
Астра
7 2016 Собственный Java , SQL , Python , C++ , R База данных массовой параллельной обработки (MPP), включающая запатентованные механизмы, поддерживающие собственный SQL, MapReduce , а также хранение и обработку графических данных; предоставляет набор библиотек аналитических функций и визуализации данных. [40]
ТерминусБД 11.0.6 2023-05-03 [41] Апач 2 Пролог , Rust , Python , JSON-LD Документоориентированный граф знаний; мощь графа корпоративных знаний и простота документов.
ТигрГраф 3.9.3 2023 [42] Собственный С++ Собственная графовая система управления базами данных с массивной параллельной обработкой (MPP) [43]
ТипБД 2.14.0 2022-11 [44] Бесплатная, GNU AGPLv3 , проприетарная Java , Python , JavaScript TypeDB — это строго типизированная база данных с богатой и логичной системой типов . TypeDB дает вам возможность решать сложные проблемы, а TypeQL — это язык запросов. TypeDB позволяет моделировать предметную область на основе логических и объектно-ориентированных принципов. TypeDB , состоящая из типов сущностей, отношений и атрибутов , а также иерархий типов, ролей и правил, позволяет вам мыслить на более высоком уровне, в отличие от соединяемых таблиц, столбцов, документов, вершин, ребер и свойств. [ повышение? ]

программирования запросов Языки графовых

  • AQL (язык запросов ArangoDB) : SQL-подобный язык запросов, используемый в ArangoDB как для документов, так и для графиков.
  • Язык запросов Cypher (Cypher): декларативный язык запросов к графу для Neo4j , который обеспечивает специальный и программный (подобный SQL) доступ к графу. [45]
  • GQL : предлагаемый стандартный язык запросов к графам ISO.
  • GraphQL : язык запросов и манипулирования данными с открытым исходным кодом для API. Dgraph реализует модифицированный язык GraphQL под названием DQL (ранее GraphQL+-).
  • Gremlin : язык графового программирования, который является частью проекта с открытым исходным кодом Apache TinkerPop. [46]
  • SPARQL : язык запросов для баз данных RDF, который может извлекать и манипулировать данными, хранящимися в формате RDF.
  • запросы обычного пути — теоретический язык для запросов к графовым базам данных.

См. также [ править ]

References[edit]

  1. ^ Bourbakis, Nikolaos G. (1998). Artificial Intelligence and Automation. World Scientific. p. 381. ISBN 9789810226374. Retrieved 2018-04-20.
  2. ^ Yoon, Byoung-Ha; Kim, Seon-Kyu; Kim, Seon-Young (March 2017). "Use of Graph Database for the Integration of Heterogeneous Biological Data". Genomics & Informatics. 15 (1): 19–27. doi:10.5808/GI.2017.15.1.19. ISSN 1598-866X. PMC 5389944. PMID 28416946.
  3. ^ Angles, Renzo; Gutierrez, Claudio (1 Feb 2008). "Survey of graph database models" (PDF). ACM Computing Surveys. 40 (1): 1–39. CiteSeerX 10.1.1.110.1072. doi:10.1145/1322432.1322433. S2CID 207166126. Archived from the original (PDF) on 15 August 2017. Retrieved 28 May 2016. network models [...] lack a good abstraction level: it is difficult to separate the db-model from the actual implementation
  4. ^ Silberschatz, Avi (28 January 2010). Database System Concepts, Sixth Edition (PDF). McGraw-Hill. p. D-29. ISBN 978-0-07-352332-3.
  5. ^ Robinson, Ian (2015-06-10). Graph Databases: New Opportunities for Connected Data. O'Reilly Media, Inc. p. 4. ISBN 9781491930861.
  6. ^ "Graph Databases Burst into the Mainstream". www.kdnuggets.com. Retrieved 2018-10-23.
  7. ^ Fan, Jing; Gerald, Adalbert (2014-12-25). The case against specialized graph analytics engines (PDF). Conference on Innovative Data Systems Research (CIDR).
  8. ^ Silberschatz, Avi (28 January 2010). Database System Concepts, Sixth Edition (PDF). McGraw-Hill. p. E-20. ISBN 978-0-07-352332-3.
  9. ^ Parker, Lorraine. "IMS Notes". vcu.edu. Retrieved 31 May 2016.
  10. ^ Angles, Renzo; Gutierrez, Claudio (1 Feb 2008). "Survey of graph database models" (PDF). ACM Computing Surveys. 40 (1): 1–39. CiteSeerX 10.1.1.110.1072. doi:10.1145/1322432.1322433. S2CID 207166126. Archived from the original (PDF) on 15 August 2017. Retrieved 28 May 2016. network models [...] lack a good abstraction level: it is difficult to separate the db-model from the actual implementation
  11. ^ Kuper, Gabriel M. (1985). The Logical Data Model: A New Approach to Database Logic (PDF) (Ph.D.). Docket STAN-CS-85-1069. Archived (PDF) from the original on June 30, 2016. Retrieved 31 May 2016.
  12. ^ "SAP Announces New Capabilities in the Cloud with HANA". 2014-10-22. Retrieved 2016-07-07.
  13. ^ Frisendal, Thomas (2017-09-22). "Property Graphs". graphdatamodeling.com. Retrieved 2018-10-23.
  14. ^ Das, S; Srinivasan, J; Perry, Matthew; Chong, Eugene; Banerjee, Jay (2014-03-24). "A Tale of Two Graphs: Property Graphs as RDF in Oracle". {{cite journal}}: Cite journal requires |journal= (help)
  15. ^ Jump up to: a b Have, Christian Theil; Jensen, Lars Juhl (2013-10-17). "Are graph databases ready for bioinformatics?". Bioinformatics. 29 (24): 3107–3108. doi:10.1093/bioinformatics/btt549. ISSN 1460-2059. PMC 3842757. PMID 24135261.
  16. ^ "Resource Description Framework (RDF): Concepts and Abstract Syntax". www.w3.org. Retrieved 2018-10-24.
  17. ^ "The Competitive Dynamics of the Consumer Web: Five Graphs Deliver a Sustainable Advantage". www.gartner.com. Retrieved 2018-10-23.
  18. ^ Jump up to: a b Codd, E. F. (1970-06-01). "A relational model of data for large shared data banks". Communications of the ACM. 13 (6): 377–387. doi:10.1145/362384.362685. ISSN 0001-0782. S2CID 207549016.
  19. ^ "Graph Databases, 2nd Edition". O’Reilly | Safari. Retrieved 2018-10-23.
  20. ^ Jump up to: a b c d "From Relational to Graph Databases". Neo4j.
  21. ^ Jump up to: a b "Examples where Graph databases shine: Neo4j edition", ZeroTurnaround
  22. ^ "Amazon Neptune Engine Version 1.3.1.0 (2024-03-06)". Docs.AWS.Amazon.com. Amazon Web Services. Retrieved 13 March 2024.
  23. ^ "In-memory massively parallel distributed graph database purpose-built for analytics". CambridgeSemantics.com. Retrieved 2018-02-20.
  24. ^ Rueter, John (15 February 2018). "Cambridge Semantics announces AnzoGraph graph-based analytics support for Amazon Neptune and graph databases". BusinessWire.com. Retrieved 20 February 2018.
  25. ^ Zane, Barry (2 November 2016). "Semantic graph databases: a worthy successor to relational databases". DBTA.com. Database Trends and Applications. Retrieved 20 February 2018.
  26. ^ "Cambridge Semantics announces AnzoGraph support for Amazon Neptune and graph databases". DBTA.com. Database Trends and Applications. 2018-02-15. Retrieved 2018-03-08.
  27. ^ Woodie, Alex (21 June 2016). "Beyond Titan: the evolution of DataStax's new graph database". Datanami.com. Retrieved 9 May 2017.
  28. ^ "release 1.0.0 · JanusGraph/janusgraph". GitHub.com. 21 October 2023.
  29. ^ "JanusGraph storage backends". docs.JanusGraph.org. Archived from the original on 2018-10-02. Retrieved 2018-10-01.
  30. ^ "JanusGraph index storages". docs.JanusGraph.org. Archived from the original on 2018-10-02. Retrieved 2018-10-01.
  31. ^ "What's new in SQL Server 2017". Docs.Microsoft.com. Microsoft Corp. 19 April 2017. Retrieved 9 May 2017.
  32. ^ "Nebula Graph debuts for big data analytics discovery". Datanami.com. 29 June 2020. Retrieved 2 December 2020.
  33. ^ "Release notes: Neo4j 5". Neo4j.com. Neo4j Graph Database Platform. Retrieved 2024-05-23.
  34. ^ "Release Notes". Ontotext GraphDB. 8 March 2024. Retrieved 8 Mar 2024.
  35. ^ "Clustering deployment architecture diagrams for Virtuoso". Virtuoso.OpenLinkSW.com. OpenLink Software. Retrieved 9 May 2017.
  36. ^ Ewbank, Key. "RedisGraph reaches general availability". I-Programmer.info.
  37. ^ "What's new in SAP HANA 2.0 SPS 05". blogs.SAP.com. 2020-06-26. Retrieved 2020-06-26.
  38. ^ Rudolf, Michael; Paradies, Marcus; Bornhövd, Christof; Lehner, Wolfgang. The graph story of the SAP HANA database (PDF). Lecture Notes in Informatics.
  39. ^ Vanian, Jonathan (18 February 2015). "NSA-linked Sqrrl eyes cyber security and lands $7M in funding". Gigaom.com. Gigaom. Archived from the original on 9 March 2019. Retrieved 9 May 2017.
  40. ^ Woodie, Alex (23 October 2015). "The art of analytics, or what the green-haired people can teach us". Datanami.com. Retrieved 9 May 2017.
  41. ^ "GitHub Releases". GitHub. Retrieved 2023-07-03.
  42. ^ "Release notes : TigerGraph : Docs". Docs.TigerGraph.com. TigerGraph. Retrieved 17 June 2022.
  43. ^ "The Forrester Wave™: graph data platforms, Q4 2020". AWS.Amazon.com. Amazon Web Services. 16 November 2020. Retrieved 16 November 2020.
  44. ^ "Release TypeDB 2.14.0 · vaticle/typedb". GitHub. Retrieved 2022-11-25.
  45. ^ Svensson, Johan (5 July 2016). "Guest View: Relational vs. graph databases: Which to use and when?". San Diego Times. BZ Media. Retrieved 30 August 2016.
  46. ^ TinkerPop, Apache. "Apache TinkerPop". Apache TinkerPop. Retrieved 2016-11-02.
Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 8759C0E3C899C4B76DBFAB93E2EA5F0F__1718705940
URL1:https://en.wikipedia.org/wiki/Graph_database
Заголовок, (Title) документа по адресу, URL1:
Graph database - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)