В чем разница между аллегрографом и таблицей mysql из пяти столбцов?

Аллегрограф - это, по сути, тройной магазин (на самом деле пять магазинов) RDF. Тогда почему мы не можем создать таблицу MySQL с пятью столбцами и сохранить в них тройки.?

Какие функции имеет AG над такой таблицей MySql?

2 ответа

Решение

Проще говоря, он поддерживает SPARQL

SPARQL является языком запросов для RDF, и его семантика сильно отличается от SQL, есть инструменты для преобразования SPARQL в запросы SQL, но производительность зачастую очень низкая. Кроме того, существует множество функций спецификации SPARQL (особенно встроенных функций), которые не имеют эквивалента в MySQL и поэтому должны либо соблюдаться хранимыми процедурами / пользовательскими функциями, либо выполняться в коде.

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

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

Если все, что вас волнует, это сохранение и загрузка RDF-троек в / из базы данных SQL, то для вас может подойти наивный подход с одной таблицей. Если вы действительно хотите сделать что-то полезное, вам нужна более сложная схема базы данных SQL или правильное хранилище RDF, например AllegroGraph.

AllegroGraph устанавливает промышленный стандарт для ACID-совместимых графовых баз данных RDF и оптимизирован для приложений OLTP, рассуждений и бизнес-аналитики, использующих семантические технологии.

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

  • Как описано в другом ответе, вы не получите SPARQL (язык запросов семантического мира) или возможность создавать свои собственные расширения SPARQL.
  • MySQL оптимизирован для сильно нормализованных схем баз данных, а не для одной таблицы большой таблицы и нескольких самостоятельных объединений на запрос.
  • AllegroGraph поддерживает несколько языков программирования на стороне сервера (Javascript, Prolog, Lisp), которые все оптимизированы для этого типа магазина.
  • AllegroGraph поддерживает данные RDF, а также расширения Geo, расширения Social Network Analysis одновременно в одном наборе данных.
  • AllegroGraph поддерживает рассуждения по наборам данных RDF-графа (RDFS ++)
  • AllegroGraph поддерживает трехуровневую безопасность.
  • AllegroGraph поддерживает семантические библиотеки Java Jena и Sesame, а также интерфейс Python, C#, Clojure, Lisp, Ruby, REST
  • Как и любая корпоративная база данных, AllegroGraph также поддерживает резервное копирование в онлайн-хранилище, репликацию, горячее резервирование, восстановление на определенный момент времени.
Другие вопросы по тегам