JavaScriptSQL (JSSQL)

Un motor de bases de dato enteramente en JavaScript

JSSQL es un motor de bases de datos desarrollado enteramente en JavaScript. Es una herramienta para desarrolladores que permite interpretar y ejecutar sentencias SQL sobre una base de datos de manera offline. Cuenta con una clase de conversión de bases de datos relacionales (ej: PostgreSQL, MySql, etc.) desarrollado en PHP que genera una serie de archivos de datos, luego el motor de bases de datos en JavaScript (JSSQL) accede a dichos datos mediante consultas SQL devolviendo un conjunto de registros de manera similar a cualquier motor de bases de datos. Esto resulta útil para consultar bases de datos offline o de manera dinámica sin aumentar el trabajo del servidor web o mejor aun: sin la necesidad de contar con un servidor de bases de datos.

El motor JavaScriptSQL puede interpretar consultas SQL con la siguiente estructura:
    SELECT
    [DISTINCT]
    * | expresión_de_select [ AS alias_campo ] [, ...]
    FROM nombre_tabla [alias_tabla] [, ...]
    [ WHERE condición_where ]
    [ GROUP BY numero_campo [, ... ] [HAVING condición_having ] ]
    [ ORDER BY numero_campo [ ASC | DESC ] [, ...] ]
    [ LIMIT cantidad ]                    

Funcionalidades:

  • Permite la consulta de datos offline sin intervención de servidores WEB o servidores de bases de datos.
  • Permite flexibilidad en la sintaxis SQL, aceptando el uso de alias de campos y tablas, es case-insensitive en las cláusulas y campos y permite el uso de espacios múltiples, de manera de que la escritura de las sentencias SQL es sencilla e intuitiva.
  • Permite el uso de todas las funciones y operadores de JavaScript de manera que su uso para desarrolladores JavaScript es totalmente intuitivo. Además permite el uso de funciones definidas externamente por los usuarios.
  • Permite la definición y uso de índices para acelerar las consultas.
  • Permite la paginación de tablas de manera que puedan utilizarse tablas de gran cantidad de registros sin sobrecargar la memoria utilizada por el navegador.
  • Incluye funcionalidades para la búsqueda de texto dentro de documentos indexados mediante el indexador JSBD_Indexador y asociados mediante campos del tipo link en las tablas de la base de datos.
  • Permite la creación de bases de datos para JavaScript mediante el conversor JSBD_Conversor a partir de motores como PostgreSQL y MySQL
  • Informa claramente los errores de sintaxis, de ejecución y de carga de la base de datos y de las consultas SQL.
  • Proveer mecanismos de debug para ayudar en el desarrollo, mantenimiento y testeo del motor.
  • Utiliza una estructura clara para la definición de las bases de datos y las estructuras de almacenamiento de los datos e índices. Utilizando estructuras compatibles con JSON.
  • Su uso e instalación es sencilla, de bajos requerimientos y compatible con los navegadores más utilizados.

Posibles Aplicaciones:

Cualquier tipo de aplicación que requiera la consulta y búsqueda de documentos desconectada de una base de datos, por ejemplo:

  • Un diccionario o enciclopedia.
  • Un catálogo.
  • Una recopilación de documentos.

Cualquier aplicación web con manejo de datos donde se necesite mayor dinamismo sin intervención del servidor. Por ejemplo una tabla dinámica de datos (o planilla de cálculos) que permita filtrar los valores presentados, realizar ordenamientos por los distintas columnas y realizar cálculos auxiliares (sumas, subtotales, promedios, etc.)

Un sistema de Business Intelligence (BI) donde los datos son agrupados por distintos campos mostrando de manera dinámica las distintas estadísticas. Por ejemplo en una aplicación de BI donde se analiza las ventas de una compañía, poder ver de manera dinámica las ventas por país, vendedor, tipo de cliente, producto, etc. Sin la necesidad de realizar reiteradas consultas al servidor.

Algunos ejemplos de como podria utilizarse: