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

редактировать

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

Графовые базы данных - это тип базы данных NoSQL, созданный для предотвращения ограничений реляционных баз данных. В то время как модель графа явно определяет зависимости между узлами данных, реляционная модель и другие модели базовых данных NoSQL связывают данные неявными связями. Другими словами, отношения - это первоклассный гражданин в базе данных графа, и их можно маркировать, направлять и задавать свойства. Это сравнивается с реляционными подходами, которые подразумеваются и уточняются во время выполнения. Базы данных графов похожи на базы данных сетевые модели 1970-х годов в том, что обе они предоставляют общие графы, но базы данных сетевые модели работают на более низком уровне абстракции и не имеют простого обхода по цепочке ребер.

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

Для получения данных из базы данных графа требуется язык запросов, отличный от SQL, который был разработан для обработки данных в реляционной системе и поэтому не может «элегантно» дескриптор обхода графа. По состоянию на 2017 год принят один универсальный язык запросов графов, так как SQL был принят для реляционных баз данных, и существует большое количество систем, чаще всего связанных с одним продуктом. Были предприняты некоторые усилия по стандартизации, что привело к созданию языков запросов от различных поставщиков, таких как Gremlin, SPARQL и Cypher. Помимо интерфейса запросов языков, доступ к некоторым базам данных графов осуществляется через интерфейс прикладного программирования (API).

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

Содержание
  • 1 История
  • 2 Фон
  • 3 Графические модели
    • 3.1 Граф помеченных свойств
    • 3.2 Структура описания ресурсов (RDF)
  • 4 Свойства
    • 4.1 Хранилище
    • 4.2 Смежность без индекса
    • 4.3 Типы графиков
  • 5 Сравнение с реляционными базами данных
    • 5.1 Примеры
  • 6 Список баз данных графов
  • 7 Языки программирования запросов для графиков
  • 8 См. Также
  • 9 Ссылки
История

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

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

Помеченные графы могли быть представлены в качестве базовых данных с середины 1980-х годов, например в качестве логической модели данных.

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

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

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

Предпосылки
Графические базы данных используют узлы, свойства и ребра.

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

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

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

Граф помеченных свойств

Модель графа помеченных представлен набором узлов, отношений, свойств и меток. Оба узла и их отношения имеют имена и могут хранить свойства, представленные парами «ключ / значение» . Узлы можно пометить для группировки. Ребра, обеспечивающие отношения, обладают двумя качествами: они всегда имеют начальный узел и конечный узел и оказываются; превращение графа в ориентированный граф. Отношения также могут иметь свойства. Это предоставляет для дополнительных метаданных и семантики взаимосвязей узлов. Прямое хранение отношений позволяет константное время обход.

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

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

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

. Он используется в протоколе Open Graph Facebook, чтобы «разрешить любую веб-страницу. иметь ту же функциональность, что и любой другой объект на Facebook »и Семантическая сеть.

Свойства

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

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

Хранилище

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

Смежность без индекса

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

Типы графиков

Есть несколько типов графиков, которые можно разделить на категории. Gartner предлагает пять широких категорий графиков:

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

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

Традиционно базы данных разработаны с использованием реляционной модели, данные которой нормализованы для поддержки транзакций ACID. В процессе нормализации данных удаляются все повторяющиеся данные в базе данных. Цель нормализации данных - сохранить согласованность данных. Реляционная модель применяет транзакции ACID, разделяя данные на множество таблиц.

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

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

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

Примеры

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

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

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

Истинная ценность графового подхода становится очевидной, когда выполняется поиск, глубина которого превышает один уровень. Например, рассмотрим поиск пользователей, у которых есть «подписчики» (таблица, связывающая пользователей с другими пользователями) в коде зоны «311». В этом случае реляционная база данных должна сначала выполнить поиск всех пользователей с кодом области в «311», затем выполнить поиск в таблице подписчиков для любого из этих пользователей, а затем, наконец, выполнить поиск в таблице пользователей, чтобы найти подходящих пользователей. Напротив, графическая база данных будет искать всех пользователей в «311», а затем следовать по обратным ссылкам через отношения подписчика, чтобы найти пользователей-подписчиков. Это позволяет избежать нескольких поисков, просмотров и использования памяти, связанного с хранением всех временных данных из нескольких записей, необходимых для построения вывода. В терминах нотации большого O этот запрос будет иметь вид O (log ⁡ n) + O (1) {\ displaystyle O (\ log n) + O (1)}{\ displaystyle O (\ log n) + O (1)} время - т.е. пропорционально логарифму размера данных. Напротив, реляционная версия будет состоять из нескольких O (log ⁡ n) {\ displaystyle O (\ log n)}O (\ log n) поисков плюс время, необходимое для объединения всех записей данных.

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

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

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

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

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

Тот же запрос может быть переведен на -

  • Cypher, базу данных графа язык запросов
    MATCH (p1: person) - [: FRIEND-WITH] - (p2: person) WHERE p1.name = "Jack" RETURN p2.name
  • SPARQL, база данных RDF-графов язык запросов, стандартизированный W3C и используемый в нескольких RDF Triple и Quad хранит
    • длинную форму
      PREFIX foaf: SELECT? Name WHERE {? Sa foaf: Person. ? s foaf: имя "Джек". ? s foaf: знает? о. ? o foaf: имя? имя. }
    • Краткая форма
      ПРЕФИКС foaf: SELECT? Name WHERE {? S foaf: name "Джек"; foaf: знает? ? o foaf: имя? имя. }
  • SPASQL, гибридный язык запросов к базе данных, который расширяет SQL с помощью SPARQL
    SELECT people.name FROM (SPARQL PREFIX foaf: SELECT? Name WHERE {? S foaf : name "Джек"; foaf: знает? o.? o foaf: name? name.}) КАК люди;

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

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

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

Ниже приводится список примечательных Графические базы данных:

ИмяВерсияЛицензия Язык Описание
AllegroGraph 7.0.0 (апрель 2020 г.)Собственный, клиенты: Общественная лицензия Eclipse v1C#, C, Common Lisp, Java, Python Структура описания ресурсов (RDF) и база данных графов
Amazon Neptune 1.0.1.0.200237.0 (сентябрь 2018 г.)Собственная Не разглашаетсяAmazon Neptune - это полностью управляемая графическая база данных от Amazon.com. Он используется как веб-сервис и является частью Amazon Web Services. Поддерживает популярные модели графов свойств graph и W3C RDF и их соответствующие языки запросов Apache TinkerPop Gremlin и SPARQL.
AnzoGraph DB 2.1 (февраль 2020 г.)Собственная база данных C, C ++ AnzoGraph DB - это массивно-параллельная собственная база данных в стиле GOLAP (Graph Online Analytics Processing), созданная для поддержки SPARQL и Cypher Query Language для анализа триллионов взаимосвязей. AnzoGraph DB предназначена для интерактивного анализа больших наборов данных семантической тройки , но также поддерживает помеченные свойства в соответствии с предлагаемыми стандартами W3C.
ArangoDB 3.7.2 / (август 21, 2020)Бесплатно Apache 2, Собственный,C ++, JavaScript, .NET, Java, Python, Node.js, PHP, Scala, Go, Ruby, Elixir NoSQL собственная многомодельная система баз данных, разработанная ArangoDB Inc. Система баз данных поддерживает три важные модели данных (ключ / значение, документы, графики) с одним ядром базы данных и унифицированным языком запросов под названием AQL (ArangoDB Query Language)
DataStax Enterprise Graphv6.0.1 (июнь 2018 г.)Собственная Java Распределенная масштабируемая база данных в реальном времени; поддерживает Tinkerpop и интегрируется с Cassandra
Grakn Core 1.8.2Free, GNU AGPLv3 Java Grakn является открытым исходным кодом, распределенный граф знаний для систем, ориентированных на знания. Это эволюция реляционной базы данных для сильно взаимосвязанных данных, поскольку она предоставляет схему уровня концепции, которая полностью реализует модель сущность-связь (ER). Однако схема Гракна - это система типов, которая реализует принципы представления знаний и рассуждений. Это позволяет декларативному языку запросов Grakn (язык запросов Grakn) предоставить более выразительный язык моделирования и способность выполнять логические рассуждения над большими объемами сложных данных. Фактически Grakn представляет собой базу знаний для систем искусственного интеллекта и систем когнитивных вычислений.
InfiniteGraph 3.0 (январь 2013 г.)проприетарных, коммерческий Java Распределенный и облачный
JanusGraph 0.5.2 (3 мая 2020 г.)Apache 2 Java Открытый исходный код, масштабируемый, распределенный по база данных графа кластера с несколькими машинами под The Linux Foundation ; поддерживает различные серверы хранения (Apache Cassandra, Apache HBase, Google Cloud Bigtable, Oracle BerkeleyDB ); поддерживает глобальную аналитику графических данных, отчетность и ETL за счет интеграции с платформами больших данных (Apache Spark, Apache Giraph, Apache Hadoop ) ; поддерживает географический, числовой диапазон и полнотекстовый поиск через внешние хранилища индексов (Elasticsearch, Apache Solr, Apache Lucene ).
MarkLogic 8.0.4 (2015 г.))Собственная, бесплатная версия для разработчиковJava Многомодельная NoSQL база данных, в которой хранятся документы (JSON и XML) и данные семантического графа (RDF троек); также имеет встроенную поисковую систему
Microsoft SQL Server 2017RC1Собственный SQL / T-SQL, R, Python Предлагает возможности графической базы данных для моделирования отношений "многие ко многим". Отношения графов интегрированы в Transact-SQL и используют SQL Server в качестве основной системы управления базами данных.
Neo4j 4.1.2 (сентябрь 2020 г.)GPLv3 Community Edition, коммерческий и AGPLv 3 варианта для корпоративной и расширенной редакцийJava, .NET, JavaScript, Python, Go,

Ruby, PHP, R, Erlang / Elixir, C /C ++, Клоджур e, Perl, Haskell

с открытым исходным кодом, поддерживает ACID, имеет кластеризацию высокой доступности для корпоративных развертываний и поставляется с веб-администрированием, которое включает полную поддержку транзакций и визуальный обозреватель графа узловых связей; доступный из большинства языков программирования с использованием встроенного интерфейса REST веб-API и проприетарного протокола Bolt с официальными драйверами.
OpenLink Virtuoso 8.2 (октябрь 2018 г.)Open Source Edition - это GPLv 2, Enterprise Edition - проприетарный C, C ++ Multi -model (гибридная) система управления реляционными базами данных (RDBMS), которая поддерживает как SQL, так и SPARQL для декларативных (определение данных и манипулирование данными) операций с данными, смоделированными в виде таблиц SQL и / или графиков RDF. Также поддерживает индексацию RDF-Turtle, RDF-N-Triples, RDF-XML, JSON-LD, а также отображение и создание отношений (таблиц SQL или графиков RDF) из множества типов документов, включая CSV, XML и JSON. Может быть развернут как локальный или встроенный экземпляр (как используется в NEPOMUK Semantic Desktop), сетевой сервер с одним экземпляром или сетевой сервер с несколькими экземплярами эластичного кластера без совместного использования
Oracle Spatial и График ; часть Oracle Database 12.1.0.2 (2014)Собственная Java, PL / SQL Возможности Property Graph и RDF Graph как функции многомодельного Oracle База данных:
  1. График свойств - состоящий из набора объектов или вершин и набора стрелок или ребер, соединяющих объекты. Вершины и ребра могут иметь несколько свойств, которые представлены парами "ключ-значение". Включает PGQL, язык запросов к графам, похожий на SQL, и аналитический механизм в памяти (PGX) с более чем 50 предварительно созданными алгоритмами параллельных графов
  2. Семантический граф RDF: комплексное управление графами RDF W3C в Oracle Database с собственным логическим обоснованием и тройным -уровень безопасности метки.
OrientDB 3.0.28 (февраль 2020 г.)Community Edition - это Apache 2, Enterprise Edition - коммерческий Java База данных с распределенными графами второго поколения с гибкостью документов в одном продукте (т.е. это и база данных графов, и база данных NoSQL документов); под лицензией Apache 2 с открытым исходным кодом; и имеет полную поддержку ACID ; он имеет репликацию с несколькими мастерами и сегментирование ; поддерживает режимы без схемы, полный и смешанный; имеет профили безопасности на основе пользователей и ролей; поддерживает язык запросов, аналогичный SQL. It has HTTP REST and JSON API.
RedisGraph 2.0.20 (Sep 2020)Redis Source Available LicenseC In-memory, queryable Property Graph database which uses sparse matrices to represent the adjacency matrix in graphs and linear algebra to query the graph.
SAP HANA 2.0 SPS 05 (June 2020)Proprietary C, C++, Java, JavaScript SQL -like languageIn-memory ACID transaction supported property graph
Sparksee 5.2.0 (2015)Proprietary, commercial, freeware for evaluation, research, developmentC++ High-performance scalable database management system from Sparsity Technologies; main trait is its query performance for retrieving and exploring large networks; has bindings for Java, C++, C#, Python, and Objective-C ; version 5 is the first graph mobile database
Sqrrl Enterprise2.0 (February 2015)Proprietary Java Distributed, real-time graph database featuring cell-level security and mass-scalability
Teradata Aster 7 (2016)Proprietary Java, SQL, Python, C++, R MPP database incorporating patented engines supporting native SQL, MapReduce and graph data storage and manipulation; provides a set of analytic function libraries and data visualization
TerminusDB 2.0.5 (2020)GPLv3 Prolog, Rust, JSON-LD Model driven graph database designed for knowledge graph representation
Graph query-programming languages
  • AQL (ArangoDB Query Language) : a SQL-like query language used in ArangoDB как для документов, так и для графиков
  • Cypher Query Language (Cypher): запрос графа декларативный язык для Neo4j, который включает специальные и программные (SQL- например) доступ к графу.
  • GraphQL : язык запроса данных с открытым исходным кодом и язык управления для API-интерфейсов
  • Gremlin : язык программирования графов, который является частью проекта с открытым исходным кодом Apache TinkerPop
  • SPARQL : язык запросов для баз данных RDF, который может извлекать и обрабатывать данные, хранящиеся в формате RDF
См. Также
Ссылки
Последняя правка сделана 2021-05-22 05:12:44
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте