Está en la página 1de 25

UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA

CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION


PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

ACTIVIDAD DE LABORATORIO complementaria a U4

lgebra Relacional con RAT Relational Algebra Translator


RAT permite al estudiante escribir sentencias en algebra relacional las cuales son
traducidas al lenguaje SQL con el propsito de verificar las sintaxis correcta de estas
expresiones. RAT permite adems establecer conexiones a bases de datos relacionales
como: Oracle, MySQL, SQL Server, PostGres, Access por citar algunas, mediante una
opcin de conexin, para que el estudiante pueda obtener visualmente los resultados de
sus consultas en forma de tablas.
Este software fue desarrollado como proyecto de investigacin a cardo del docente M.Sc.
Johnny Villalobos Murillo y programado por el estudiante Steven Brenes Chavarra
(sbrenesms@gmail.com) de la Universidad Nacional de Costa Rica.
El sistema "Relational Algebra Translator (RAT)" cuenta con las siguientes
caractersticas (Versin 4.0):
- Biblioteca de consultas - Generador de rboles de parser
- Administrador de idiomas - Traductor al SQL
- Comparador de consultas - Conexiones a Sistemas Gestores de Bases
- rboles de parser de Datos
- Analizador lexicogrfico - Ejecutar instrucciones SQL
- Analizador semntico
Lo pueden descargar en:
http://www.slinfo.una.ac.cr/rat/download.html
Y el manual oficial en espaol en:
http://www.slinfo.una.ac.cr/rat/documentation/Cap.%206-%20RAT.pdf
Para poder instalar el software primero es necesario descargarlo sin costo alguno del
sitio oficial, una vez que tanga descargado la aplicacin, deber ejecutar el archivo
descargado. Iniciara entonces el instalador de la aplicacin. Finalice el proceso y ejecute
la aplicacin, para iniciar la configuracin
El software requiere tener un sistema operativo Windows 2000 SP4, Windows Xp,
Nota: 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 en adelante ya
viene el Framework pre instalado).
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

Laboratorio extra TP4-GD-2016 Pgina 1


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

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

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

Laboratorio extra TP4-GD-2016 Pgina 2


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

Elementos de la ventana de traduccin


Como se puede ver, la interfaz del RAT tiene muchas opciones para facilitar el
procesamiento de las consultas.
El RAT tiene dos formas de visualizar una consulta de lgebra relacional, la primera de
ellas es mediante un rbol grafico, separado en niveles. El RAT tambin disponen de
otra vistas ms tradicionales como la representacin de tablas
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 ver los primeros operadores de AR en esta guia comenzaremos con la
vista tradicional query result Resultado de la consulta.

Laboratorio extra TP4-GD-2016 Pgina 3


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

Establecer conexiones con la bases de datos


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.

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.

En el Panel de control, haga clic en Herramientas administrativas.

En Herramientas administrativas, haga clic en Orgenes de datos (ODBC)

Laboratorio extra TP4-GD-2016 Pgina 4


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

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
instalados en la computadora
Por ejemplo en la ventana siguiente 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 sitio oficial de MySQL, donde descarg el motor:
https://dev.mysql.com/downloads/connector/odbc/

Administrador de orgenes de datos ODBC


NOTA: fichero guardado en carpeta dentro de equipo virtual
Laboratorio extra TP4-GD-2016 Pgina 5
UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

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
a. Data sourcce Name: este es el nombre con el que vamos identificar la conexin,
nombremos la conexin como EjemploEmpresa.
b. Server: se establece la direccin IP de donde se encuentra el servidor, cmo est
en la misma computadora colocamos 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.
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.
Microsoft ODBC Driver para DB2.
http://www.ryslander.com/how-to-install-and-configure-db2-odbc-driver/
Debe configurar la informacin del origen de datos para cada sistema de DB2 que van a
tener acceso utilizando el controlador ODBC para DB2. Los parmetros predeterminados
para el controlador ODBC para DB2 se utilizan para el origen de datos slo y deben
configurarse por separado para cada origen de datos. Para configurar el controlador,
siga estos pasos:
a. Haga clic en Inicio, seleccione Configuracin y, a continuacin, haga clic en Panel de
Control.
b. Haga doble clic en orgenes de datos ODBC.
c. Seleccione un DSN de usuario, DSN de sistema o DSN de archivo.
d. Haga clic en el controlador ODBC de Microsoft para DB2 y, a continuacin, haga clic en
Finalizar.

Laboratorio extra TP4-GD-2016 Pgina 6


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

Estas sern las tablas que usaremos en la mayora de EJEMPLOS


EMPLEADOS

DEPARTAMENTOS

Necesitamos crear estas dos tablas en la base de datos de Oracle (iniciar una nueva
conexin con usuario nuevo creado para esta guia) e importar mediante SQLDeveloper
las instancias desde el fichero de Excel: eje AR.xls

Laboratorio extra TP4-GD-2016 Pgina 7


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

Si bien es cierto, Oracle tiene su conector ODBC muchas veces resultar conveniente (en
particular con Windows de 64bits) utilizar el conector propio Oracle

Laboratorio extra TP4-GD-2016 Pgina 8


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

Ventana de conexin del RAT


Detalles de conexin para Oracle
- 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]
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.

Laboratorio extra TP4-GD-2016 Pgina 9


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

TRADUCCIN DE LGEBRA RELACIONAL AL RAT


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

Todos los dems operadores, tiene una traduccin directa; es decir no requiere
agregarle patentis para su funcionamiento
La herramienta propuesta es una aplicacin computacional que debe combinar las
tcnicas de compiladores, matemticas discretas, estructura de datos y tcnicas de
programacin de algoritmos como recursividad sobre rboles binarios para lograr el
objetivo final. Con caractersticas de compilador que permita traducir sentencias de
lgebra relacional a un lenguaje que las bases de datos entiendan (SQL),
La traduccin entre el lgebra relacional al SQL evita la prdida de funcionalidad,
ejemplo de ello es que existe el equivalente en SQL de los operadores del lgebra
relacional. En el siguiente cuadro se muestran algunos ejemplos de las equivalencias:
Ejemplo de traduccin del lgebra relacional al SQL1

1
Fuente: JOHNNY VILLALOBOS MURILLO, STEVEN BRENES CHAVARRA Y SONIA MORA RIVERA.
Herramienta asistida por computadora para La enseanza del lgebra relacional en Bases de datos UNICIENCIA 26 pp.
79-195 2012
Laboratorio extra TP4-GD-2016 Pgina 10
UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

A. SELECCIN
Operador de seleccin , selecciona un subconjunto de las tuplas de una relacin.

Tuplas seleccionadas son las que satisfacen cierto predicado lgico P. El predicado puede
depender de los atributos de la relacin y de valores constantes. El operador toma una
relacin como argumento y el resultado es una nueva relacin
Por ejemplo:
- Seleccionar los datos del empleado Soto

nombre=Soto (empleados)

- Los datos de los empleados con sueldo $500.000 que ingresaron despus del 2003

sueldo 500000 fechaing 01/01/2003 (empleados)

Laboratorio extra TP4-GD-2016 Pgina 11


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

B. PROYECCIN
Operador de proyeccin , proyecta una relacin sobre un subconjunto de sus atributos.

A representa el conjunto de atributos sobre los que la relacin r se proyectar


El operador toma una relacin como argumento y el resultado es una nueva relacin.
Por ejemplo:
- Obtener los nombres de los distintos departamentos

nombre (departamentos)

Laboratorio extra TP4-GD-2016 Pgina 12


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

- Obtener los montos de sueldo de los empleados:

sueldo (empleados)

NOTA: se eliminan los


repetidos! una relacin
es un conjunto

Laboratorio extra TP4-GD-2016 Pgina 13


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

C. COMPOSICIN DE OPERACIONES
El resultado de cada operacin es una nueva relacin se pueden aplicar operadores a
los resultados de aplicaciones previas.


Por ejemplo:
- Obtener los nombres de los empleados que ganan ms de $1.000.000.

nombre ( sueldo > 1000000(empleados) )

- Obtener el sueldo y la fecha de ingreso de Soto:

sueldo, fechaing ( nombre = Soto (empleados) )

Laboratorio extra TP4-GD-2016 Pgina 14


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

D. UNIN
Dado que las relaciones son conjuntos de tuplas, se pueden realizar las operaciones
usuales de conjuntos como la unin.

Ambas relaciones deben tener el mismo nmero de atributos.


El dominio del atributo i-esimo de cada relacin debe coincidir.
Por ejemplo:
- Obtener los nombres de los empleados que ganan mas de $1.500.000 o que trabajan en el
departamento con cdigo A1

nombre ( sueldo > 150000(empleados) coddept=A1(empleados)

Laboratorio extra TP4-GD-2016 Pgina 15


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

E. DIFERENCIA
Tambin se puede usar la diferencia de conjuntos, las tuplas que estn en una relacin
pero no en la otra

Para poder realizar la diferencia se deben cumplir las mismas restricciones que para la
unin
Por ejemplo (agregando la tabla alumnos):

nombre (alumnos) - nombre ( carrera=Bioinformatica(alumnos))

Resulta en una relacin que contiene a todos los nombres de los alumnos excepto de los alumnos
de la carrera de Bioinformtica.

F. PRODUCTO CARTESIANO
Representa al producto cartesiano usual de conjuntos. Combina tuplas de cualquiera dos
(o ms) relaciones, hace la combinacin de todos con todos.

Si las relaciones a operar tienen N y M tuplas de n y m componentes respectivamente, la


relacin resultante del el producto cartesiano tiene N M tuplas de n + m componentes.
No hay restricciones a los dominios de las relaciones similares a las anteriores
operaciones. Nos permite reunir datos de dos relaciones distintas.
Cuidado con los nombres repetidos! se deben renombrar ciertos atributos para no
tener problemas.

Laboratorio extra TP4-GD-2016 Pgina 16


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

Por ejemplo:
- Obtener el nombre del departamento en el que Soto trabaja:
Primero hacemos la unin cartesiana igualando un atributo

departamentos.coddept=empleados.coddept(empleados departamentos))

Ahora podemos hacer la seleccin y proyeccin

departamentos.nombre ( empleados.nombre=Soto (
departamentos.coddept=empleados.coddept(empleados departamentos)))

Laboratorio extra TP4-GD-2016 Pgina 17


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

G. RENOMBRE
A veces necesitamos obtener informacin uniendo datos de la misma tabla.
Como nos referimos a una u otra instancia de la tabla empleado? El operador de
renombre soluciona el problema.

El operador toma una relacin y entrega la misma relacin pero con otro nombre,
podemos referirnos a distintas instancias de la misma relacin.
Por ejemplo Obtener los nombres de todos los empleados que ingresaron despus que Soto a la
empresa.

empleados ( nombre=Soto ( empleado2(empleados))

Ahora podemos hacer:


( (
empleados.nombre empleados.fechaing > empleado2.fechaing
empleados ( ( (empleados))))
nombre = Soto empleado2

Laboratorio extra TP4-GD-2016 Pgina 18


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

FORMALIZACIN Y NOTACIN DE RBOL


El LGEBRA RELACIONAL es un lenguaje de expresiones. Toda expresin se puede generar
a partir de las siguientes reglas:

Cada expresin generada por las reglas anteriores tiene como resultado una relacin.
A veces es ms cmodo representar expresiones extensas usando rboles
Toda relacin resultado de una expresin en el lgebra relacional se puede ver como
un rbol donde cada NODO interno est etiquetado por una OPERACIN:
- Las HOJAS son relaciones efectivas de la base de datos.
- La relacin representada por un RBOL es la relacin que resulta de aplicar la
operacin etiquetada en su raz a la relacin representada por cada uno de los
subrboles hijos.

Por ejemplo la relacin resultante de

departamentos.nombre empleados.nombre ' Soto'


empleados.coddept departamentos.coddept empleados departamentos

Est representada por el siguiente rbol:

Laboratorio extra TP4-GD-2016 Pgina 19


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

OPERACIONES ADICIONALES
Las operaciones anteriores son sucientes para denir toda el lgebra relacional.
Algunas consultas habituales son complejas de realizar con combinaciones de
operaciones simples, usamos algunos operadores adicionales
H. INTERSECCIN
La interseccin usual de conjuntos

Se deben cumplir las mismas restricciones que en la UNIN y DIFERENCIA, los atributos de
las relaciones involucradas deben tener los mismos dominios.
La interseccin se puede crear a partir de la diferencia:

Por ejemplo nombre alumnos.preg nombre alumnos.posg

Resulta en una relacin que contiene los nombres de todos los alumnos que son simultneamente
de pre y posgrado.

I. REUNIN NATURAL(JOIN)
Hace un producto cartesiano de sus dos argumentos y realiza una seleccin forzando la
igualdad de atributos que aparecen en ambas relaciones.

Elimina repetidos (como toda operacin de conjuntos).


Ejemplo: listar todos los empleados y el nombre del departamento en el que trabajan
empleados.nombre , departamentos.nombre empleados departamentos

Laboratorio extra TP4-GD-2016 Pgina 20


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

J. JOIN EN GENERAL
Un forma mas general de hacer Join es especicando una propiedad de reunin.
Se hace entonces un producto cartesiano de las dos relaciones y se realiza una seleccin
forzando una propiedad ms general que la igualdad de atributos que aparecen en
ambas relaciones.

Donde P es la propiedad de reunin.


Ejemplo: listar todos los pares de nombres de empleados y departamentos tales que el
empleado ingres a la empresa en una fecha anterior a la de creacin del departamento

RELACIONES TEMPORALES
A veces las consultas se hacen muy extensas. Una forma de simplicarlas es usando
relaciones temporales y asignndoles expresiones para usar despus:

Asigna la expresin de lgebra relaciones E a la nueva relacin r.


Ejemplo:

El ltimo resultado son los nombres de empleados y el departamento en el que trabajan tales que
el sueldo del empleado es mayor a $500.000

CLCULO RELACIONAL DE TUPLAS


El clculo relacional de tuplas es un lenguaje no procedural.
Con el lgebra relacional damos un procedimiento para una expresin.

En el clculo relacional de tuplas especicamos la informacin deseada sin dar un


procedimiento para obtenerla.

Este ltimo conjunto representa a la relacin de todas las TUPLAS t que cumplen la
PROPIEDAD lgica P.

Laboratorio extra TP4-GD-2016 Pgina 21


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

Supongamos que necesitamos slo los nombres de los empleados que tienen sueldo
mayor a $500.000. En lgebra relacional usamos el operador para obtener slo los
nombres. En el clculo relacional de tuplas debemos usar la construccin existe :

que signica: existe una tupla t en la relacin r que cumple el predicado Q(t).

Ejemplo: obtener los nombres de los empleados que tienen sueldo mayor a $500.000.

Se lee: el conjunto de todas las tuplas tales que existe una tupla s en la relacin empleado
para la cual los valores de t y s son iguales en el atributo nombre y el valor de s en el atributo
sueldo es mayor que 500000.
La variable de TUPLA t se dene slo en el atributo nombre, es el nico atributo no
cuanticado. El resultado es una relacin con slo un atributo.

Laboratorio extra TP4-GD-2016 Pgina 22


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

Ejercicios solucionados para trabajar

1. Una biblioteca privada desea elaborar una BD para almacenar la informacin


relativa a los libros que posee, as como a los datos relativos a sus usuarios Tablas
en forma normal de Codd
R1(T1,L1) R3(T3,L3) R5(T5,L5) R6(T6,L6)
USUARIO EJEMPLAR PRSTAMO AUTOR
H dni_usuario B titulo_ejemplar A numero_ejemplar A numero_ejemplar
I nombre_usuario C editorial B titulo_ejemplar G nombre_autor
J domicilio_usuario D ao_publicacion K estado_prestamo
E numero_copias L mes_prestamo
F estantera H dni_usuario
Esta descomposicin cumple con la propiedad de preservacin de dependencias

lgebra Relacional

Ttulos de libros prestados durante el mes de enero

ttulo _ ejemplar mes _ prestamo " enero" PRESTAMO

Nombre de los autores de los ttulos que nunca han sido presentados.

nombre _ autor AUTOR * estado _ prestamo " no" dni _ usuario " " PRESTAMO

2. Tenemos el siguiente esquema relacional de base de datos:


CLIENTES(N Cliente, Nombre, Direccin, Telfono, Poblacin)
PRODUCTO(Cod Producto, Descripcin, Precio)
VENTA(Cod Producto, N Cliente, Cantidad, Id Venta)
La tabla de clientes almacena informacin sobre cada posible cliente de nuestra
empresa. En la tabla de productos almacenamos informacin sobre cada producto de la
empresa. La tabla de ventas relaciona a las dos anteriores utilizando el atributo cod
Producto para indicar el producto que se venda, y el atributo N Cliente para indicar el
cliente al que vendimos el producto.
Lo primero es renombrar las tablas para facilitar su manejo en las consultas:

Sobre ella se realizan estos ejercicios:

Laboratorio extra TP4-GD-2016 Pgina 23


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

a. Realizar una consulta que muestre el nombre de los clientes de Palencia

b. Indicar el cdigo y descripcin de los productos cuyo cdigo coincida con su


descripcin

c. Obtener el nombre de los clientes junto con el identificador de venta y la cantidad


vendida, de aquellos productos de los que se vendieron ms de 500 unidades

d. Nombre de los clientes de la tabla Clientes que no aparecen en la tabla de ventas


(Clientes que no han comprado nada)

e. Nombre de los clientes que han comprado todos los productos de la empresa
Se aplica una divisin sobre toda la tabla de ventas mezclada con clientes y se divide
entre la tabla de productos (quedan los clientes que tienen todas las combinaciones de la
tabla de productos)

f. Identificador de las ventas cuya cantidad supera a la cantidad vendida en la venta


nmero 18
Dividimos la consulta en dos, primero obtenemos la fila correspondiente a la venta n 18 y
luego la combinamos con todas las dems eliminando las que tengan ventas menores

g. Productos que no se han comprado nunca en Palencia


Se resuelve sacando primero los productos que s se compraron en Palencia y luego
restndoles del conjunto total de Productos

h. Productos que se han vendido tanto en Palencia como en Valladolid


Se trata de una interseccin entre los productos de Palencia y los productos comprados en
Valladolid

Laboratorio extra TP4-GD-2016 Pgina 24


UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL MENDOZA
CATEDRA: GESTION DE DATOS - INGENIERIA EN SISTEMAS DE INFORMACION
PROFESOR: Mara E. STEFANONI JTP: Higinio A. FACCHINI Ayte: Matilde I. CESARI

i. Poblaciones a las que hemos vendido todos nuestros productos


Necesitamos sacar la lista de poblaciones con los cdigos de productos que se han vendido
en ellas. Luego dividimos entre los cdigos de la tabla de productos y quedarn las
poblaciones en las que se han pedido todos los cdigos

Imaginemos que aadimos la tabla de facturas que se relaciona con la de ventas, de


modo que a la tabla de ventas le aadimos el n de Factura con la que se relaciona. En
la tabla de factura indicamos la fecha, el nmero y si se pago o no (un 1 significa
pagado, un 0 que no est pagada). Cada factura se corresponde con varias ventas y con
un solo cliente, para lo cual se vara el diseo:
FACTURA(N Factura, Fecha, Pagada, N Cliente)
VENTA(Cod Producto, N Factura, Cantidad, Id Venta)
j. Obtener el nombre de los clientes que tienen alguna factura sin pagar

k. Clientes que han pagado todas sus facturas


La consulta no se puede hacer como la anterior, ya que puede haber clientes que hayan
pagado algunas facturas y otras no. Se parte de la consulta anterior para hacer esto

Laboratorio extra TP4-GD-2016 Pgina 25

También podría gustarte