taller algebra relacional

13
TALLER – ALGEBRA RELACIONAL JULIAN ANDRES GALVEZ IVAN ANDRES SUAREZ UNIDAD CENTRAL DEL VALLE DEL CAUCA FACULTAD DE INGENIERÍA

Upload: andressuarez

Post on 13-Jun-2015

2.085 views

Category:

Education


2 download

DESCRIPTION

Este PAPER contiene la solucion de los jercicios correspondientes al Agebra Relacional

TRANSCRIPT

Page 1: Taller Algebra Relacional

TALLER – ALGEBRA RELACIONAL

JULIAN ANDRES GALVEZ

IVAN ANDRES SUAREZ

UNIDAD CENTRAL DEL VALLE DEL CAUCA

FACULTAD DE INGENIERÍA

PROGRAMA INGENIERÍA DE SISTEMAS

TULUÁ, ABRIL 27 DE 2009

Page 2: Taller Algebra Relacional

TALLER – ALGEBRA RELACIONAL

JULIAN ANDRES GALVEZ

IVAN ANDRES SUAREZ

Presentado al ingeniero:

Edgar Sandoval

Ing. Sistemas

UNIDAD CENTRAL DEL VALLE DEL CAUCA

FACULTAD DE INGENIERÍA

PROGRAMA INGENIERÍA DE SISTEMAS

TULUÁ, ABRIL 27 DE 2009

Page 3: Taller Algebra Relacional

TALLER - ALGEBRA RELACIONAL

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.

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

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.

Page 4: Taller Algebra Relacional

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.

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 continuación, se muestra el grafo relacional de este BD para la gestión de proyectos de investigación.

Sobre esta BD se pide que se realicen las siguientes consultas en álgebra relacional:

A continuación, se plantea una posible solución a las consultas que se plantean. Naturalmente, pueden existir otras alternativas igualmente válidas, incluso en algunos casos se muestran estas alternativas.

Page 5: Taller Algebra Relacional

Q1: Nombre de los investigadores de Madrid y el nombre de los proyectos en los que trabajan.

Π Nombre. Investigador, NomProyecto. Proyecto (σ (Ciudad. Investigador = “Madrid”) and (DNIInvestigador. Asignado_A = DNIInvestigador. Investigador) and (CodProyecto. Proyecto = CodProyecto. Asignado_A) (Investigador X Asignado_A X Proyecto).

Q2: Nombre del investigador responsable y fecha de inicio del proyecto llamado “NEPTUNO”.

Π Nombre. Investigador, FechaInicio. Proyecto, NomProyecto. Proyecto (σ (NomProyecto. Proyecto = “Neptuno”) and (DNIInvestigador. Asignado_A = DNIInvestigador. Investigador) and (CodProyecto. Proyecto = CodProyecto. Asignado_A) (Investigador X Asignado_A X Proyecto).

Page 6: Taller Algebra Relacional

Q3: Nombre de los proyectos en los que trabaja algún investigador de Soria.

Π NomProyecto. Proyecto (σ (Ciudad. Investigador = “Soria”) and (DNIInvestigador. Asignado_A = DNIInvestigador. Investigador) and (CodProyecto. Proyecto = CodProyecto. Asignado_A) (Investigador X Asignado_A X Proyecto).

Q4: Nombre y teléfono de los investigadores principales que trabajen en proyectos cuyo presupuesto sea inferior a 5000 EUR.

Π NomInvestigador. Investigador, Telefono. Investigador (σ (Presupuesto. Proyecto < 5000) and (DNIInvestigador. Asignado_A = DNIInvestigador. Investigador) and (CodProyecto. Proyecto = CodProyecto. Asignado_A) (Investigador X Asignado_A X Proyecto).

Q5: Nombre de los proyectos que hayan comenzado este año y que pertenezcan al plan, cuyo código sea “PEUR”.

Π NomProyecto. Proyecto (σ (FechaInicio. Proyecto = 2009) and (CodPlan. Plan = “PEUR”) and (CodPlan. Plan = CodPlan. Proyecto) (Proyecto X Plan).

Q6: Nombre de los investigadores principales de los proyectos cuya entidad financiadora sea la “CICYT”.

Π NomInvestigador. Investigador (σ (EntFinanciera. Plan = “CICYT”) and (DNIInvestigador. Asignado_A = DNIInvestigador. Investigador) and (CodProyecto. Proyecto = CodProyecto. Asignado_A) and (CodPlan. Proyecto = CodPlan. Plan) (Investigador X Asignado_A X Proyecto X Plan).

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.

Π NomPlan. Plan (σ (Presupuesto. Proyecto > 10000) and (Ciudad. Investigador = ¬”Madrid”) and (Ciudad. Investigador = ¬”Barcelona”) and (DNIInvestigador. Asignado_A = DNIInvestigador. Investigador) and (CodProyecto. Proyecto = CodProyecto. Asignado_A) and (CodPlan. Proyecto = CodPlan. Plan) (Investigador X Asignado_A X Proyecto X Plan).

Q8: Nombre de aquellos investigadores que trabajan en todos los proyectos de investigación.

Π NomInvestigador. Investigador, NomProyecto. Proyecto (DNIInvestigador. Asignado_A = DNIInvestigador. Investigador) and (CodProyecto. Proyecto = CodProyecto. Asignado_A) (Investigador X Asignado_A X Proyecto).

Page 7: Taller Algebra Relacional

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

Π NomProyecto. Proyecto (σ (Ciudad. Investigador = “Coruña”) and (Presupuesto. Proyecto > (Presupuesto. Proyecto = “CICYT”)) and (DNIInvestigador. Asignado_A = DNIInvestigador. Investigador) and (CodProyecto. Proyecto = CodProyecto. Asignado_A) and (CodPlan. Proyecto = CodPlan. Plan) (Investigador X Asignado_A X Proyecto X Plan).

Q10: Obtener el nombre de los investigadores que participan en proyectos que tienen un presupuesto superior o igual al proyecto con nombre "FOLRE".

Π NomInvestigador. Investigador (σ (Presupuesto. Proyecto > = (Presupuesto. Proyecto = “FOLRE”)) and (DNIInvestigador. Asignado_A = DNIInvestigador. Investigador) and (CodProyecto. Proyecto = CodProyecto. Asignado_A) and (CodPlan. Proyecto = CodPlan. Plan) (Investigador X Asignado_A X Proyecto X Plan).

Q11: Obtener el nombre de los investigadores que nunca han participado en proyectos que pertenezcan al plan "PEUR".

Π NomInvestigador. Investigador (σ (NomPlan. Plan = ¬ “PEUR”) and (DNIInvestigador. Asignado_A = DNIInvestigador. Investigador) and (CodProyecto. Proyecto = CodProyecto. Asignado_A) and (CodPlan. Proyecto = CodPlan. Plan) (Investigador X Asignado_A X Proyecto X Plan).

Q12: Obtener el nombre de los investigadores que nunca han sido investigadores principales de ningún proyecto.

Π NomInvestigador. Investigador (σ (TipoParticipacion. Asignado_A = ¬ “Principal”) and (DNIInvestigador. Asignado_A = DNIInvestigador. Investigador) (Investigador X Asignado_A).

Q13: Obtener el nombre y el código de los proyectos con un presupuesto superior a 100.000 €.

Π NomProyecto. Proyecto, CodProyecto. Proyecto (σ (Presupuesto. Proyecto > 100000) (Proyecto).

Page 8: Taller Algebra Relacional

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

Π NomInvestigador. Investigador, DNIInvestigador. Investigador (σ (Ciudad. Investigador = “Barcelona”) and (FechaFin. Asignado_A = NULL) and (NomProyecto. Proyecto = “BDI”) and (CodProyecto. Proyecto = CodProyecto. Asignado_A) and (DNIInvestigador. Asignado_A = DNIInvestigador. Investigador) (Investigador X Asignado_A X Proyecto).

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.

Π NomProyecto. Proyecto, CodProyecto. Proyecto (σ (Presupuesto. Proyecto < 100000) and (Ciudad. Investigador = ¬ “Barcelona”) and (CodProyecto. Proyecto = CodProyecto. Asignado_A) and (DNIInvestigador. Asignado_A = DNIInvestigador. Investigador) (Investigador X Asignado_A X Proyecto).

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

Π NomInvestigador. Investigador (σ (Ciudad. Investigador = “Tarragona”) and (Presupuesto. Proyecto < (Presupuesto. Proyecto = “PLAN 2002”) and (CodProyecto. Proyecto = CodProyecto. Asignado_A) and (DNIInvestigador. Asignado_A = DNIInvestigador. Investigador) and (CodPlan. Proyecto = CodPlan. Plan) (Investigador X Asignado_A X Proyecto X Plan).

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

Π NomProyecto. Proyecto (σ (Ciudad. Investigador = ¬ “Valladolid”) and (Presupuesto. Proyecto < (Presupuesto. Proyecto = “EURO PROYECTO”) and (CodProyecto. Proyecto = CodProyecto. Asignado_A) and (DNIInvestigador. Asignado_A = DNIInvestigador. Investigador) (Investigador X Asignado_A X Proyecto).

Q18: Obtener el nombre y los DNIs de los investigadores que no participan o nunca han participado en un proyecto de investigación.

Π NomInvestigador. Investigador, DNIInvestigador. Investigador (σ (CodProyecto. Asignado_A = NULL) and (DNIInvestigador. Asignado_A = DNIInvestigador. Investigador) (Investigador X Asignado_A).

Page 9: Taller Algebra Relacional

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.

Π NomInvestigador. Investigador (σ (Ciudad. Investigador = “Cuenca”) and (TipoParticipacion. Asignado_A = ¬ “Principal”) and (CodProyecto. Proyecto = CodProyecto. Asignado_A) and (DNIInvestigador. Asignado_A = DNIInvestigador. Investigador) (Investigador X Asignado_A X Proyecto).

Q20: Obtener el nombre de los investigadores que únicamente hayan sido investigadores principales de proyectos del plan "SOCRATES".

Π NomInvestigador. Investigador (σ (NomPlan. Plan = “SOCRATES”) and (TipoParticipacion. Asignado_A = “Principal”) and (DNIInvestigador. Asignado_A = DNIInvestigador. Investigador) and (CodPlan. Proyecto = CodPlan. Plan) (Investigador X Asignado_A X Proyecto X Plan).

Page 10: Taller Algebra Relacional