JSSQL: Un motor de base de datos en javascript

14/Oct/2010 JavaScript 6 Comentarios

Este verano me topaba con un proyecto interesante llamado JSSQL. JSSQL es un motor de base de datos escrito en Javascript, el cual podemos ejecutar consutlas SQL desde nuestras páginas web. Sin necesidad de estar conectado a algún servidor.

JSSQL es un proyecto de Joaquín Becerra de la Universidad de Buenos Aires. Podéis encontrar más información en:
http://javascriptsql.sourceforge.net/

Pero vamos a ponernos manos a la obra...

Lo primero de todo es cargar la librería Javascript que implementa el motor de base de datos. Esta librería es JSSQL.js.

  1. <script type="text/javascript" src="JSSQL.js"></script>

Una vez cargada la librería instanciaremos el objeto principal llamado JSSQL.

  1. var myJSSQL= new JSSQL();

A partir del objeto JSSQL abriremos la base de datos a utilizar mediante el método open.

  1. if (!myJSSQL.Open('mibasededatos')) {
  2. alert(myJSSQL.GetError()); //si falla que nos avise
  3. }
  4.  

Si falla la apertura de la base de datos, devolvemos el error del motor de la base de datos. Este error está accesible vía el método .GetError().

En el código vemos que abrimos una base de datos que se llama "mibasededatos". Pero ¿Dónde está la base de datos?

Las bases de datos están definidas en ficheros .jsdb bajo una estructura de directorios:

/bases/nombreBD/nombreBD.jsbd

El fichero JSDB tiene la siguiente estructura:

_bd={
  "paises":{
    "IdPais":"numeric",
    "Pais":"string",
  }
};
_bd_ind={
   'paises':[false,false]
};
_bd_pag={
   'paises':0
};

Vemos que contiene la definición mediante arrays de las bases de datos que contiene. A su vez, cada una de las tablas, tiene su fichero JSBD con el contenido. Por ejemplo la tabla de países tendría el siguiente contenido:

_aux['paises']=Array();
_aux['paises']=[
[1,"Noruega"],
[2,"Portugal"],
[3,"Francia"],
[4,"Italia"],
[5,"UK"]
];

JSSQL nos ofrece una herramienta de conversión desde las bases de datos hacía JSDB. Puedes acceder a ella desde:
http://javascriptsql.sourceforge.net/ARCH/JSBD/ConversorBD.php

Una vez que hemos visto como se definen las bases de datos pasamos a ejecutar la consulta mediante el método .Query(). La consulta una SELECT sencilla de paises.

  1. sql="select Pais from paises" ;
  2. res=myJSSQL.Query(sql);

El resultado nos lo deja en un array, el cual recorremos de forma sencilla:

  1. for (x=0;x<res.length;x++)
  2. document.write(res[x]["paises.Pais"] + "<br>");

La verdad es que JSSQL realiza un enfoque muy interesante sobre la necesidad de tener una BD en local. Algo que ya no parece estar muy lejos gracias a HTML5.

Vídeos sobre Javascript


Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

6 comentarios en “JSSQL: Un motor de base de datos en javascript”

Víctor Cuervo

jaciel

Hola,

Lo he utilizado sin ningun problema, pero en IE11 no funciona, me sale un error, es algo como de seguridad que no me deja ejecutar los scripts, segun es algo de CORS.

tengo páginas en una USB simulando un site, estoy leyendo archivos js para simular una bd, pero no funciona

saludos.

Víctor Cuervo

Víctor Cuervo

@Joaquin Becerra,

Genial, le echaremos un ojo para comentarla por aquí. 😀

Víctor Cuervo

Joaquin Becerra

Juan:
Hay una version actualizada del proyecto (2.1) que permite mejor y mayor funcionalidad. Podes ver la documentacioon y pruebas diversas en:

javascriptsql.sourceforge.net

Saludos

Víctor Cuervo

Juan E. Planelles

Por favor, estamos en Julio de 2012, si me pueden explicar como es actualmente el proyecto se lo agradecería porque necesito bases de datos como éstas.
Gracias.

Víctor Cuervo

Walter Caballero

Excelente idea !!! muy util !! Sigue adelante !

Víctor Cuervo

Joaquin Becerra

Muchas Gracias por el post.

Hace unas semanas que estoy distanciado del proyecto JSSQL debido a algunas dificultades personales, y hoy me encontre con el post, estoy realmente sorprendido. Espero que les sea de interes y sirva de herramienta a quien lo necesite.

Espero en algo mas de un mes terminar con la proxima version que incuye manejo de indices para acelerar las consultas, algunas herramientas para poder indexar documentos (pdf, txt) de manera de poder realizar consultas sobre el contenido de los mismos. Y tambien agregar otras funcionalidades (GROUP BY, utilizacion de funciones en el select, uso de JSON en el almacenamiento, etc.)

Desde ya muchas gracias por la difusión del proyecto

Joaquin Becerra

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*