SciQL

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 13:09, 18 июня 2019.
SciQL
SciQL.png
Парадигма Мультипарадигмальный
Семейство Базы данных
Разработчики SciLens
Первый   появившийся 10 June 2011 (2011-06-10)
OS Кроссплатформенный
Портал: projects.cwi.nl
Под влиянием
SQL:2003

SciQL – язык SQL-запросов. Он обеспечивает прозрачный симбиоз интерпретации массивов, множеств и последовательностей, используя четкое отделение математического объекта от его базовой реализации [Источник 1]

Основная информация

Вычислительная парадигма массивов широко распространена в большинстве наук и привлекает внимание сообщества исследователей баз данных на протяжении многих лет. Объектно-ориентированные системы баз данных 90-х годов позволили рекурсивно использовать любой тип коллекции, а многомерные системы баз данных взяли его в качестве отправной точки для своего проектирования. Тем не менее парадигма массива, взятая в отдельности, недостаточна для создания полноценной научной информационной системы. Такая система должна сочетать измерения со статическими и производными метаданными об инструментах и наблюдениях. Язык SciQL, представленный в этой статье, восполняет этот пробел. Несоответствие между потребностями приложений и технологиями баз данных имеет давнюю историю. Основные проблемы, с которыми сталкиваются в науке реляционные системы, можно трактовать как:

  • Сложность написания сложных выражений на основе массива в SQL.
  • Массивы не являются объектами первого класса.
  • Потребление терабайтов данных происходит слишком медленно.


Традиционная СУБД несет слишком много лишних расходов. Большая часть научной обработки включает использование стандартных библиотек, например LINPACK. Их взаимодействие с базой данных часто ограничивается упрощенным средством импорта / экспорта данных.

Требуется язык запросов, обеспечивающий настоящий симбиоз семантики TABLE и ARRAY в контексте существующих внешних программных библиотек. TABLE и ARRAY отличаются семантически простым способом. TABLE обозначает (множественный) набор кортежей, в то время как ARRAY обозначает (редко) индексируемый набор кортежей, называемых ячейками. Научные открытия все больше полагаются на способность эффективно измельчать огромные объемы экспериментальных данных с использованием технологий баз данных. Чтобы преодолеть разрыв между потребностями областей исследований в области данных и современными технологиями СУБД, был введен SciQL. SciQL - это первый основанный на SQL язык декларативных запросов для научных приложений, в котором в качестве основных элементов используются таблицы и массивы благодаря расширению инфраструктуры SQL: 2003 по трем инновационным направлениям:

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

Массивы в SciQL идентифицируются с помощью явно названных атрибутов, индекса, с использованием ограничений. В отличие от TABLE, каждая комбинация индексов обозначает ячейку массива, неиндексное значение которой явно хранится или выводится из предложения атрибута(ов) DEFAULT. Размер массива может быть фиксированным, или неограниченным, в зависимости от исходных данных. Тип индекса может быть любым из основных скалярных типов. Значение атрибута индекса NULL обозначает отсутствие ячейки. На логическом уровне эта разновидность неотличима от атрибутов с нулевыми значениями, но их базовая реализация может сильно отличаться.

Важная операция состоит в том, чтобы вырезать массив данных для дальнейшей обработки. Схема управления окнами в SQL: 2003 является шагом в этом направлении. Первоначально он был введен для лучшей обработки временных рядов в хранилищах бизнес-данных и интеллектуального анализа данных. В SciQL делается еще один шаг вперед, предоставляя простую в использовании языковую функцию для идентификации групп ячеек на основе их позиционных отношений. Такие группы ячеек образуют шаблон, называемый плитой, который может впоследствии использоваться в предложении GROUP BY, чтобы получить все возможные значения ocv для статистической агрегации. [Источник 2]

Применение

SciQL используется в проекте PlanetData и TELEIOS Европейского Союза вместе с технологией Data Vault, обеспечивая прозрачный доступ к большим хранилищам научных данных. Хранилища данных отображают данные из распределенных репозиториев в массивы SciQL, что позволяет улучшить обработку пространственно-временных данных в MonetDB. SciQL будет расширен для проекта «Человеческий мозг».

Заключение

SciQL был разработан, чтобы снизить затраты для научных приложений с использованием систем баз данных. Язык стоит на плечах многих предыдущих попыток. SciQL сохраняет версию SQL: 2003, используя минимальные улучшения синтаксиса и семантики языка. В большинстве случаев краткое описание в SciQL приближает симбиоз реляционной и массивной обработки на один шаг к реальности. Дальнейшая работа включает разработку формальной семантики для расширений массивов, разработку адаптивной схемы хранения и исследование производительности в функционально завершенных научных приложениях. SciQL - это новый подход к созданию декларативной языковой структуры для преодоления разрыва между моделью отношений, преобладающей в РСУБД, и моделью массивов, лежащих в основе большинства математических пакетов. Это значительно упрощает выражение сложных научных алгоритмов, оставляя оптимизацию и выполнение ядру базы данных.

Источники

  1. SciQL publications // Bridging the Gap between Science and Relational DBMS. URL: https://homepages.cwi.nl/~zhang/papers/ideas11.pdf (дата обращения: 02.04.2019).
  2. SciQL publications // A Query Language for Science Applications. URL: https://homepages.cwi.nl/~zhang/papers/arraydb11.pdf (дата обращения: 02.04.2019).