Manual de Relational Algebra Translator PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 27

Captulo 6

Relational Algebra Translator


Contenido de este captulo

Funcionamiento del RAT .................................................................................. 1


Componentes de un compilador...................................................................... 1
Componentes del software RAT ...................................................................... 2
Pre-analizador de asignacin ........................................................................... 3
Analizador Sintctico ....................................................................................... 5
Conexin con una base de datos ..................................................................... 6
Instalar el RAT .................................................................................................. 7
Herramientas del RAT ...................................................................................... 8
Ejemplos de sentencias .................................................................................... 9

Con nmeros se puede demostrar


cualquier cosa.

Thomas Carlyle

1
2 lgebra Relacional y SQL

1 FUNDAMENTOS DEL RAT


Qu es el RAT? Son las siglas del software Relational Algebra Translator este software
fue desarrollado en la Universidad Nacional de Costa Rica. El RAT es bsicamente como su
nombre lo dice, un traductor de lgebra relacional (A.R.) a sentencias SQL, el software
viene acompaado de una seria de herramientas que facilitan al estudiante el aprendizaje
del hasta entonces terico tema del algebra relacional.

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.

Para la creacin de este software se requiere de conocimientos bsicos en el desarrollo de


compiladores/traductores, si el lector quiere profundizar en este tema puede visitar la
bibliografa [1], tambin se recomienda leer [2] para los temas de gramticas libres de
contexto y derivaciones.

El producto de software Relational Algebra Translator (RAT) implementa los operadores


originales del lgebra relacional (pi. sigma, producto cartesianos, producto natural y ro)
adems cuenta con operadores lgicos como el Y y el O lgicos, por ultimo implementa los
operadores conjuntistas (diferencia, unin y la interseccin); observe en la imagen 1 del
programa la consulta ingresada en el primer campo de texto; en el segundo campo de texto
se encuentra la traduccin para esa misma consulta ahora en SQL.
Capitulo 6: Funcionamiento del RAT 3

Figura 6.1: RAT 4.0

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

1.1 Origen del RAT


El problema de ensear lgebra relacional es su alto nivel de abstraccin, prcticamente es
un lenguaje de consulta terico; mientras que otros lenguajes de consulta como el SQL s
permiten realizar pruebas y obtener resultados de forma natural en las bases de datos, el
lgebra relacional sin embargo, no dispone de un mecanismo que permita interactuar con las
bases de datos comerciales de la actualidad. La idea de crear una herramienta que facilitara a
los estudiantes del curso Diseo e Implementacin de Bases de Datos de la carrera Ingeniera
en Sistemas de la Universidad Nacional de Costa Rica parte de la tesis que, los estudiantes
logran un aprendizaje significativo en el tema si prueban las soluciones a los problemas que
se les presentan contra datos reales, esto disminuye el nivel de abstraccin y reafirma los
principios tericos del modelo relacional que es uno de los ejes principales del curso.

Se establecen los requerimientos de la herramienta, tomando en cuenta la tecnologa actual.


La herramienta deber ser capaz de traducir el lgebra relacional a un lenguaje que sea
entendido no slo por los estudiantes sino por las bases de datos, se establece por lo tanto el
lenguaje SQL como el lenguaje objetivo a ser traducido. El formalismo y la simbologa de los
operadores del lgebra relacional se deben garantizar, por lo que la herramienta
necesariamente tendr los operadores oficiales (sigma, pi, ro, uniones, intersecciones y
diferencia de conjuntos) a disposicin del usuario. El ltimo requerimiento se relaciona en la
representacin grfica de las operaciones en el lgebra relacional, el sistema debe ser capaz de
representar mediante un rbol de parser la construccin de las sentencias durante la
traduccin.
Una vez establecidos los requerimientos del sistema, se escoge el lenguaje C# para
implementar la solucin informtica. Se descomponen los mdulos del sistema en cuatro
grandes partes: analizador lexicogrfico, analizador sintctico, analizador semntico y el
traductor. Los tres primeros componentes son los que garantizan que las operaciones e
instrucciones del lgebra relacional que se introducen en el sistema estn formadas
correctamente y no procesar sentencias con errores de semntica.
Capitulo 6: Funcionamiento del RAT 5

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.

Hagamos la traza del proceso de compilacin para


un simple ejemplo escrito en C++, todo el proceso
inicia cuando se tiene un archivo fuente, en este
archivo (.CPP o .H) estn escritas las instrucciones
de alto nivel que se desean compilar, recordemos
que normalmente son escritas en Entornos de
Desarrollo Integrados (IDEs), que son en el
trasfondo editores de texto que facilitan la labor de
la escritura, estos pueden ser tan simples como el
Block de Notas o tan complejos como editores
comerciales como Visual Studio de Microsoft. Es
decir, el lenguaje C++ es independiente del IDE,
por lo tanto las reglas gramaticales son definidas
por una gramtica formal y no por un compilador,
de ah la existencia de tantos compiladores para un
mismo lenguaje.

Una vez se le da la orden de compilar un archivo


.CPP o .H, el primer paso es ejecutar el analizador
lexicogrfico, cuya funcin es trasformar el flujo de
string (cadenas de texto) en tokens (objetos que
alimentan al proceso de compilacin) para su
posterior anlisis en la traduccin, para ello usa reconocimiento de patrones como
gramticas regulares o autmatas finitos. En esta fase tambin se verifica que los caracteres
pertenezcan al alfabeto de la gramtica, por ejemplo en C++ no est definido el smbolo
por lo que una expresin como 4 5 generara un error lexicogrfico. Hace aos los
programadores deban tener mucho cuidado con los identificadores de variables, pues el
6 lgebra Relacional y SQL

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.

La segunda etapa, se denomina analizador sintctico, la funcin es este analizador es


verificar la sintaxis es decir las reglas definidas en un leguajes, mediante algoritmos
aplicados a arboles de anlisis sintcticos o para casos ms simples matrices
gramaticales un ejemplo trivial, es determinar las reglas pasa saber si una expresin es un
nmero, como se muestra seguidamente en el formato BNF:

<numeral> ::= 0|1|2|3|4|5|6|7|8|9


<exp_numerica> ::= <exp_numerica><exp_numerica> | <numeral>

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.

int x = hola mundo;

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.

Las dos ltimas etapas de la compilacin son la optimizacin y generacin de cdigo, la


mayora de compiladores optimizan el cdigo para realizar ejecutables ms eficaces y
eficientes sin embargo no es condicin necesaria, por lo que algunos compiladores no
optimizan sus sentencias pero todo compilador debe generar cdigo traducido a lenguaje
maquina. La diferencia con los traductores como lenguajes HTML o JavaScript es que no
realizan ninguna de estas dos etapas.
Capitulo 6: Funcionamiento del RAT 7

3 COMPONENTES DEL SOFTWARE RAT


El RAT comparte muchos de los pasos tpicos de un compilador, existen bsicamente
cuatro etapas bien definidas que usan tcnicas aplicadas al desarrollo de un compilador.
Como se puede deducir por la imagen 6.3 el RAT aplica teora de conjuntos, matrices
gramaticales, geometra analtica, recursividad, gramticas formales, notacin BNF y
algoritmos recursivos para resolver los problemas de traduccin.

Imagen 6.3: Traduccin del RAT

Seguidamente se definirn las etapas que discrepan de un proceso de compilacin


explicado anteriormente, por ejemplo el analizador lexicogrfico no ser explicado.
8 lgebra Relacional y SQL

3.1 Pre-analizador de asignacin


Toda sentencia en el lgebra Relacional, est formada a lo sumo de una lnea, esto es muy
diferente a los dems lenguajes de programacin donde la tendencia es tener muchas lneas
de cdigo para hacer la misma funcin que una lnea en el SQL. Lo primero que se debe
hacer es transformar las sentencias de mltiples lneas a una nica sentencia evaluable.

Tomemos por ejemplo, la sentencia de asignacin en A.R:

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.

Imagen 6.4: Hash Tables


Capitulo 6: Funcionamiento del RAT 9

3.2 Conceptos tericos del RAT


La propuesta es un software que combina las tcnicas de compiladores, matemticas
discretas, estructura de datos y tcnicas avanzadas de diseo de algoritmos como la
recursividad sobre rboles binarios.

Las tcnicas de compiladores, estudian el diseo de aquellos programas que permiten


traducir un lenguaje origen a un lenguaje destino [1], normalmente cuando se hablan de
compiladores el lenguaje destino suele ser el lenguaje maquina (cdigo binario), sin embargo
la definicin no limita la existencia de un lenguaje diferente a este ltimo. Se plantea
entonces un software con caractersticas de compilador que permita traducir de lgebra
relacional a un lenguaje que las bases de datos entiendan (SQL); cabe rescatar que las bases
de datos que usan el SQL son sistemas basados en la teora de relaciones e-narias, funciones
y teora de conjuntos; motivo por el cual la traduccin entre los lenguajes es natural y evita la
perdida de funcionalidad.

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.

Definicin 1. Se define un lenguaje como un conjunto de palabras. Cada lenguaje est


formado por secuencias de smbolos (palabras) tomados de alguna coleccin finita llamada
alfabeto.

Definicin 2. Se define un alfabeto como un conjunto no vacio y finito de smbolos, entonces


escribimos un alfabeto y Una secuencia finita de smbolos de un alfabeto, se llama
palabra, expresin o cadena.

Definicin 3. Una palabra es un conjunto finito de smbolos * +, con la


concatenacin de palabras formaremos un conjunto denotado por , luego el conjunto de
palabras que tengan significado se llama diccionario.

Desde el punto de vista tcnico, un compilador adems se ser un traductor es un programa


que verifica que la sentencia de entrada sea vlida. Una sentencia valida es aquella expresin
lexicogrficamente, semnticamente y sintcticamente correcta. El software propuesto debe
cumplir estas validaciones.

Definicin 4. Una expresin es lexicogrficamente correcta si, y solo ( )( ),


con exp una palabra.
10 lgebra Relacional y SQL

Ejemplo 1. Se define el alfabeto del lgebra relacional por = {0, 1, 2, , 8, 9, _, a, b, c, , A, B,


C ,, Z, <, >, , , , =, , , , , -, , , , , , } donde representa un carcter nulo.

La utilidad del analizador lexicogrfico, es la deteccin temprana de errores de tipo


alfabtico; por ejemplo la expresin ( )( ) no es una expresin
lexicogrficamente valida, pues , en particular .

Definicin 6. Se establece una gramtica usando la definicin de Noam Chomsky [3],


compuesta por la siguiente cuaterna:

1. Un conjunto finito de smbolos, que representa la totalidad del alfabeto de un


lenguaje. Los componentes reciben el nombre de terminales o smbolos terminales.
2. Un conjunto de variables, a estas variables se les denomina no terminales o
categoras sintcticas, estos no terminales se forman por otros smbolos no
terminales o no terminales.
3. Existe un smbolo inicial, esta variable representa el inicio de la gramtica, adems
debe ser un smbolo no terminal.
4. Un conjunto finito de producciones o reglas, que representa una definicin
recursiva de lenguaje. Cada regla est conformada de:
a. Una variable llamada cabeza, es un identificador de la regla en particular.
b. El smbolo de produccin ( ).
c. Una cadena de cero o ms smbolos terminales o no terminales, a este
bloque se le llama cuerpo de la produccin, en la cual cada elemento se
sustituye recursivamente para formar una derivacin.

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.

Ejemplo 2. Se define la gramtica para el lgebra relacional la tupla ( ) con V =


{literal, numeral, smbolos numricos, smbolos lgicos, smbolos conjuntos, variable,
numero, parmetro, proyeccin, condicional, renombramiento, expresin, expresin lgica,
expresin numrica}. El conjunto T o alfabeto del lenguaje se define como T = {0, 1, 2, , 8,
9, _, a, b, c, , A, B, C ,, Z, <, >, , , , =, , , , , -, , , , , , } donde representa
un carcter nulo. Tenemos tambin el smbolo inicial S = expresin, definido en las reglas
de produccin de P.

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

<literal> ::= _|a|b|c||A|B|C||Z


<numeral> ::= ,|-|0|1|2||8|9
<simbolosNumericos> ::= +|-|*|/
<simbolosLogicos> ::= ||<|>||||=
<simbolosConjuntos> ::= ||-||
<variable> ::= <literal> <variable> | <variable>
<nmero> ::= <literal> <variable> | <variable>
<parmetros> ::= <variable> ,<parmetros> | <variable>
<proyeccin> ::= ( <parmetros> ) ( <expresin> )
<renombramiento> ::= ( <literal> ) ( <expresin> )
<condicional> ::= [<proyeccin>](<expresinLogica>)(<expresin>)
<expresinLogica> ::=
<expresinNumerica> <simboloLogicos> |
<expresinNumerica>
<expresinNumerica> ::= <variable> <simbolosNumericos> <nmero> |
<nmero> <simbolosNumericos> <variable>
<expresin> ::= [(]<expresin>[)]
<simbolosConjuntos>[(]<expresin>[)] |
<proyeccin> | <condicional> | <variable>

Definicin 8. Una expresin es semnticamente correcta si, y solo la expresin es producida


por alguna regla de produccin.

La importancia del analizador semntico, es la deteccin de errores estructurales; esto le


permite al software saber que la expresin que introduce el usuario est formada
correctamente; pongamos un ejemplo , esta expresin es lexicogrficamente valida,
pues todos los smbolos de la expresin son elementos del alfabeto; el error se encuentra en
el pues se esperaba un nmero o una variable despus del primer signo de mas.

Definicin 9. Se define una matriz gramatical o matriz de adyacencia, como una matriz
cuadrada que permite representar una relacin binaria.

Ejemplo 3. Matriz Gramatical del lgebra relacional

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

P SI LITER CONSTA PARENTES PARENT


I G AL MTE IS ESIS
M ABIERTO CERRAD
A O

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

Tabla 1 Matriz gramatical (adyacencia) de ejemplo.

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).

Definicin 10 Un rbol consta [4] de un conjunto finito de elementos, llamados nodos y un


conjunto tambin finito de lneas dirigidas o vrtices que conectan los nodos. Tambin se
puede definir como:

1. Una estructura de datos vaca.


2. Una conjunto con uno o ms nodos tales que:
a. Hay un nodo llamado raz
b. Todos los dems son subrbols de la raz, que son arboles a la vez.

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

4 MANUAL DE USUARIO DEL RAT

4.1 Requerimientos de instalacin


El software requiere tener un sistema operativo Windows 2000 SP4, Windows Xp,
Windows Vista o Windows 7, para poder ejecutarse la aplicacin el sistema debe tener
instalado el Framework 2.0 o superior el cual se pude descargar del sitio web en el caso que
la computadora no lo tenga ya instalado. Desde Windows Vista ya viene el Framework pre
instalado.

Los requerimientos mnimos del software son:

a. Procesador a 1Hghz
b. 250 Mb de memoria RAM
c. 5 Mb de disco duro libre

Los requerimientos recomendados del software son:

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

4.2 Instalacin del Software


Para poder instalar el software primero es necesario descargarlo sin costo alguno del sitio
oficial: http://www.slinfo.una.ac.cr/rat/descargas/descargas.html, una
vez que tanga descargado la aplicacin, deber ejecutar el archivo descargado. Iniciara
entonces el instalador de la aplicacin como se ve en la figura siguiente. Finalice el proceso
y ejecute la aplicacin, para iniciar la configuracin.
14 lgebra Relacional y SQL

4.3 Sobre las funcionalidades del RAT


La primera ventana que aparece cuando se ejecuta la aplicacin, es el men principal el
sistema el cual permite llamar a las dems aplicaciones del software. El RAT est
compuesto por cuatro aplicaciones principales.

Imagen 6.6: Men principal del


RAT

Observe que la primera vez que se


ejecuta el software, va aparecer
traducido al ingles; sin embargo el
RAT tiene soporte oficial para
cuando idiomas (ingles, espaol,
italiano y alemn) basado en el
nmero de pases que lo descargan.

La primera aplicacin que le va salir


es Translation Software est es el
ncleo de todo el software, es
esencialmente el subprograma que va traducir las consultas de lgebra relacional a
consultas SQL, adems es el encargado de coger las sentencias SQL y realizar el llamado a
las bases de datos.

Para fines acadmicos y de produccin resulta conveniente saber cual consulta es ms


eficiente entre varias consultas que se tengan, para ello el RAT incorpora una mtrica que
permite comparar la eficiencia entre dos consultas de lgebra Relacional. Para ello puede
ingresar al segundo programa llamado Query comparation.

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.

4.6.1 Elementos de interfaz del RAT


a) Mens del RAT

c) Ingreso de consulta b) Botones

g) Cdigo generado SQL


d) Smbolos

e) rea de generacin del rbol


f) rea de generacin del rbol

Imagen 6.7: Elementos de la ventana de traduccin

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

4.3.2 Funcionalidad de exportacin e importacin


Seguidamente se detallan las funciones de cada men y submen, partiendo por la opcin
File.

a. Import libreray: El RAT permite guardar consultas que el usuario considere


importante, estas consultas van a dar a una biblioteca comn para el programa, si
quiere puede importar bibliotecas de otros usuarios a la suya. NOTA: El importar
la biblioteca dar como resultado la eliminacin de su vieja biblioteca.
b. Export library: tiene la funcin de exportar la biblioteca comn del sistema.
c. Import R.A: importa sentencias de lgebra relacional, en este caso slo importa una
sola sentencia.
d. Export R.A: exporta slo una sentencia de lgebra relacional
e. Import SQL: importa slo una sentencia de SQL.
f. Export SQL: exporta slo una sentencia de SQL
Capitulo 6: Funcionamiento del RAT 17

4.4.3 Accesos rpidos


En el caso del men Edit, su funcin principalmente es agrupar submens cuyas funciones
sean ayudarle a escribir sentencias de lgebra relacional, ella se divide en dos submens, el
primero de ellos es el de insertar un smbolo. El programa tiene dos formas de insertar
smbolos, la primera de ellas es mediante el mouse con el punto d, en la imagen 6.7 o
mediante el men de insertar smbolo. En este mismo submen esta la opcin de limpiar
por completo la pantalla con la funcin clear expression. En la tabla 6.2 se encuentra un
resumen de los accesos rpidos, para ser llamados debe presionar la tecla Control (Ctrl)
izquierda ms el cdigo propio del acceso rpido.

Nombre de smbolo Forma del smbolo Acceso rpido


Assignment (asignacin) $variable relacin Ctrl + A

Pi {columnas} (relacin) Ctrl + P

Sigma Ctrl + S
{condicin} (relacin)
Ro {nueva} (relacin) Ctrl + R

Cartesian product (producto Relacion1 relacin2 Ctrl + Q


cartesiano )
Natural product (producto Relacion1 Relacion2 Ctrl + N
natural)
Unin Relacion1 Relacion2 Ctrl + U

Intersection (Interseccin) Relacion1 Relacion2 Ctrl + I

Diference (Diferencia) Relacion1 Relacion2 Ctrl +M

AND logical (Y lgico) Condicion1 Condicion2 Ctrl + Y

Or logical (O lgico) Condicion1 Condicion2 Ctrl + O

Tabla 6.2 Accesos rpidos


18 lgebra Relacional y SQL

4.4.4 Vistas de la aplicacin


El RAT tiene dos formas de visualizar una consulta de lgebra relacional, la primera de ellas
es mediante un rbol grafico, separado en niveles. Para ello se va utilizar una consulta
generara para este fin:

{descripcion}({identificador = id_consultor}(pf_diccionario pf_consultor))


Consulta 6.1 Ejemplo de consulta del RAT

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.

Imagen 6.8: rbol de Parser la consulta 6.1


Capitulo 6: Funcionamiento del RAT 19

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.

Imagen 6.9: Resultado de la consulta, sobre la base de datos real

4.4.5 Cambiar idioma


El RAT actualmente tiene soporte para cuatro idiomas, que son espaol, ingles, alemn e
italiano, estos idiomas fueron escogidos basados en la cantidad de descargas del programa,
desde que el sitio fue lanzado a la red. Para poder cambiar de idioma, basta con ir al men
de Language y seleccionar el nuevo idioma. El software cambiar toda la interfaz sin
reiniciar el programa, este proceso pude demorar varios segundos.

4.4.6 Establecer conexiones con la bases de datos


20 lgebra Relacional y SQL

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.

4.4.6.1 Conexin ODBC


Las siglas de ODBC significan Open Data Base Conector, es un estndar establecido por
Microsoft para permitir mediante una capa intermedia poder tener comunicacin con
diversas bases de datos, eso significa que para poder conectarse por ejemplo con MySQL, es
necesario descargar el 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.

Imagen 6.10 Administrador de orgenes de datos ODBC

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.

Imagen 6.11 Lista de orgenes instalados

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

Imagen 6.12 Lista de orgenes instalados

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.

4.4.6.2 Conexin final


Si bien es cierto, Oracle tiene su conector ODBC muchas veces resultar conveniente (en
particular con Windows de 64bits) utilizar el conector propio Oracle. En la imagen 6.13 se
completan los datos necesarios para realizar la conexin.

Imagen 6.13 Ventana de conexin del RAT


Capitulo 6: Funcionamiento del RAT 23

Detalles de conexin para Oracle

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]

Detalles de conexin para MySQL y PostGresSQL

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.

4.4 Traduccin de lgebra relacional al RAT


Procedemos ahora a traducir algunas sentencias de lgebra relacional al RAT con la
intensin de ver las particularidades en la traduccin.

Sentencia de lgebra relacional Sentencia en el RAT


( ) * +( )
( ) * +( )
, - , -
, - , -
, - , -

Todos los dems operadores, tiene una traduccin directa; es decir no requiere agregarle
patentis para su funcionamiento.
24 lgebra Relacional y SQL

4.5 Otras funciones del RAT


4.5.1 Biblioteca de consultas
El RAT da la posibilidad de guardar las consultas que se van generando, para ello es
necesario dar click en el botn de save query ubicado debajo del botn Run, una vez
hecho esto va aparecer una segunda ventana donde le va solicitar completar la informacin
de la consulta, que ser el nombre y una descripcin de la consulta. Cuando le d OK,
aparece la biblioteca con la nueva consulta. Una vez registrada la consulta es muy simple
reutilizaras o eliminarlas, tan slo debe dar click en la flecha verdad para usarla, o en la
equis roja para eliminarla. Para exportar/importar revis la documentacin de importacin
y exportacin de bibliotecas, ubicada en el tema de interfaz del RAT.

Imagen 6.14 Ciclo de vida para agregar consultas a la biblioteca


Capitulo 6: Funcionamiento del RAT 25

4.5.2 Comparador de consultas


Para determinar entre varias consultas cul de ellas es la mejor, el RAT incorporar una
mtrica basada en la cantidad de los productos cartesianos de una consulta. En toda
consulta, existen operadores unarios y binarios, si calculamos la cardinalidad (cantidad de
elementos) de los conjuntos, y sumamos todos estos productos vamos a obtener un gran
total con las poblaciones intermedias que representan el gasto de memoria de una
consulta, a mayor valor es ms ineficiente la consulta.

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.

Imagen 6.15 Comparador de consultas del RAT


26 lgebra Relacional y SQL

4.5.3 Administrador de idiomas


Aunque le RAT tenga slo cuatro idiomas instalados, los usuarios pueden modificar un
idioma existente para crear otro completamente nuevo, esta herramienta es sumamente
fcil de usar, consiste en una serie de cajas de texto que se cambian por la nueva frase
traducida.

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

Imagen 6.16 Administrador de idiomas


Capitulo 6: Funcionamiento del RAT 27

BIBLIOGRAFA CONSULTADA

[1] Aho, Alfred V. Compiladores, principios, tcnicas y herramientas, PEARSON


EDUCACIN, Segunda Edicin, Mxico, 2008.

[2] Hopcroft, Jonh E. Introduction to Automata Theory, Languajes, and Computation,


Assison Wesley, Segunda Edicin, USA, 2001.

También podría gustarte