HTSQL - HTSQL

Язык структурированных запросов гипертекста (HTSQL) - это управляемый схемой язык запросов URI-to-SQL, который принимает запрос через HTTP , преобразует его в запрос SQL , выполняет запрос к базе данных и возвращает результаты в наиболее подходящем формате. для пользовательского агента (CSV, HTML и т. д.). Язык HTSQL реализован на «серверах HTSQL», которые используют HTSQL для преобразования веб-запросов в эквивалентный SQL, выполняет запросы в серверной базе данных и возвращает результаты в XML , HTML. , CSV , JSON или YAML . Текущая реализация по состоянию на апрель 2010 года использует Python и работает с базами данных PostgreSQL , MySQL , SQLite , Oracle и Microsoft SQL Server .

HTSQL был прототипирован и разработан Кларком Эвансом (который предложил YAML в 2001 году) и реализован Кириллом Симоновым, оба из Prometheus Research .

Объем

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

Синтаксис

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

Примеры

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

/program{school.name, title}

Результатом этого запроса из системы командной строки HTSQL является:

program
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
school.name               | title
--------------------------+-----------------------------------
School of Art and Design  | Post Baccalaureate in Art History
School of Art and Design  | Bachelor of Arts in Art History
School of Art and Design  | Bachelor of Arts in Studio Art
School of Business        | Graduate Certificate in Accounting

...

Агрегатные выражения можно использовать, когда в базе данных есть отношения «многие к одному».

/school{name, count(program), count(department)}

Результат показывает количество (количество) программ и отделов в каждой школе:

school
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
name                     | count(program) | count(department)
-------------------------+----------------+------------------
School of Art and Design | 3              | 2
School of Business       | 5              | 3
College of Education     | 7              | 2
School of Engineering    | 8              | 4

Приложения

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

HTSQL также может использоваться «случайными программистами», такими как аналитики данных и разработчики пользовательского интерфейса. Разработчики HTSQL утверждают, что помимо более удобочитаемых HTTP-запросов, он помогает избежать распространенных ошибок SQL, таких как случайные соединения.

Версии и лицензирование

HTSQL следует модели двойной лицензии. Программное обеспечение можно бесплатно использовать с реляционными базами данных с открытым исходным кодом, включая MySQL и PostgreSQL . Исходный код доступен на сайте bitbucket .

Также доступна коммерческая версия HTSQL, совместимая с коммерческими базами данных, такими как Oracle и Microsoft SQL Server .

Подобные инициативы

Ссылки

внешние ссылки