Ejercicios de Algebra Relacional
Ejercicio 1 Sea una base de datos de una compa˜ n´ıa de constr c onstruccio ucciones nes con co n los siguiente sig uientess esquemasesque masrelaci´on: on: fechaComienzo) OBRAS(nroObra, director, tipoObra, fechaComienzo) (nroObrero, nroObra, fecha, codTarea) codTarea) TRABAJA(nroObrero, (nroObrero, nomObrero, nomObrero, especialidad) especialidad) PERSONAL(nroObrero, on, on, duracion) TAREAS(codTarea, descripci´ Se cumplen las siguientes restricciones de inclusi´ on: on: •
ΠnroObrero (TRABAJA) ⊆ Π nroObrero (PERSONAL)
•
ΠnroObra (TRABAJA) ⊆ Π nroObra (OBRAS )
•
AREAS ) ΠcodTarea (TRABAJA) ⊆ Π codTarea (T AREAS
´ Relacional: Se pide: Resolver las siguientes consultas en Algebra a) Obtener los n´ umeros de las obras tales que todas las tareas realizadas en ella tienen umeros una duraci´ on on de por lo menos 10. b) Obtener los n´ umeros de obra, director y fecha de comienzo de las mismas tal que umeros ˜ en las obras solo participaron obreros cuya especialidad es “ALBANIL”. c) Obtener los n´ umeros de obra, director y fecha de comienzo de las mismas tal que en umeros ˜ las obras participaron obreros cuya especialidad es “ALBANIL” y obreros de otras especialidades. d) Obtener los n´ umeros de obra, director y fecha de comienzo de las mismas tal que umeros ˜ en las obras participaron obreros con especialidad “ALBANIL”.
1
Ejercicio 2 La informaci´ on sobre el movimiento de barcos de carga en los puertos se mantiene en el siguiente esquema de base de datos: PUERTOS(nombre, pais, tipoAgua) Una tupla en esta tabla representa un puerto del que se conoce el nombre, el pa´ıs en que se encuentra y el tipo de agua (tipoAgua ) que puede ser dulce o salada. BARCOS(matricula, nombre, bandera) Una tupla en esta tabla representa un barco del que se conoce su matrcula, su nombre, y el pa´ıs que di´o su autorizaci´ on para circulaci´ on (bandera ). ATRACA(matricula, nombre, pais, fecha) Una tupla en esta tabla representa que un barco (matricula ) atraca en un determinado puerto (nombre, pais ) en una fecha determinada. MERCADERIA(codigo, unidad, descripcion, tipo) Una tupla en esta tabla representa una mercadera que se comercia y de la que se conocen esos atributos. MOVIMIENTO(matricula, nombre, pais, fecha, codigo, tipoMov, cant) Una tupla en esta tabla representa un movimiento de carga o descarga (tipoMov ) de cierta cantidad (cant ) de una mercader´ıa (codigo ), realizado sobre un barco atracado en puerto (matricula, nombre, pais, fecha ). Se cumplen las siguientes restricciones de inclusi´ on: •
Πmatricula (ATRACA) ⊆ Π matricula (BARCOS )
•
Πnombre,pais (ATRACA) ⊆ Π nombre,pais (P U E R T O S )
•
Πmatricula,nombre,pais (M OV I M I EN T O ) ⊆ Π matricula,nombre,pais (ATRACA)
•
Πcodigo (M OV I M I EN T O ) ⊆ Π codigo (MERCADERIA)
´ Relacional: Se pide: Resolver las siguientes consultas en Algebra a) Obtener matr´ıcula, nombre y bandera de los barcos que atracaron en todos los puertos de Espa˜ na. b) Obtener el c´ odigo y descripci´on de las mercader´ıas que han sido cargadas solo en puertos de India. c) Obtener los u´ltimos 5 barcos que atracaron en el “Puerto de Colonia” de Uruguay suponiendo que en un puerto puede atracar solo un barco a la vez.
Ejercicio 3 Se mantiene la informaci´on estad´ıstica de empresas de la regi´ on en el siguiente esquema de base de datos: EMPLEADO(nombrePersona, calle, ciudad) TRABAJA(nombrePersona, nombreEmpresa, salario) 2
EMPRESA(nombreEmpresa, ciudad) SUPERVISA(nombrePersona, nombreSupervisor)
Se cumplen las siguientes restricciones de inclusi´ on: •
ΠnombrePersona (TRABAJA) ⊆ Π nombrePersona (EMPLEADO )
•
ΠnombrePersona (S U P E RV I S A) ⊆ Π nombrePersona (EMPLEADO)
•
ΠnombreSupervisor (S U P E RV I S A) ⊆ Π nombrePersona (EMPLEADO )
•
ΠnombreEmpresa (TRABAJA) ⊆ Π nombreEmpresa (EMPRESA)
´ Relacional: Se pide: Resolver las siguientes consultas en Algebra a) Obtener los nombres de todos los empleados que trabajan para el “Banco Central del Uruguay”. b) Obtener el nombre y la ciudad de residencia de los empleados que trabajan para el “Banco Central del Uruguay”. c) Obtener el nombre, la calle y ciudad de residencia de los empleados que trabajan para el “Banco Central del Uruguay” que ganan m´ as de $25.000. d) Obtener los nombres de empleados que viven en la misma ciudad en donde se ubica la empresa para la que trabajan. e) Obtener los nombres de empleados que viven en la misma ciudad y sobre la misma calle que vive su supervisor. f) Obtener los nombres de todos los empleados que no trabajan para el “Banco Central del Uruguay” asumiendo que todos los empleados trabajan. Luego repita el ejercicio suponiendo que pueden haber empleados que no trabajan para empresa alguna. g) Obtener los nombres de todos los empleados que ganan m´as que todo empleado del “Banco Central del Uruguay”. h) Suponiendo que las empresas pueden estar ubicadas en varias ciudades. Obtener todas las empresas ubicadas en toda ciudad en donde se encuentre la empresa “Kiosko de Cuch´ u”.
Ejercicio 4 En una cadena de hoteles internacional se tiene una base de datos con el siguiente esquema: HOTELES (codHotel, nomHotel, ciudad, cantHabitaciones) Contiene los datos de los hoteles pertenecientes a la cadena: c´ odigo de hotel, nombre de hotel, ciudad donde se encuentra y cantidad de habitaciones. EMPLEADOS (ciEmp, nomEmp, tel, cargo, fechaIngreso) Contiene los datos de los empleados de la cadena hotelera: c´edula de empleado, nombre, tel´efono, cargo que ocupa y fecha de ingreso al cargo. 3
CLIENTES (ciCli, nomCli, email, telefono)
Contiene los datos de los clientes de la cadena hotelera: c´edula de cliente, nombre, email y tel´efono. RESERVAS (codReserva, ciCli, codHotel, nroHab, ciEmp, fechaRes, fechaEnt, fechaSal) Contiene los datos de las reservas de habitaciones hechas por un empleado para un cliente en un hotel. Existe un c´ odigo de reserva, una fecha de reserva, una fecha de entrada y una fecha de salida. ESTADIAS (codReserva, fechaEntEst, fechaSalEst, saldo) Contiene los datos de las estad´ıas de los clientes en los hoteles. Cada estad´ıa se identifica por el c´odigo de reserva que le corresponde, y tiene una fecha de entrada y una fecha de salida. Se cumplen las siguientes restricciones de inclusi´ on: •
ΠciCli (RESERV AS ) ⊆ Π ciCli (C L I E N T E S )
•
ΠcodHotel (RESERV AS ) ⊆ Π codHotel (HOTELES )
•
ΠciEmp (RESERV AS ) ⊆ Π ciEmp (EMPLEADOS )
•
ΠciEmp (ESTADIAS ) ⊆ Π codReserva (RESERV AS )
´ Relacional: Se pide: Resolver las siguientes consultas en Algebra a) Devolver c´edula y nombre de los empleados que hicieron reservas en todos los hoteles con cantidad de habitaciones mayor a 50. b) Devolver nombre y ciudad de los hoteles donde hicieron reservas exactamente los mismos clientes que reservaron en el hotel c´ odigo “CHE10”.
4