Язык структурированных запросов гипертекста (HTSQL) - это язык запросов URI-to-SQL, управляемый схемой, который принимает запрос через HTTP, преобразует его в запрос SQL, выполняет запрос к базе данных и возвращает результаты в формате, наиболее подходящем для пользовательского агента (CSV, HTML и т. д.). Язык HTSQL реализован на "HTSQL серверы, "whic h использовать HTSQL для преобразования веб-запросов в эквивалентный SQL, выполняет запросы в серверной базе данных и возвращает результаты в формате XML, HTML, CSV, Форматы JSON или YAML. Текущая реализация по состоянию на апрель 2010 года использует Python и работает с PostgreSQL, MySQL, SQLite, Oracle, и базы данных Microsoft SQL Server.
HTSQL был прототипирован и разработан Кларком Эвансом (который предложил YAML в 2001 году) и реализован Кириллом Симоновым, оба.
Целевая аудитория HTSQL - это бизнес-пользователи, не являющиеся программистами SQL. Он пытается упростить неинтуитивные реляционные запросы, такие как агрегаты и прогнозы. Целью является не полнота репликации SQL, а простота и интуитивность. HTSQL позволяет пользователям, которые знакомы с данными, но не с синтаксисом SQL, напрямую обращаться к базе данных, минуя приложение.
HTSQL использует синтаксис запросов на основе URI. Запросы обычно начинаются с одной таблицы, с необязательным префиксом схемы и последующим выражением фильтра для ограничения количества возвращаемых строк.
Соединения между таблицами могут быть выполнены с помощью ссылки имя столбца, которому предшествует имя таблицы. В этом примере запрашивается название образовательной программы из таблицы программ и название школы из таблицы школ:
/program{school.name, title}
Результатом этого запроса из системы командной строки HTSQL является :
программа ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~ school.name | название -------------------------- + ---------------------- ------------- Школа искусства и дизайна | Пост-бакалавриат в Художественно-исторической школе искусства и дизайна | Бакалавр искусств в школе истории искусств и дизайна | Бакалавр искусств в Studio Art School of Business | Сертификат о высшем образовании в области бухгалтерского учета...
Агрегатные выражения могут использоваться, когда в базе данных есть отношения "многие к одному".
/ school {имя, количество (программа), количество (отдел)}
Результат показывает количество (количество) программ и отделов в каждой школе:
школа ~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ имя | счет (программа) | count (отдел) ------------------------- + ---------------- + --- --------------- Школа искусства и дизайна | 3 | 2 Школа бизнеса | 5 | 3 Педагогический колледж | 7 | 2 инженерная школа | 8 | 4
HTSQL можно использовать для специальных запросов к базе данных. Его разработчики считают его более кратким и интуитивно понятным и, следовательно, менее подверженным ошибкам, чем SQL для нетехнических пользователей.
HTSQL также может использоваться «случайными программистами», такими как аналитики данных и разработчики пользовательского интерфейса. Разработчики HTSQL утверждают, что помимо более удобочитаемых запросов на основе HTTP, он помогает избежать распространенных ошибок SQL, таких как случайные соединения.
HTSQL следует модели двойной лицензии. Программное обеспечение можно использовать бесплатно с реляционными базами данных с открытым исходным кодом, включая MySQL и PostgreSQL. Исходный код доступен на сайте bitbucket.
Коммерческая версия HTSQL, совместимая с коммерческими базами данных, такими как Oracle и Microsoft SQL Server, также доступно.