Problema 1. Banco Central El Banco Central ha decidido crear una base de datos para gestionar los clientes y sus préstamos. Sabemos que del cliente se almacena información tal como identificador del cliente, su nombre, sus apellidos, su edad, dirección y ciudad. Respecto al préstamo interesa almacenar el número del préstamo, el tipo, la sucursal donde se ha concedido, la fecha de inicio y el importe del mismo. Definir dicha base de datos mediante un esquema relacional, identificando claves primarias y ajenas. Problema 2. Olimpiadas Se desea crear una base de datos que recoja información relativa a unas olimpiadas. Nos interesa almacenar información de las pruebas (código, descripción y un lugar) así como de los atletas (id, nombre, fecha y opcionalmente un teléfono) que compiten en dichas pruebas, pudiendo obtener alguno de ellos medalla de oro, plata o bronce. También es interesante conocer a que país (nombre, habitantes y continente) pertenece cada atleta. Durante las olimpiadas los atletas se hospedan en habitaciones caracterizadas por un número, las vistas que tiene y el número de teléfono de dicha habitación. Representar mediante un esquema relacional la base de datos descrita anteriormente. Página 1
Problema 3. Mudanzas NuevoHogar La empresa de mudanzas NUEVOHOGAR ha decidido crear una base de datos para realizar la gestión de las mudanzas que llevan a cabo. La información que se desea gestionar es la siguiente: En la empresa NUEVOHOGAR trabajan OPERARIOs de los que se almacena un código de operario, el nombre completo, el número de seguridad social (NSS), la fecha de incorporación a la empresa, el número de cuenta corriente (CC) y teléfono móvil. NUEVOHOGAR se dedica a realizar dos tipos de MUDANZAs, hogar y empresa, por todo el territorio nacional. Cada mudanza se identifica por un código único, tiene una breve descripción y un periodo de realización (f_inicio y f_fin). Además, se almacena su lugar de origen. En cada mudanza es un operario el responsable de la ejecución de la misma. Las mudanzas se asignan a una determinada oficina, que será aquélla donde el cliente la contrata. También se guarda el cliente que solicitó la mudanza. Además en la relación REALIZA se almacenan los operarios que han participado en cada una de las mudanzas. La empresa tiene distintas OFICINAs, que se identifican por un código único. De cada una de ellas se almacena la dirección completa, el teléfono de la misma, así como el número de fax. Algunas oficinas pueden depender de otra de mayor envergadura. El atributo depende_de_oficina contiene el código de la oficina de mayor envergadura, si es que existe. Las mudanzas las solicita siempre un CLIENTE, del que se desea almacenar su DNI, su nombre, sus apellidos y un teléfono de contacto. Página 2
Problema 4. Autores, Libros y Editores Dado el siguiente esquema relacional: Resolver las siguientes consultas mediante operadores de álgebra relacional: a) Obtener el título de todos los libros. b) Obtener los libros de la editorial Addison-Wesley. c) Obtener el nombre de los autores que trabajan en la URJC. d) Obtener el nombre de los autores y editores que trabajan en la URJC. e) Obtener el nombre de los editores que no sean autores. f) Obtener el título de los libros y la nacionalidad de sus autores. g) Obtener los títulos de los libros escritos por autores de nacionalidad italiana y el nombre de estos autores. h) Obtener las instituciones donde trabajan autores que hayan escrito libros para la editorial RA-MA. i) Obtener las instituciones donde trabajan autores que hayan publicado en alguna editorial distinta de RA-MA. Página 3
i) Obtener las instituciones donde trabajan autores que no hayan publicado libros en la editorial RA-MA. k) Obtener el nombre de los editores de la URJC que hayan editado algún libro escrito por un autor de nacionalidad española. l) Obtener el nombre de los autores que sean editores y que trabajen en la UPM. m) Obtener el nombre de los autores que hayan publicado en todas las editoriales. Obtener el mismo resultado solo con operadores primitivos. Página 4
Problema 5. Grupo de Investigación Un grupo de investigación de una universidad ha diseñado una base de datos (BD) para la gestión de los proyectos de investigación en los que participa. RELACIÓN PLAN CÓDIGO_PLAN CHAR(20) Clave primaria NOMBRE CHAR(100) ENTIDAD_FINANCIADORA CHAR(20) En esta tabla se almacenarán los distintos planes o programas a los que pueden pertenecer los proyectos de investigación. Para cada plan se almacenará el código del mismo, el nombre completo del plan, y la entidad que lo financia. Por ejemplo, un plan podría ser el I+D+I, cuyo nombre completo es Plan Nacional de Investigación Científica, Desarrollo e Innovación Tecnológica, cuya entidad financiadora es el MCYT (Ministerio Ciencia y Tecnología). RELACIÓN PROYECTO CÓDIGO_PROYECTO CHAR(20) Clave primaria CÓDIGO_PLAN CHAR(20) Clave ajena que referencia a PLAN NOMBRE FECHA_INICIO FECHA_FIN PRESUPUESTO CHAR(50) DATE INTEGER DATE En esta tabla se almacenarán los proyectos en los que participan los distintos investigadores. Cada proyecto de investigación estará asociado a un plan. Tendremos el código del proyecto, el código del plan al que pertenece dicho proyecto, el nombre completo del proyecto, la fecha de inicio del mismo y la de finalización. Además se almacenará en esta tabla el presupuesto concedido a cada proyecto. Página 5
RELACIÓN ASIGNADO_A CÓDIGO_PROYECTO CHAR(20) Clave ajena que referencia a PROYECTO DNI_INVESTIGADOR CHAR(9) INVESTIGADOR FECHA_INICIO FECHA_FIN TIPO_PARTICIPACION DATE DATE CHAR(20) Clave ajena que referencia a En esta tabla se almacenará qué investigadores trabajan en qué proyectos. La clave primaria estará formada por CÓDIGO_PROYECTO y DNI_INVESTIGADOR. Un investigador una vez que abandona el proyecto no puede reincorporarse al mismo proyecto posteriormente. También se indicará el periodo en el que un determinado investigador trabaja en un proyecto de investigación por medio de los atributos FECHA_INICIO y FECHA_FIN. El atributo TIPO_PARTICIPACION indicará el papel que juega cada investigador en cada proyecto. Podrá tomar los siguientes valores: investigador principal, investigador a tiempo completo, investigador a tiempo parcial, becario FPI, etc. RELACIÓN INVESTIGADOR DNI_INVESTIGADOR CHAR(9) Clave primaria NOMBRE CHAR(50) CIUDAD CHAR(15) TELÉFONO CHAR(12) En esta tabla se almacenarán los investigadores que participan en los distintos proyectos de investigación. Se almacenará el DNI, el nombre, la ciudad en la que trabaja y su teléfono de contacto. a) Construir el grafo relacional asociado a esta BD para la gestión de proyectos de investigación. b) Sobre esta BD se pide que se realicen las siguientes consultas en álgebra relacional: Q1: Nombre de los investigadores de Madrid y el nombre de los proyectos en los que trabajan. Página 6
Q2: Nombre del investigador responsable y fecha de inicio del proyecto llamado NEPTUNO. Q3: Nombre de los proyectos en los que trabaja algún investigador de Soria. Q4: Nombre y teléfono de los investigadores principales que trabajen en proyectos cuyo presupuesto sea inferior a 5000 EUR. Q5: Nombre de los proyectos que hayan comenzado este año y que pertenezcan al plan, cuyo código sea PEUR. Q6: Nombre de los investigadores principales de los proyectos cuya entidad financiadora sea la CICYT. Q7: Nombre de los planes a los que pertenecen los proyectos con un presupuesto superior a 10000 EUR pero que cuyo investigador principal no sea ni de Madrid ni de Barcelona. Q8: Nombre de aquellos investigadores que trabajan en todos los proyectos de investigación. Q9: Obtener el nombre de los proyectos cuyo investigador principal es de La Coruña y que tienen un presupuesto concedido superior a todos los proyectos financiados por el plan "CICYT". Q10: Obtener el nombre de los investigadores que participan en proyectos que tienen un presupuesto superior o igual al proyecto con nombre "FOLRE". Q11: Obtener el nombre de los investigadores que nunca han participado en proyectos que pertenezcan al plan "PEUR". Q12: Obtener el nombre de los investigadores que nunca han sido investigadores principales de ningún proyecto. Página 7
Q13: Obtener el nombre y el código de los proyectos con un presupuesto superior a 100.000. Q14: Obtener el nombre y el dni de los investigadores que son de Barcelona y que están asignados (en el momento actual, por lo que la fecha de fin de asignación debe ser nula) al proyecto con nombre "BDI". Q15: Obtener el nombre y los códigos de proyectos que tienen un presupuesto inferior a 100.000 y en los que no trabajen investigadores de Barcelona. Q16: Obtener el nombre de los investigadores que son de Tarragona y que están asignados a proyectos que tienen un presupuesto inferior a alguno de los proyectos del plan con nombre "PLAN 2002". Q17: Obtener el nombre de todos los proyectos que no están dirigidos por investigadores de Valladolid y que además tienen un presupuesto inferior al proyecto que tiene por nombre "EURO PROYECTO". Q18: Obtener el nombre y los dnis de los investigadores que no participan o nunca han participado en un proyecto de investigación. Q19: Obtener el nombre de los investigadores que viven en Cuenca y que no sean investigadores principales de proyectos en los cuales participen investigadores de Barcelona. Q20: Obtener el nombre de los investigadores que únicamente hayan sido investigadores principales de proyectos del plan "SOCRATES". Q21: Obtener todos los nombres de los proyectos que hayan comenzado antes de septiembre del año 2000 y que todavía no hayan acabado, pero sin incluir los proyectos en los que Página 8
participe algún investigador de Barcelona y en los que el investigador principal no sea de Tarragona. Q22: Obtener el nombre de los investigadores que nunca hayan sido investigadores principales de ningún proyecto. Q23: Obtener el nombre de todos los proyectos del plan "SOCRATES" que tengan algún investigador de Madrid que haya comenzado a trabajar en el proyecto el mismo día que el comienzo del proyecto. Página 9