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.
Funcionalidades:
- Ejecutar consultas SQL desde JavaScript dentro de una base de datos offline.
- La instalación es sensilla de muy bajos requerimientos, su uso es simple e intuitivo.
- JSSQL interpreta consultas SQL de manera flexible, “case-insensitive”.
- JSSQL interpreta consultas SQL del tipo
SELECT
* | nombre_campo [ AS alias_campo ] [, ...]
[ FROM nombre_tabla [alias_tabla] [, ...] ]
[ WHERE condición ]
[ ORDER BY numero_campo [ ASC | DESC ] [, ...] ]
- Las consultas SQL permiten el uso de alias en los nombres de los campos y tablas.
- JSSQL reconoce los operadores de JavaScript (==,!=, &&, ||, etc).
- Las sentencias SQL pueden utilizar cualquier funcion JavaScript . Por ejemplo:
select * from tabla where campo.match(/texto_a_buscar/i)!=null ).- El conversor de base de datos (JSBDConversor) permite convertir una base de datos relacional (MySQL/Postgre) en una base de datos JSBD para utilizarla con el motor JSSQL.
- El conversor de base de datos puede ampliarse facilmente para otras bases de datos simplemente reescribiendo unas pocas funciones.
- Carga dinámica de las tablas de la base JSBD para evitar el uso extensivo de memoria en el navegador.
En la próxima versión:
- Un objeto capaz de indexar documentos PDF y de texto plano de manera de poder realizar consultas en su contenido mediante el motor JSSQL.
- Uso de paginado en las tablas para para evitar el uso extensivo de memoria en el navegador y permitir el uso de mayor volumen de datos.
- Uso de indices en las tablas para acelerar el acceso a los datos y evitar el uso extensivo de memoria en el navegador.
- Interpretación de las clausulas DISTINCT, GROUB BY, HAVING, LIMIT.
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.



