HTSQL - HTSQL

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.) El lenguaje HTSQL se implementa en "servidores HTSQL", que usan HTSQL para convertir solicitudes web en SQL equivalente, ejecuta solicitudes en una base de datos del lado del servidor y devuelve resultados en XML , HTML , CSV , JSON o YAML . La implementación actual a partir de abril de 2010 usa Python y funciona con bases de datos PostgreSQL , MySQL , SQLite , Oracle y Microsoft SQL Server .

HTSQL fue prototipo y desarrollado por Clark Evans (quien propuso YAML en 2001) e implementado por Kirill Simonov, 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.

Sintaxis

HTSQL usa 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.

Ejemplos

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:

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

...

Las expresiones agregadas se pueden utilizar cuando hay relaciones de varios a uno en la base de datos.

/school{name, count(program), count(department)}

El resultado muestra el recuento (número) de programas y departamentos en cada escuela:

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

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.

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.

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 . El código fuente está disponible en el sitio de bitbucket .

También está disponible una versión comercial de HTSQL, compatible con bases de datos comerciales como Oracle y Microsoft SQL Server .

Iniciativas similares

Referencias

enlaces externos