В чем разница между аллегрографом и таблицей 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 также поддерживает резервное копирование в онлайн-хранилище, репликацию, горячее резервирование, восстановление на определенный момент времени.