HTSQL
Язык структурированных запросов гипертекста (HTSQL) — это управляемый схемой язык запросов URI-SQL, который принимает запрос через HTTP , преобразует его в запрос SQL , выполняет запрос к базе данных и возвращает результаты в наиболее подходящем формате. для пользовательского агента (CSV, HTML и т. д.) [1] Язык HTSQL реализован на «серверах HTSQL», которые используют HTSQL для преобразования веб-запросов в эквивалентный SQL, выполняют запросы к серверной базе данных и возвращают результаты в XML , HTML , CSV , JSON или YAML форматах . Текущая реализация по состоянию на апрель 2010 года использует Python и работает с базами данных PostgreSQL , MySQL , SQLite , Oracle и Microsoft SQL Server .
HTSQL был прототипирован и разработан Кларком Эвансом (который предложил YAML в 2001 году). [2] ) and implemented by Kirill Simonov, [3] оба из Prometheus Research .
Объем
[ редактировать ]Целевая аудитория HTSQL — бизнес-пользователи, не являющиеся программистами SQL. Он стремится упростить неинтуитивные реляционные запросы, такие как агрегаты и проекции. Целью является не полнота репликации SQL, а простота и интуитивность. HTSQL позволяет пользователям, знакомым с данными, но не знакомым с синтаксисом SQL, прямой доступ к базе данных, минуя приложение. [4]
Синтаксис
[ редактировать ]HTSQL использует синтаксис запросов на основе URI. Запросы обычно начинаются с одной таблицы, перед которой может быть указана схема, за которой следует выражение фильтра для ограничения количества возвращаемых строк. [5]
Примеры
[ редактировать ]Объединения между таблицами можно выполнять, указав имя столбца, которому предшествует имя таблицы. В этом примере запрашивается название образовательной программы из таблицы программ и название школы из таблицы школ:
/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, для нетехнических пользователей. [5]
HTSQL также может использоваться «случайными программистами», такими как аналитики данных и разработчики пользовательского интерфейса. Разработчики HTSQL утверждают, что помимо более читаемых запросов на основе HTTP, он помогает избежать распространенных ошибок SQL, таких как случайные соединения. [6]
Версии и лицензирование
[ редактировать ]HTSQL следует модели двойной лицензии. Программное обеспечение можно бесплатно использовать с реляционными базами данных с открытым исходным кодом, включая MySQL и PostgreSQL . [7] Исходный код доступен на сайте bitbucket . [8]
Также доступна коммерческая версия HTSQL, совместимая с коммерческими базами данных, такими как Oracle и Microsoft SQL Server . [1]
Подобные инициативы
[ редактировать ]Ссылки
[ редактировать ]- ^ Перейти обратно: а б "Дом" . htsql.org .
- ^ ЯМЛ
- ^ «Язык структурированных гипертекстовых запросов» . Проверено 4 мая 2023 г.
- ^ «Введение — HTSQL — документация по языку структурированных запросов гипертекста v1.0» . www.htsql.org . Архивировано из оригинала 11 июля 2010 года.
- ^ Перейти обратно: а б «Руководство по HTSQL: язык структурированных запросов гипертекста» . Clarkevans.com . Архивировано из оригинала 8 июля 2011 года.
- ^ «HTSQL — язык запросов для случайных программистов» .
- ^ «Разрешающая лицензия HTSQL» . htsql.org . Проверено 4 мая 2023 г.
- ^ «прометей/htsql/источник — bitbucket.org» . bitbucket.org . Архивировано из оригинала 26 сентября 2010 года.