Hyper Text Structured Query Language (HTSQL) es un lenguaje de consulta de URI a 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 el 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 solicitudes web en SQL equivalente, ejecuta solicitudes en una base de datos del lado del servidor y devuelve resultados en Formatos XML , HTML , CSV , JSON o YAML . La implementación actual de abril de 2010 usa Python y funciona con PostgreSQL, MySQL , SQLite , Oracle y bases de datos de Microsoft SQL Server .
HTSQL fue prototipo y desarrollado por Clark Evans (quien propuso YAML en 2001 [2] ) e implementado por Kirill Simonov, [3] ambos de Prometheus Research .
Alcance
El público objetivo de HTSQL son los usuarios comerciales que no son programadores de SQL. Busca simplificar consultas relacionales no intuitivas, como agregados y proyecciones. El objetivo no es completar la replicación de SQL, sino simplicidad e intuición. HTSQL permite a los usuarios que están familiarizados con los datos, pero no con la sintaxis SQL, acceder directamente a la base de datos sin pasar por una aplicación. [4]
Sintaxis
HTSQL utiliza una sintaxis de consulta basada en URI. Las consultas suelen comenzar con una sola tabla, opcionalmente prefijada por un esquema y seguida de una expresión de filtro para limitar el número de filas que se devuelven. [5]
Ejemplos de
Las uniones se pueden realizar 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 grado de la tabla de programas y el nombre de la escuela de la tabla de escuelas:
/program{school.name, title}
El resultado de esta consulta del sistema de línea de comandos HTSQL es:
programa ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~school.name | título-------------------------- + ----------------------- ------------Escuela de Arte y Diseño | Post Bachillerato en Historia del ArteEscuela de Arte y Diseño | Licenciatura en Historia del ArteEscuela de Arte y Diseño | Licenciatura en arte de estudioEscuela de Negocios | Certificado de Posgrado en Contabilidad...
Las expresiones agregadas se pueden utilizar cuando hay relaciones de varios a uno en la base de datos.
/ escuela {nombre, recuento (programa), recuento (departamento)}
El resultado muestra el recuento (número) de programas y departamentos en cada escuela:
escuela ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~nombre | contar (programa) | contar (departamento)------------------------- + ---------------- + ------- -----------Escuela de Arte y Diseño | 3 | 2Escuela de Negocios | 5 | 3Facultad de Educación | 7 | 2Escuela de Ingeniería | 8 | 4
Aplicaciones
HTSQL se puede utilizar para consultas de bases de datos ad hoc . Sus desarrolladores lo consideran más conciso e intuitivo y, por lo tanto, menos propenso a errores que SQL para usuarios no técnicos. [6]
HTSQL también puede ser utilizado por "programadores accidentales", como analistas de datos y desarrolladores de UI. Además de las consultas más legibles basadas en HTTP, los desarrolladores de HTSQL afirman que ayuda a evitar errores comunes de SQL, como las uniones accidentales. [7]
Versiones y licencias
HTSQL sigue un modelo de licencia dual. El software se puede utilizar de forma gratuita con bases de datos relacionales de código abierto, incluidas MySQL y PostgreSQL . [8] El código fuente está disponible en el sitio de bitbucket . [9]
También está disponible una versión comercial de HTSQL, compatible con bases de datos comerciales como Oracle y Microsoft SQL Server . [10]
Iniciativas similares
Referencias
- ^ 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/
enlaces externos
- Sitio web de la comunidad HTSQL