Manual de Relational Algebra Translator PDF
Manual de Relational Algebra Translator PDF
Manual de Relational Algebra Translator PDF
Thomas Carlyle
1
2 lgebra Relacional y SQL
Este captulo est destinado a exponer brevemente las tcnicas usadas para programar este
software, tambin en este captulo se profundiza sobre el funcionamiento del software
como herramienta pedaggica; su descarga no tiene ningn costo y est disponible en la
direccin http://www.slinfo.una.ac.cr/rat/rat.html.
Debajo de la traduccin al SQL, se encuentra el rbol de parser grafico, ntese que los nodos
de las hojas estn siempre equilibrados y representa el crecimiento de la consulta desde las
tablas originales hasta los nodos de los operadores ubicados en la parte superior.
Este software puede ser utilizado para ensear lgebra relacional de forma muy especializada,
pero tambin podra ser utilizado como una valiosa herramienta cuando se ensee teora de
conjuntos; pues facilita realizar operaciones conjuntistas como la interseccin, unin o
diferencia de conjuntos o combinaciones de ellas.
Tambin es til porque puede aplicrsele productos cartesianos y as formar nuevos
conjuntos a partir de los ya existentes. Finalmente el operador sigma facilita la escritura de
conjuntos mediante el axioma de compresin, es decir declarando una propiedad que tengan
los elementos del conjunto.
4 lgebra Relacional y SQL
2 COMPONENTES DE UN COMPILADOR
En general se puede decir que todo compilador es
un traductor, puesto que al compilar un software
el sistema se ve obligado a realizar una traduccin
a otro lenguaje (por ejemplo de Java a
Ensamblador) para que la computadora lo
entienda, el proceso de la compilacin inicia con
un lenguaje determinado y finaliza cuando es
traducido a lenguaje maquina.
compilador slo aceptaba caracteres ASCII dejando sin funcionamiento variables como
nio, ao o da, pues no representaban caracteres ASCII. Sin embargo hoy en da la
mayora de compiladores usa UNICODE permitiendo efectivamente programar sin
problemas en muchos idiomas como el espaol.
Esta regla es capaz de generar todos los nmeros naturales. Una tercera etapa llamada
analizador semntico verifica la semntica de los tokens, es decir el mbito para determinar
la presencia de errores. Tomemos como ejemplo el siguiente segmente de cdigo
semnticamente correcto pero sintcticamente invlido.
Como puede verse, efectivamente esta asignacin es vlida semnticamente porque est
formada de: <tipo><nombre> = <valor>, pero por otro lado, su mbito sintctico no
permite que un int le sea asignado una variable de cadena.
X tabla1
Y tabla2
W X Y
Es evidente, que en el A.R. es una expresin valida, sin embargo no lo es para el SQL cuya
traduccin es SELECT * FROM tabla1, tabla2,esto significa encontrar una solucin
algortmicamente simple para este problema. El RAT destina el Preanalizador para lograr
crear una nica lnea que sea definida en trmino de otras variables. La solucin propuesta
resulta de la estructura de datos ms eficiente que existe, las tablas Hash (tambin llamadas
Maps) pues si complejidad algortmica es O(1).
Recordemos que las tablas Hash asocian una nica llave con su respectivo contenido, el
RAT usa como llave el nombre de las variables y el contenido ser otro string desde la
variable hasta el salto de lnea (\n), es decir tendra la forma de la imagen 6.4.
Existen dos tipos bsicos y reconocidos de lenguajes: los lenguajes naturales y los lenguajes
formales; los primeros se fueron construyendo con el paso del tiempo son por ejemplo, el
espaol o el ingles. Por otro lado los lenguajes formales se basan en normas matemticas
tales como la lgica y teora de conjuntos.
Estas cuatro componentes definen una tupla llamada, gramtica libre de contexto, tambin
recibe el nombre de gramtica o CFG. De la forma G = (V,T,P,S) donde V son las variables
no terminales, T son los smbolos terminales, P son las reglas de Produccin y la S es el
smbolo inicial.
Para el conjunto P se definen las siguiente reglas de produccin, para efectos de simplificar
la notacin se usara el formato Backus-Naur form (BNF) [2], donde los smbolos de
produccin ( ) y sus respectivos cuerpos se agrupan con el smbolo ::= y separamos los
cuerpos de las producciones por el smbolo (|) para identificar que son de la misma regla. A
continuacin se detalla el conjunto de Producciones:
Capitulo 6: Funcionamiento del RAT 11
Definicin 9. Se define una matriz gramatical o matriz de adyacencia, como una matriz
cuadrada que permite representar una relacin binaria.
Para efectos del verificador sintctico, se desarrolla una matriz gramatical para crear y
evaluar todos los posibles escenarios. Esta matriz booleana est formada por todos los
smbolos no terminales tanto horizontal como verticalmente. La matriz completa del
lgebra relacional al ser tan grande no se adjuntar, sin embarg vamos a ejemplificarla con
los smbolos Pi, Sigma, parntesis, literal y nmero (constante).
12 lgebra Relacional y SQL
PI 0 0 0 0 1 0
SIGMA 0 0 0 0 1 0
LITERAL 0 0 0 0 0 1
CONSTANTE 0 0 0 0 0 1
PARENTESIS 1 1 1 1 1 0
ABIERTO
PARENTESIS 0 0 0 0 1 1
CERRADO
Ntese que esta matriz tambin recibe el nombre de matriz de adyacencia, permite modelar
un grafo, es decir determina si existe un camino que permita pasar de un smbolo a otro, por
ejemplo Sigma | Pi parntesis abierto o despus de un literal se puede cerrar un parntesis
(Literal parntesis cerrado).
Observe que la definicin del rbol es recursiva, tambin los algoritmos de esta estructura se
suelen manejar recursivamente. La verdadera importancia de los arboles binarios son su
capacidad para modelar las expresiones de lgebra relacional.
Capitulo 6: Funcionamiento del RAT 13
a. Procesador a 1Hghz
b. 250 Mb de memoria RAM
c. 5 Mb de disco duro libre
a. Procesador a 1Hghz
b. 250 Mb de memoria RAM
c. 5 Mb de disco duro libre
d. Una base de datos instalada
e. Conectores ODBC para la base de
datos que requiera Imagen 6.5: Instalador del RAT
Como el RAT va ser una herramienta que usted use diariamente para sus estudios o para
optimizar consultas en su trabajo, es necesario incorporar la posibilidad de guardar las
consultas que usted efectu. Se incorpor entonces una especie de biblioteca de consultas,
una vez guardada la sentencia es fcilmente recuperable en el futuro. Para poder observar
la biblioteca (inicialmente vaca) debe ingresar a Query library.
Finalmente y por ser el RAT una herramienta acadmica sin fines de lucro, se espera que
sea utilizada por la mayor cantidad de universidades e instituciones a nivel mundial. Como
es un proyecto sin financiamiento se provee una herramienta para poder traducir el
software entero al idioma que el usuario final desee. Se les agradecera mandarnos sus
traducciones para mejorar las actuales y agregar nuevas, se respeta altamente los derechos
de autor por lo que si colabora con el proyecto, su nombre va estar en el sitio web de
Capitulo 6: Funcionamiento del RAT 15
descargar como colaborador. Ingrese a Language Manger para poder agregar nuevos
idiomas.
Como se puede ver, la interfaz del RAT tiene muchas opciones para facilitar el
procesamiento de las consultas. Los mens del RAT son convencionales, tiene las
siguientes opciones:
16 lgebra Relacional y SQL
Sigma Ctrl + S
{condicin} (relacin)
Ro {nueva} (relacin) Ctrl + R
Observe en la imagen 6.8 como se construye un rbol automticamente con slo ingresar la
consulta en el programa interpretador. Sin embargo el RAT tambin disponen de otra
vistas ms tradicionales como la representacin de tablas, en la imagen 6.9 se observa el
resultado de la consulta contra una base de datos real.
Para poder cambiar de vista en vista, el RAT provee los submens de Change view que
cambia de modo, por otro lado se puede ir explcitamente a una vista en particular
mediantes las opciones de Tree parser o query result.
Para permitir que la mayor cantidad de bases de datos sean compatibles con el RAT, se
utilizan dos conectores, uno es genrico llamado ODBC y otro es desarrollado para Oracle,
en general se puede conectar a cualquier base de datos si existe un conector ODBC.
Lo primero que tenemos que hacer, es descargar el conector de la base de datos a la que
queramos conectarnos. Despus de descargarlo, procedemos a agregar nuestra nueva
conexin, para ello es necesario abrir el administrado de origines de datos ODBC de
Windows; presione en el men DATA la opcin de ADD NEW DATA SOURCE, con lo que
nos aparece la ventana de la imagen 6.10.
Una vez aqu, se debe agregar una nueva conexin, para ello de click en Agregar a la
derecha de la ventana, lo que nos saldr son las bases de datos que tienen conectores
Capitulo 6: Funcionamiento del RAT 21
instalados en la computadora, por ejemplo en la ventana 6.11 est instalado el conector para
MySQL sin embargo es posible que cuando vean su ventana, no tengan el conector
disponible, puede descargar el conector desde el mismo sitio donde descarg el RAT.
Damos click a finalizar y segn sea el conector nos solicitar determinada informacin, en
general siempre es la misma informacin para todas las bases de datos, en la imagen 6.12 se
completan los siguientes datos:
a. Data sourcce Name: este es el nombre con el que vamos identificar la conexin,
puede ser cualquier nombre.
b. Server: se establece la direccin IP de donde se encuentra el servidor, si est en la
misma computadora es localhost.
c. Database: es el nombre del schema de la base de datos, si usa otra base de datos,
este campo es posible no aparezca.
22 lgebra Relacional y SQL
Cuando le damos OK, nos llevara a la ventana del Administrador de orgenes de datos
ODBC, donde nos debe aparecer una nueva conexin agregada con el nombre que se le
haba puesto en la ventana anterior.
Detalle Valor
SGBD Oracle
Data Source Name [vacio]
User System [usuario con el que se va conectar]
Password manager [clave del usuario]
DataBase name XE [en el caso de la versin express]
Detalle Valor
SGBD ODBC
Data Source Name MySQL [nombre que se ingreso en el
administradore de ODBC]
User [vacio]
Password [vacio]
DataBase name [vacio]
Cuando se confirme los datos, el sistema se conectar (no indicar nada) o en su defecto le
indicar que hubo un fallo y fue imposible levantar la conexin. Si no hubo fallo en el
proceso, ya puede escribir consultas y evaluarlas mediante la tecla F5, o con el botn Run
a la derecha del cuadro de texto donde se ingresan las consultas. Los datos que usted
ingreso sern guardados de forma automtica, de manera que la prxima vez que ingrese a
la ventana slo es darle click al botn Conectar.
Todos los dems operadores, tiene una traduccin directa; es decir no requiere agregarle
patentis para su funcionamiento.
24 lgebra Relacional y SQL
La otra mtrica es el tiempo que dura en ser ejecutada la consulta, est representada por
, es decir el cambio del tiempo desde que se inicia hasta que termina de ejecutarse la
consulta. Para realizar estas pruebas es suficiente abrir la librera y seleccionar las dos
consultas a competir y dar click a Compare.
Para instalar el nuevo idioma, es necesario dar click en Add language, esto nos abrir una
ventana de guardar archivo, escogemos el nombre del idioma y la ruta. La ruta debe ser la
raz de la aplicacin y dentro de ella existe una carpeta que dice language ah es donde
debemos copiar el archivo generado, la ruta por ejemplo puede quedar como C:\Program
Files\Relational Algebra Translator\lenguage
BIBLIOGRAFA CONSULTADA