El lenguaje de consulta estructurado de hipertexto (HTSQL) es un lenguaje de consulta URI-to-SQL basado en esquemas que toma una solicitud a través de HTTP , la convierte en una consulta SQL , ejecuta la consulta en una base de datos y devuelve los resultados en un formato más adecuado para el agente de usuario (CSV, HTML, etc.) [ 1 ]. El lenguaje HTSQL se implementa en "servidores HTSQL", que utilizan HTSQL para convertir las solicitudes web en SQL equivalente, ejecutan las solicitudes en una base de datos del lado del servidor y devuelven los resultados en formatos XML , HTML , CSV , JSON o YAML . La implementación actual, a abril de 2010, utiliza Python y funciona con bases de datos PostgreSQL , MySQL , SQLite , Oracle y Microsoft SQL Server .
HTSQL fue prototipado y desarrollado por Clark Evans (quien propuso YAML en 2001 [ 2 ] ) e implementado por Kirill Simonov, [ 3 ] ambos de Prometheus Research .
Alcance
HTSQL está dirigido a usuarios empresariales que no son programadores SQL. Su objetivo es simplificar las consultas relacionales poco intuitivas, como las agregaciones y las proyecciones. No busca replicar SQL de forma exhaustiva, sino la simplicidad y la intuición. HTSQL permite a los usuarios familiarizados con los datos, pero no con la sintaxis SQL , acceder directamente a la base de datos sin necesidad de una aplicación. [ 4 ]
Sintaxis
HTSQL utiliza una sintaxis de consulta basada en URI. Las consultas suelen comenzar con una sola tabla, opcionalmente precedida por un esquema y seguida de una expresión de filtro para limitar el número de filas que se devuelven. [ 5 ]
Ejemplos
Se pueden realizar uniones entre tablas haciendo referencia al nombre de la columna precedido por el nombre de la tabla. Este ejemplo solicita el título de un programa de estudios de la tabla de programas y el nombre de la escuela de la tabla de escuelas:
/programa{nombre.escuela, título} El resultado de esta consulta desde el sistema de línea de comandos HTSQL es:
programa ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nombre de la escuela | título --------------------------+----------------------------------- Escuela de Arte y Diseño | Posgrado en Historia del Arte Escuela de Arte y Diseño | Licenciatura en Historia del Arte Escuela de Arte y Diseño | Licenciatura en Artes Plásticas Escuela de Negocios | Certificado de Posgrado en Contabilidad ...Las expresiones de agregación se pueden utilizar cuando existen relaciones de muchos a uno en la base de datos.
/escuela{nombre, recuento(programa), recuento(departamento)} El resultado muestra la cantidad (número) de programas y departamentos en cada escuela:
escuela ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nombre | recuento(programa) | recuento(departamento) -------------------------+----------------+------------------ Escuela de Arte y Diseño | 3 | 2 Escuela de Negocios | 5 | 3 Facultad de Educación | 7 | 2 Escuela de Ingeniería | 8 | 4 Aplicaciones
HTSQL se puede utilizar para consultas ad hoc a bases de datos. Sus desarrolladores lo consideran más conciso e intuitivo y, por lo tanto, menos propenso a errores que SQL para usuarios no técnicos. [ 5 ]
HTSQL también puede ser utilizado por "programadores accidentales", como analistas de datos y desarrolladores de interfaces de usuario. Además de consultas basadas en HTTP más legibles, los desarrolladores de HTSQL afirman que ayuda a evitar errores comunes de SQL, como las uniones accidentales. [ 6 ]
Versiones y licencias
HTSQL sigue un modelo de licencia dual. El software puede utilizarse gratuitamente con bases de datos relacionales de código abierto, incluidas MySQL y PostgreSQL . [ 7 ] El código fuente está disponible en el sitio de Bitbucket . [ 8 ]
También está disponible una versión comercial de HTSQL, compatible con bases de datos comerciales como Oracle y Microsoft SQL Server . [ 1 ]
Iniciativas similares
- postgREST
- PostGraphile
Referencias
- 1 2 "Inicio" . htsql.org .
- ↑ YAML
- ↑ "Lenguaje de consulta estructurado de hipertexto" . Consultado el 4 de mayo de 2023 .
- ↑ "Introducción — HTSQL — Documentación del lenguaje de consulta estructurado de hipertexto v1.0" . www.htsql.org . Archivado del original el 11 de julio de 2010.
- 1 2 "Manual de HTMLSQL: Lenguaje de consulta estructurado de hipertexto" . clarkevans.com . Archivado del original el 8 de julio de 2011.
- ↑ "HTSQL: un lenguaje de consulta para programadores accidentales" .
- ↑ "Licencia permisiva de HTMLQ" . htsql.org . Consultado el 4 de mayo de 2023 .
- ↑ "prometheus / htsql / source — bitbucket.org" . bitbucket.org . Archivado del original el 26 de septiembre de 2010.
Enlaces externos
- Sitio web de la comunidad HTML/SQL
- Lenguajes de consulta