Sei sulla pagina 1di 11

Facultad de Informtica Universidad Nacional de La Plata www.info.unlp.edu.

ar
Ctedra de Bases de Datos 1
Cursada 2009


Grupo de la materia: http://ar.groups.yahoo.com/group/bbdd1_2009 Pgina 1 de 11
Prctica Nro. 1
lgebra Relacional

Pautas

Resolver aplicando las operaciones del lgebra relacional vistas en la teora:

Seleccin
Proyeccin
Producto Cartesiano X
Producto Natural |X|
Diferencia o Resta -
Interseccin
Unin
Divisin %

Respetar la notacin propuesta.

Para consultas que se resuelvan aplicando ms de dos operaciones, utilizar
subconsultas explicando para cada una de ellas los resultados que arroja.
Para definir una subconsulta usar la notacin <- para asignar el resultado de
una subconsulta y luego reusarla. Por ejemplo:

ESTAN_EN (dinosaurio, museo)
VIVIO_EN (dinosaurio, poca)
TIENE_DATOS (museo, poca)

MUSEOS_CON_DATOS_DINOSAURIO: Museos que tienen datos de las
pocas en la que vivi un dinosaurio.

MUSEOS_CON_DATOS_DINOSAURIO <- museo, dinosaurio (TIENE_DATOS
|X|
VIVIO_EN )

RESULTADO <- museo (MUSEOS_CON_DATOS_DINOSAURIO ESTA_EN )

Importante: la idea de usar subconsultas es modularizar la consulta original de modo
de que esta quede mas legible. Este mismo concepto debe aplicarse a las subconsultas.

Nomenclatura a emplear
o Usar letras maysculas para los nombres de las tablas (ejemplo:
PERSONA).

Facultad de Informtica Universidad Nacional de La Plata www.info.unlp.edu.ar
Ctedra de Bases de Datos 1
Cursada 2009


Grupo de la materia: http://ar.groups.yahoo.com/group/bbdd1_2009 Pgina 2 de 11
o Para nombrar atributos, la primera palabra en minscula y las
siguientes que inicien en mayscula (ejemplo: nombrePersona).
Las condiciones usadas (por ejemplo en la operacin de seleccin y
proyeccin) deben expresarse como sub ndice.
A|X|
cond
B
cond
(A |X| B)
cond
(
c
(A X B)) donde
c
representa la
condicin del producto natural y
cond
es alguna condicin adicional que haya
puesto en el producto natural. Tener en cuenta que
cond
, podra no existir.
Cuando al querer hacer un producto natural, no existiese un atributo en
ambas tablas con igual nombre, se podr explicitar en la condicin del
producto natural los atributos de igualdad.
o Ejemplo

EMPLEADO (#Emp, nYAp, dir, #Depto)
DEPARTAMENTO (#Depto, nombre, fechaCreacin, #EmpDir)
PROYECTO (#Proy, nomProy, ubicacin, #DeptoRespons)

Cuando es necesario explicitar los atributos de igualdad

PROYECTO |X|
#DeptoRespons=#Depto
DEPARTAMENTO

Cuando no es necesario explicitar los atributos de igualdad.
Estn implcitos

EMPLEADO |X| DEPARTAMENTO

Destacar cual es el resultado de la consulta resuelta. Ver el ejemplo
propuesto en el ejercicio 3.2.

Recordar resolver las consultas usando slo las tablas que sean
necesarias. Es decir no poner tablas que no sean necesarias para la
resolucin.


Ejercicios

Ejercicio 1

ALUMNO (nroAlumno, nombre, grupo)
PRACTICA (nroPractica, curso, fecha)
ENTREGA (nroAlumno, nroPractica, nota)

Donde: el nroPractica en la tabla PRACTICA no se puede repetir, es decir, no puedo
tener P1 del curso 1 y del curso 2.
Considerar que una entrega est aprobada si la nota obtenida es mayor o igual
a 7 (siete).


Facultad de Informtica Universidad Nacional de La Plata www.info.unlp.edu.ar
Ctedra de Bases de Datos 1
Cursada 2009


Grupo de la materia: http://ar.groups.yahoo.com/group/bbdd1_2009 Pgina 3 de 11
1.1 Obtener los nombres de los alumnos que han aprobado todas las prcticas
de tercer curso.

1.2 Obtener los nombres de los alumnos que han entregado todas las prcticas
de tercer curso.

1.3 Obtener los alumnos que han entregado prcticas de segundo y tercer
curso. Esto implica que al menos entrego una prctica del segundo curso y
una del tercer curso.

1.4 Obtener los alumnos que solo han entregado prcticas de segundo curso.

1.5 Obtener los alumnos que han entregado prcticas de segundo curso y
pertenecen al grupo BBDD_1


Ejercicio 2

Una empresa dedicada al alquiler de cabaas maneja la informacin relativa a
las cabaas, su personal y las estadas que en ellas se realizaron en una base
de datos con las siguientes tablas:

CABAA (nroCab, capacidad, zona, categora)
PERSONAL (nroEmp, nombre, tarea, salario)
ASIG_EMP (nroEmp, nroCab)
CLIENTE (nroCli, nombre, contacto, origen)
ESTADIA (nroCab, nroCli, fInicio, dias)

2.1 Obtener los nombres de los empleados que tienen un salario menor a 1500
y estn asignados a todas las cabaas de categora A de la zona Balneario.

2.2 Obtener todas las categoras de las cabaas en las que se hospedaron
slo clientes de origen BRASIL


Ejercicio 3

ESTAN_EN (dinosaurio, museo)
VIVIO_EN (dinosaurio, poca)
TIENE_DATOS (museo, poca)

3.1 Existe algn museo que tenga informacin de todas las pocas en donde
vivieron dinosaurios?

3.2 Cules son los museos que tienen informacin sobre una poca en la que
vivi un dinosaurio y sin embargo no tiene datos de ese dinosaurio?


Facultad de Informtica Universidad Nacional de La Plata www.info.unlp.edu.ar
Ctedra de Bases de Datos 1
Cursada 2009


Grupo de la materia: http://ar.groups.yahoo.com/group/bbdd1_2009 Pgina 4 de 11
MUSEOS_CON_DATOS_DINOSAURIO: Museos que tienen datos de las
pocas en la que vivi un dinosaurio.

MUSEOS_CON_DATOS_DINOSAURIO <- museo, dinosaurio (TIENE_DATOS
|X|
VIVIO_EN )

Notar: Los campos resultantes en MUSEOS_CON_DATOS_DINOSAURIO
(museo, dinosaurio), representan los museos que tienen informacin de la poca
en la que vivi el dinosaurio.

A los museos que tienen informacin de la poca en la que vivi un dinosaurio,
se le resta los museos que tienen datos de ese dinosaurio.

RESULTADO <- museo (MUSEOS_CON_DATOS_DINOSAURIO ESTA_EN )


Ejercicio 4

ESPECIE_ANIMAL (nombreAnimal, descripcion, aosDeVida, habitat)
CONTINENTE (nombreContinente, km2, tempMaxima, tempMinima)
ERA_GEOLOGICA ( nombreEra, fInicio, fFin, descripcion)
HABITARON_DURANTE(nombreAnimal,nombreEra,nombreContinente)

4.1 Existe algn continente que no ha sido poblado en la era Cenozoica?

4.2 Cules son las especies que no se extinguieron a lo largo de todas las
eras? Retornar: Nombre del animal y la descripcin.


Ejercicio 5

LUGAR_TRABAJO (empleado, departamento)
CURSO_DEPARTAMENTO (departamento, curso)
CURSO_REALIZADO (empleado, curso)

donde:
LUGAR_TRABAJO indica qu empleados trabajan en cada departamento
CURSO_DEPARTAMENTO son los cursos que cada departamento le exige a
sus empleados
CURSO_REALIZADO son los cursos que ya hizo cada empleado

5.1 Quines son los empleados que han hecho todos los cursos,
independientemente de qu departamento los exija?

5.2 Quines son los empleados que ya han realizado todos los cursos
exigidos por sus departamentos?


Facultad de Informtica Universidad Nacional de La Plata www.info.unlp.edu.ar
Ctedra de Bases de Datos 1
Cursada 2009


Grupo de la materia: http://ar.groups.yahoo.com/group/bbdd1_2009 Pgina 5 de 11
Ejercicio 6

AEROPUERTO (codAerop, nombre, ciudad, estado)
TRAMO_VUELO (#vuelo, #tramo, codAeropSalida, horaSalida,
codAeropLlegada, horaLlegada, idAvion)
TIPO_AVION (nombreTipo, cantMaxAsientos, compaia)
PUEDE_ATERRIZAR (nombreTipo, codAerop)
AVION (idAvion, nombreTipo, totalAsientos)

6.1 Cules son los vuelos que pueden aterrizar en todos los aeropuertos que
figuran en su viaje?

6.1.a: teniendo en cuenta que para cada tramo del vuelo el avin no cambia

6.1.b: teniendo en cuenta que en cada tramo del vuelo el avin puede
cambiar

6.2 Qu vuelos en su viaje aterrizan en todos los aeropuertos permitidos para
el tipo de avin correspondiente?

Ejemplos:

Veamos con un conjunto de datos como sera la interpretacin de cada
consulta. Supongamos que se tiene en la tabla AVION y PUEDE_ATERRIZAR
los siguientes datos tanto para las consultas 6.1 y 6.2 a resolver:



PUEDE_ATERRIZAR
nombreTipo codAerop
tipoAvion1 aer1
tipoAvion1 aer3
tipoAvion1 aer4
tipoAvion2 aer2
tipoAvion2 aer4

Para el ejercicio 6.1.a hay que considerar que para cada tramo del vuelo el
avin no cambia. Segn esta consideracin se puede tener en la tabla
TRAMO_VUELO el siguiente conjunto de datos.




AVION
idAvin nombreTipo totalAsientos
av1 tipoAvion1 123
av2 tipoAvion1 123
av3 tipoAvion2 250

Facultad de Informtica Universidad Nacional de La Plata www.info.unlp.edu.ar
Ctedra de Bases de Datos 1
Cursada 2009


Grupo de la materia: http://ar.groups.yahoo.com/group/bbdd1_2009 Pgina 6 de 11


TRAMO_VUELO (Ej. 6.1.a)
#vuelo #tramo codAeropSalida horaSalida codAeropLlegada horaLlegada idAvin
v1 tr1 aer8 12 aer1 18 av1
v1 tr2 aer1 19 aer2 21 av1
v1 tr3 aer2 23 aer4 2 av1
v2 tr1 aer1 7 aer2 9 av3
v2 tr2 aer2 11 aer4 13 av3

Considerando estos datos la consulta 6.1.a (que debe devolver los vuelos que
pueden aterrizar en todos los aeropuertos que figuran en su viaje) tendra que
dar como resultado el vuelo cuyo #vuelo es v2.
El #vuelo v1 aterriza en el cdigo de aeropuerto aer2, donde no puede
aterrizar, por lo tanto no cumple con la condicin de la consulta.

En el ejercicio 6.1.b hay que considerar que cada tramo del vuelo el avin
puede cambiar. Segn esta consideracin se puede tener en la tabla
TRAMO_VUELO el siguiente conjunto de datos (notar que la tabla cambio
respecto del ejercicio 6.1.a).


TRAMO_VUELO (Ej. 6.1.b)
#vuelo #tramo codAeropSalida horaSalida codAeropLlegada horaLlegada idAvin
v1 tr1 aer8 12 aer1 18 av1
v1 tr2 aer1 19 aer2 21 av3
v1 tr3 aer2 23 aer4 2 av2
v2 tr1 aer1 7 aer2 9 av2
v2 tr2 aer2 11 aer4 13 av3

Considerando estos datos la consulta 6.1.b (que debe devolver los vuelos que
pueden aterrizar en todos los aeropuertos que figuran en su viaje) tendra que
dar como resultado el vuelo cuyo #vuelo es v1.
El #vuelo v2 aterriza en el cdigo de aeropuerto aer2 con idAvin av2, y av2 no
est habilitado para aterrizar en el aeropuerto con cdigo aer2. Por lo tanto no
cumple la condicin de la consulta.

Para el ejercicio 6.2 no tiene importancia si en alguno de los tramos del vuelo el
avin cambia o no, ya que la consulta se resuelve de la misma manera para
ambos casos. Supongamos que la tabla TRAMO_VUELO tiene el siguiente
conjunto de datos, donde se completa los datos considerando que para cada
tramo del vuelo, el avin no cambia.






Facultad de Informtica Universidad Nacional de La Plata www.info.unlp.edu.ar
Ctedra de Bases de Datos 1
Cursada 2009


Grupo de la materia: http://ar.groups.yahoo.com/group/bbdd1_2009 Pgina 7 de 11


TRAMO_VUELO (Ej. 6.2)
#vuelo #tramo codAeropSalida horaSalida codAeropLlegada horaLlegada idAvin
v1 tr1 aer8 12 aer1 18 av1
v1 tr2 aer1 19 aer2 21 av1
v1 tr3 aer2 23 aer3 2 av1
V1 tr4 aer3 3 aer4 8 av1
v2 tr1 aer1 7 aer2 9 av3
v2 tr2 aer2 11 aer4 13 av3
v3 tr1 aer5 5 aer1 8 av2
v3 tr2 aer1 9 aer4 12 av2

La consulta 6.2 tiene que devolver los vuelos que en su viaje aterrizan en todos
los aeropuertos permitidos para el tipo de avin correspondiente. Para este
conjunto de datos, la consulta retornara los nmeros de vuelos v1 y v2 ya que
ambos vuelos aterrizan en todos los aeropuertos habilitados para su tipo de
avin, es decir: (aer1, aer2, aer4) y (aer2, aer4), respectivamente.
No importa que el nmero de vuelo v1 en el tramo tr3 viole la condicin de
aterrizaje ya que eso no es lo que se est consultando.

Supongamos ahora, que la tabla TRAMO_VUELO se completa considerando
que para cada tramo del vuelo podra cambiar el avin.


TRAMO_VUELO (Ej. 6.2)
#vuelo #tramo codAeropSalida horaSalida codAeropLlegada horaLlegada idAvin
v1 tr1 aer8 12 aer1 18 av1
v1 tr2 aer1 19 aer2 21 av2
v1 tr3 aer2 23 aer3 2 av1
V1 tr4 aer3 3 aer4 8 av3
v2 tr1 aer1 7 aer2 9 av3
v2 tr2 aer2 11 aer4 13 av2
v3 tr1 aer5 5 aer1 8 av2
v3 tr2 aer1 9 aer4 12 av2


La consulta 6.2 tiene que devolver los vuelos que en su viaje aterrizan en todos
los aeropuertos permitidos para el tipo de avin correspondiente. Para este
conjunto de datos, la consulta retornara el nmero de vuelo v1 ya que aterriza
en todos los aeropuertos habilitados (aer1, aer2, aer4) del tipo de avin de los
vuelos av1 y av2, y los aeropuertos aer2 y aer4 del tipo de avin del vuelo av3.
No importa que el vuelo v1 en el tramo tr3 viole la condicin de aterrizaje ya
que eso no es lo que se est consultando.




Facultad de Informtica Universidad Nacional de La Plata www.info.unlp.edu.ar
Ctedra de Bases de Datos 1
Cursada 2009


Grupo de la materia: http://ar.groups.yahoo.com/group/bbdd1_2009 Pgina 8 de 11
Ejercicio 7

MUNDIAL (ao, pais)
CANCHA (nombreCancha, ciudad, capacidad, aoMundial)
PARTIDO (fecha, ao, equipo1, equipo2, nombreCancha, golesEq1, golesEq2)

7.1 Qu equipos jugaron en el mundial 90 en todas las canchas habilitadas
para ese mundial?

7.2 Qu equipos jugaron (para cualquiera de los mundiales) en todas las
canchas habilitadas para el mundial correspondiente?


Ejercicio 8

VUELO (#vuelo, origen, destino)

Tener en cuenta que existe el operador de renombre () para tablas y
se puede usar para resolver este ejercicio. Ejemplo de uso

Tengo la tabla definida de la siguiente manera

MUNDIAL (ao, pais)

Y ahora quiero que la tabla mundial se llame M, entonces uso el
operador de renombre de la siguiente manera:


M
(MUNDIAL)


8.1 Encontrar un vuelo o una conexin de no ms de dos vuelos para viajar de
"A" a "B".

8.2 Sea ahora la tabla vuelo con la siguiente definicin:

VUELO (#vuelo, origen, destino, hSalida, hLlegada)

8.2.1 Resolver la consulta del inciso 8.1 (Encontrar un vuelo o una
conexin de no ms de dos vuelos para viajar de "A" a "B")

8.2.2 Qu sucede con el lgebra relacional, si no se pone restriccin
en la cantidad de escalas para hallar la combinacin de vuelos para ir de
A a B?



Facultad de Informtica Universidad Nacional de La Plata www.info.unlp.edu.ar
Ctedra de Bases de Datos 1
Cursada 2009


Grupo de la materia: http://ar.groups.yahoo.com/group/bbdd1_2009 Pgina 9 de 11
Ejercicio 9

HOTEL (cantidadHabitaciones, codHotel, direccin,ciudad, dniGerente)
PASAJERO(dniPasajero, nombre, ciudad, domicilio, edad, estadoCivil,
fechaNacimiento)
SE_HOSPEDA_EN(dniPasajero, codHotel, fechaInicio, fechaFin,
cantDiasHospedaje, #habitacin, categoraHabitacion)
GERENTE(dni, nombre, apellido, domicilio, ciudad)

Donde:
El atributo categoraHabitacion de la tabla SE_HOSPEDA_EN, indica si es
Alta, Media o Baja
El atributo cantDiasHospedaje de la tabla SE_HOSPEDA_EN, representa la
cantidad de das que un pasajero se hosped en un hotel
Se debe tener en cuenta que pueden existir personas en la tabla Pasajero que
nunca se hayan hospedado en ningn hotel

9. 1 Determinar el dni, el nombre y fecha de nacimiento de aquellos pasajeros
que se hospedaron en todos los hoteles de la ciudad de La Plata.

9.2 Determinar el dni y el nombre de aquellos pasajeros de ms de 21 aos
que slo se hospedaron en hoteles con capacidad de hasta 26 habitaciones.


Ejercicio 10

FABRICA (codFabrica, razonSocial, direccin, ciudad, dniDueo)
DUEO(dniDueo, nombrePersona, apellidoPersona, ciudad, direccion)
MUEBLE(idMueble, nombre, modelo, detalle)
CARPINTERO(idCarpintero, dni, nombre, apellido, domicilio, ciudad)
MUEBLE_REALIZADO_EN(codFabrica, idMueble)
MUEBLE_REALIZADO_POR(idMueble, idCarpintero)

Donde:
Un mueble se realiza en una nica fbrica
Pueden existir carpinteros que nunca hayan realizado ningn mueble
El atributo modelo de la tabla Mueble, puede tomar los siguientes valores:
colonial, moderno o europeo

10.1 Determinar todos los muebles que han sido fabricados en la misma ciudad
que la ciudad en la que vive el carpintero que los realizo. Listar el nombre del
mueble y el nombre del carpintero.








Facultad de Informtica Universidad Nacional de La Plata www.info.unlp.edu.ar
Ctedra de Bases de Datos 1
Cursada 2009


Grupo de la materia: http://ar.groups.yahoo.com/group/bbdd1_2009 Pgina 10 de 11
Ejercicio 11

EMPLEADO (#legajo, nombre, apellido, direccion, ciudad, fechaNacimiento)
DEPARTAMENTO(#departamento, nombre, direccion, ciudad)
AREA(#area, nombre)
TRABAJA_EN (#legajo, #departamento)
DIVIDIDO_EN (#area, #departamento)

Donde:
Un rea tiene muchos departamentos
Los empleados pueden trabajar en ms de un departamento
El atributo nombre de la tabla AREA puede tomar los valores: Finanzas,
Comercial o Compras
Los nombres de departamentos no se repiten en diferentes reas

11.1 Listar el apellido, nombre y #legajo de los empleados que trabajan slo en
departamentos de la ciudad de La Plata (independientemente del rea a la
que estos pertenezcan).


Ejercicio 12

Una empresa se divide en varias reas, en cada una de las cuales trabajan
empleados. La empresa define un conjunto de roles y un conjunto de tareas
que puede realizar cada rol (una tarea puede realizarse en ms de un rol).
Dentro de cada rea cada empleado tiene un rol y realiza una sola tarea
correspondiente a ese rol. Cada rea posee un nico jefe responsable.

EMPLEADO(#Empleado, nombre, apellido, dni)
AREA(#Area, nombre, descripcinObjetivo, #EmpleadoJefe)
ROL(#Rol, nombre, descripcin, incumbencias)
TAREA (#Tarea, nombre, descripcin)
ROL_TAREA (#Rol,#Tarea)
ASIGNACION(#Empleado, #Area, #Rol, #Tarea)

12.1 Determine el nombre y apellido del jefe de aquellas reas en que se
realizan todas las tareas de todos los roles.


Ejercicio 13

Un sistema dedicado a la venta de inmuebles maneja informacin referente a
las inmobiliarias, los empleados de las mismas, los inmuebles a la venta y las
ventas realizadas. El sistema considera lo siguiente:

- Un inmueble puede ser vendido ms de una vez en el sistema. Los
mismos son asignados a distintas inmobiliarias dentro del sistema

Facultad de Informtica Universidad Nacional de La Plata www.info.unlp.edu.ar
Ctedra de Bases de Datos 1
Cursada 2009


Grupo de la materia: http://ar.groups.yahoo.com/group/bbdd1_2009 Pgina 11 de 11
durante periodos de tiempo (tener en cuenta que el mismo inmueble
podra estar ofrecido en el mismo perodo de tiempo por mas de una
inmobiliaria).
- El inmueble es vendido por un empleado de una inmobiliaria en
particular.
- El tipo del inmueble puede ser casa, departamento, oficina, etc.
- Los empleados pueden trabajar para varias inmobiliarias.

El sistema cuenta con una base de datos con las siguientes tablas:

INMUEBLE (idInmueble, direccion, cantidadHabitaciones, tipoInmueble)
INMOBILIARIA (idInmobiliaria, nombre, direccion, ciudad, telefono)
EMPLEADO (#Empleado, dni, nombre, direccion, ciudad, telefono, %Comision)
EMPLEADO_TRABAJA (idInmobiliaria, #Empleado)
TIENE_ASIGNADO (idInmobiliaria, idInmueble, fechaInicio, fechaFin)
VENTA (idInmobiliaria, #Empleado, idInmueble, fechaVenta, precio)

13.1 Cules son los empleados que trabajan en inmobiliarias de la ciudad de
La Plata y cobran una comisin de ms del 5% por venta?

13.2 Cules son las inmobiliarias que solo vendieron inmuebles que son
catalogados como casa? Se quiere conocer el nombre de las inmobiliarias.

13.3 Cules son las inmobiliarias que vendieron todos los tipos de
inmuebles registrados en el sistema.

13.4 Existen inmobiliarias que nunca hayan registrado ventas?, dar el
nombre de las mismas.

13.5 Cul es el nombre de aquellos empleados que realizaron ventas para
inmobiliarias ubicadas en ciudades distintas a la que el reside?

Potrebbero piacerti anche