JavaScriptSQL (JSSQL)
Documentación

En esta sección la documentación de uso del motor JSSQL, del conversor JSBD_Conversor y del indexador JSBD_Indexador


Manual de Uso JSBD_Conversor

Otros manuales disponibles:

Índice

  1. Diseño Inicial
  2. Requisitos e instalación
  3. Ejemplo Básico de Uso
  4. Referencias de la clase JSBD_Conversor
    1. _connserv, _connport, _conndb, _connusr, _connpass
    2. _nombre
    3. _basedir
    4. _tipo
    5. _confarch
    6. _bd
    7. _indexador
    8. Convertir()
    9. GetError()
    10. Guardar()
    11. Recuperar()
    12. EliminarTabla($nombre_tabla)
    13. AgregarTabla($nombre_tabla,$sql,$tipos,$indices,$paginado=0)

I. Diseño Inicial

A continuación se muestra el diagrama de diseño inicial que describe la relaciñn entre los distintos módulos utilizados para el funcionamiento de la base de datos en JavaScript.

Diagrama de Diseño inicial

El funcionamiento básico de la base de datos para JavaScript consiste en generar mediante un conversor de bases de datos y un indexador de documentos los archivos de definiciones, tablas, índices y demás componentes de la base de datos JSBD. Luego el motor JSSQL permite acceder de manera eficiente a la base de datos JSBD mediante consultas SQL.

Cada uno de estos componentes o subsistemas están conformados por una o más clases a ser usadas por los desarrolladores. El conversor y el indexador están desarrollados en PHP mientras que el motor JSSQL esta desarrollado íntegramente en JavaScript.

Una vez generada una base de datos JSBD, se pueden realizar consultas SQL mediante el motor JSSQL sin necesidad de acceder a ningún orto motor de bases de datos y sin necesidad de utilizar ningún lenguaje de scripting que funcione del lado del servidor (PHP, ASP, etc.).

A continuación se muestra el diagrama de clases que describe la relación entre las distintas clases PHP para la conversión de bases de datos e indexado de documentos.

Diagrama de Clases PHP

JSBD_Conversor Es la clase principal del módulo de conversión. Mediante esta clase se genera la base JSBD a partir de una base de datos externa. Hace referencia a una interfase de base de datos (BD_Interface) con la cual realiza las consultas a la base de datos de origen; posee un conjunto de objetos JSBD_Tabla que representan la definición de cada una de las tablas de la JSBD que deben generarse. También puede asociarse a un objeto de la clase JSBD_Indexador para realizar el indexado de todos los documentos indicados en un campo del tipo 'link' en alguna de las tablas a convertir

Índice

II. Requisitos e instalación

La clase fue desarrollada para ser utilizada mediante PHP versión 5 o superior.

Para funcionar necesita de alguna de las clases de interfaz de bases de datos (cls_BD_PostgreInterface.php, cls_BD_MySQLInterface.php, o alguna otra interfaz desarrollada a tal efecto).

Índice

III. Ejemplo Básico de Uso

A continuación se muestra un ejemplo de cómo utilizar la clase para realizar la conversion de una tabla de MySQL a JSBD.

<?php
//clase conversor
include_once ("cls_JSBD_Conversor.php");

//creamos el conversor
$myConversor =new JSBD_Conversor();

//seteos de conexión
///////////////////////////////////

//servidor
$myConversor->_connserv='localhost';

//puerto
$myConversor->_connport='3306';

//usuario
$myConversor->_connusr='test';

//password
$myConversor->_connpass='test';

//base de datos
$myConversor->_conndb='neptuno';

//tipo de la base de datos de origen
$myConversor->_tipo="mysql";

//seteos de la base JSBD de destino
///////////////////////////////////

//donde se guarda
$myConversor->_basedir="bases";

//nombre de la JSBD
$myConversor->_nombre="categorias";


//Tablas a convertir
///////////////////////////////////

//nombre de la tabla en la JSBD
$nombre_tabla="categorias";

//SQL de los datos a exportar en esa tabla
$sql="SELECT * FROM categorias";

//tipos e indices que le asignamos a esa tabla
/// campos: IdCategoria | NombreCategoria | Descripcion
$tipos="numeric,string,string";
$indices=" false,false,false";

//paginado de la tabla (paginar cada x registros)
$paginado=0;  //(sin paginado)

if(!$myConversor->AgregarTabla($nombre_tabla,$sql,$tipos,$indices,$paginado)) {
   print $myConversor->GetError();
   exit;
    }

//Creamos la JSBD
if(!$myConversor->Convertir()) {
   print $myConversor->GetError();
   exit;
}

print "Conversión Exitosa";
php?>
                     

Índice

IV. Referencias de la clase JSBD_Conversor

A continuación se describen los métodos y atributos de la clase JSBD_Conversor

IV.i _connserv, _connport, _conndb, _connusr, _connpass

Son atributos públicos que especifican las variables de conexión a la base de datos de origen: nombre del servidor, puerto, nombre de la base de datos, usuario de conexión y clave de conexión respectivamente. Los parámetros que no sean especificados tomarán los valores por defecto.

Índice

IV.ii _nombre

Es el nombre que tomará la base de datos JSBD generada.

Índice

IV.iii _basedir

Es el directorio donde se guardarán los archivos correspondientes a la JSBD.

Índice

IV.iv _tipo

Es el tipo de base de datos de origen (Postgre, MySQL, etc.), define la implementación de BD_Interface a utilizar.

Índice

IV.v _confarch

Es la ruta del archivo desde el que se guarda o recupera la configuración del conversor en caso de utilizar los métodos Guardar() o Recuperar().

Índice

IV.vi _bd

Es la referencia a la BD_Interface del conversor, puede utilizarse para consultar la base de datos de origen y verificar la conexión de manera externa al objeto conversor.

Índice

IV.vii _indexador

Es el objeto JSBD_Indexador que se utiliza para indexar los documentos apuntados en los campos del tipo 'link'. La creación y configuración de dicho objeto se debe realizar de manera externa a la clase. Generalmente se asocia un objeto ya instanciado y configurado.

Índice

IV.viii Convertir()

Ejecuta el proceso de conversión de las tablas desde la base de origen hacia la base JSBD según los parámetros establecidos en el objeto.

Devuelve:
TRUE en caso de éxito, FALSE en caso de no poder convertir la base de datos (ejecutar GetError() para obtener una descripción del error).

Índice

IV.ix GetError()

Devuelve la descripción del último error producido.

Índice

IV.x Guardar()

Guarda la configuración del conversor en el archivo indicado en _conf_arch.

Devuelve:
TRUE en caso de éxito, FALSE en caso de no poder guardar el archivo de configuración (ejecutar GetError() para obtener una descripción del error).

Índice

IV.xi Recuperar()

Recupera la configuración del conversor desde el archivo indicado en _conf_arch.

Devuelve:
TRUE en caso de éxito, FALSE en caso de no poder recuperar la configuración (ejecutar GetError() para obtener una descripción del error).

La sintaxis del archivo de configuración es la misma que la utilizada por el archivo php.ini de PHP.

Un ejemplo de archivo de configuración válido:

; JSSQL - ARCHIVO DE CONFIGURACION DEL CONVERSOR DE BASES DE DATOS

; CONFIGURACION GENERAL

; Nombre de la base de datos JSBD
bd_name=neptuno

; Directorio de almacenamiento de los archivos de bases de datos JSBD
basedir=bases

; Tipo de base de datos de origen (postgre, mysql, etc.)
type=mysql

; Servidor de conexión a la base de datos de origen
connserv="localhost"

; Puerto de conexión a la base de datos de origen
connport=""

; Nombre de la base de datos de origen
conndb="neptuno"

; Usuario de conexión a la base de datos de origen
connusr="test"

; Password de conexión a la base de datos de origen
connpass="test"


; DEFINICION DE TABLAS DE LA JSBD

; Nombre de la tabla
[categorias]

;SQL de generación
  tb_sql=SELECT * FROM categorias

;Definiciones de tipos de los campos de la tabla
  tb_types=numeric,string,string

;Definiciones de los Índices de la tabla
  tb_index=false,false,false

;Paginado de la tabla
  tb_paginate=0

; Nombre de la tabla
[clientes]

; (.)
IV.xii EliminarTabla($nombre_tabla)

Elimina una tabla del listado de tablas a generar.

parámetros:
$nombre_tabla: Nombre de la tabla a agregar.

Devuelve:
TRUE en caso de éxito, FALSE en caso de error (ejecutar GetError() para obtener una descripción del error).

Índice

IV.xiii AgregarTabla($nombre_tabla,$sql,$tipos,$indices,$paginado=0)

Agrega una tabla al listado de tablas a generar

parámetros:
$nombre_tabla: Nombre de la tabla a agregar.
$sql: SQL de consulta a la base de datos de origen que devuelve el conjunto de registros a ser agregados en la tabla de la base JSBD.
$tipos: Listado de tipos de datos de la tabla en la base JSBD, separados por coma (Ejemplo: "numeric,string,string" para una tabla de tres campos). Los tipos soportados son los siguientes

  • numeric: números enteros, o flotantes.
  • string: cadenas de caracteres.
  • boolean: variables lógicas (true/false).
  • date: tiempo expresado en cantidad de milisegundos desde el 01/01/1970.
  • link: hace referencia a un documento cuyo contenido ha sido indexado.


$indices: Listado de variables true/false que indican los campos sobre los que se debe generar un Índice (Ejemplo: "false,false,true", crea un Índice para el tercer campo de la tabla).
$paginado: Cantidad de registros por archivo de salida (si es 0 no se página la tabla al realizar la conversión).

Devuelve:
TRUE en caso de éxito, FALSE en caso de error (ejecutar GetError() para obtener una descripción del error).

Índice