HTSQL - HTSQL
Язык структурированных запросов гипертекста (HTSQL) - это управляемый схемой язык запросов URI-to-SQL, который принимает запрос на HTTP, преобразует его в SQL query, выполняет запрос к базе данных и возвращает результаты в формате, наиболее подходящем для пользовательского агента (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]) и реализовал Кирилл Симонов,[3] оба Прометей Исследования.
Объем
Целевая аудитория HTSQL - это бизнес-пользователи, не являющиеся программистами SQL. Он пытается упростить неинтуитивные реляционные запросы, такие как агрегаты и прогнозы. Целью является не полнота репликации SQL, а простота и интуитивность. HTSQL позволяет пользователям, которые знакомы с данными, но не с синтаксисом SQL, получить прямой доступ к базе данных, минуя приложение.[4]
Синтаксис
HTSQL использует синтаксис запроса на основе URI. Запросы обычно начинаются с одной таблицы, которая может иметь префикс схемы, за которым следует выражение фильтра для ограничения количества возвращаемых строк.[5]
Примеры
Соединения между таблицами могут быть выполнены путем ссылки на имя столбца, которому предшествует имя таблицы. В этом примере запрашивается название программы на получение степени из таблицы программ и название школы из таблицы школ:
/program{school.name, title}
Результатом этого запроса из системы командной строки HTSQL является:
программа~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~school.name | название -------------------------- + ---------------------- ------------- Школа искусства и дизайна | Пост-бакалавриат по истории искусств Школа искусства и дизайна | Бакалавр искусств в области истории искусств Школа искусства и дизайна | Бакалавр искусств в студии ArtSchool of Business | Сертификат о высшем образовании в области бухгалтерского учета...
Агрегатные выражения можно использовать, когда в базе данных есть отношения «многие к одному».
/ школа {имя, счет (программа), счет (отдел)}
Результат показывает количество (количество) программ и отделов в каждой школе:
школа~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~имя | счет (программа) | count (отдел) ------------------------- + ---------------- + --- --------------- Школа искусства и дизайна | 3 | 2Школа бизнеса | 5 | 3Педагогический колледж | 7 | 2Школа инженерии | 8 | 4
Приложения
HTSQL можно использовать для для этого случая запросы к базе данных. Разработчики считают его более лаконичным и интуитивно понятным и, следовательно, менее подверженным ошибкам, чем SQL для нетехнических пользователей.[6]
HTSQL также может использоваться «случайными программистами», такими как аналитики данных и разработчики пользовательского интерфейса. Разработчики HTSQL утверждают, что помимо более удобочитаемых HTTP-запросов, он помогает избежать распространенных ошибок SQL, таких как случайные соединения.[7]
Версии и лицензирование
HTSQL следует модели двойной лицензии. Программное обеспечение можно использовать бесплатно с реляционными базами данных с открытым исходным кодом, включая MySQL и PostgreSQL.[8] Исходный код доступен на битбакет сайт.[9]
Коммерческая версия HTSQL, совместимая с коммерческими базами данных, такими как Oracle и Microsoft SQL Server, также имеется.[10]
Подобные инициативы
Рекомендации
- ^ http://htsql.org/
- ^ YAML
- ^ http://pdfind.com/hyper-text-structured-query-language-htsql-is/
- ^ http://www.htsql.org/tutorial.html
- ^ http://clarkevans.com/tmp/spec.html
- ^ http://clarkevans.com/tmp/spec.html
- ^ http://htsql.org/talks/20100804.html
- ^ http://www.htsql.org/license.txt
- ^ https://bitbucket.org/prometheus/htsql/src
- ^ http://htsql.org/