Manual de Uso JSBD_Conversor
Otros manuales disponibles:- Manual de uso de motor de base de datos JavascriptSQL
- Manual de uso de la librería JSBD_Indexador
- Descripción de la estructura de la JSBD
Índice
- Diseño Inicial
- Requisitos e instalación
- Ejemplo Básico de Uso
- Referencias de la clase JSBD_Conversor
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.
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.
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
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).
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?>
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.
IV.ii _nombre
Es el nombre que tomará la base de datos JSBD generada.
IV.iii _basedir
Es el directorio donde se guardarán los archivos correspondientes a la JSBD.
IV.iv _tipo
Es el tipo de base de datos de origen (Postgre, MySQL, etc.), define la implementación de BD_Interface a utilizar.
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().
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.
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.
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).
IV.ix GetError()
Devuelve la descripción del último error producido.
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).
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).
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).