Your SlideShare is downloading. ×
Taller De Sql2
Taller De Sql2
Taller De Sql2
Taller De Sql2
Taller De Sql2
Taller De Sql2
Taller De Sql2
Taller De Sql2
Taller De Sql2
Taller De Sql2
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Taller De Sql2

897

Published on

Taller De Sql2

Taller De Sql2

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
897
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
64
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. TALLER – SQL JULIAN ANDRES GALVEZ UNIDAD CENTRAL DEL VALLE DEL CAUCA FACULTAD DE INGENIERÍA PROGRAMA INGENIERÍA DE SISTEMAS TULUÁ, ABRIL 27 DE 2009
  • 2. TALLER – SQL JULIAN ANDRES GALVEZ 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
  • 3. TALLER - SQL 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.
  • 4. 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.
  • 5. Q1: Nombre de los investigadores de Madrid y el nombre de los proyectos en los que trabajan. ALGEBRA RELACIONAL: Π 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). SQL: SELECT investigador.nombre, proyecto.nomproyecto FROM Investigador , Asignado_A , Proyecto WHERE Investigador.Ciudad = „Madrid‟ AND Asignado_A.DNIInvestigador = Investigador.DNIInvestigador AND Proyecto.CodProyecto = Asignado_A .CodProyecto;
  • 6. Q2: Nombre del investigador responsable y fecha de inicio del proyecto llamado “NEPTUNO”. ALGEBRA RELACIONAL: Π 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). SQL: SELECT investigador.nombre, proyecto.fechainicio, proyecto.nombreproyecto FROM Investigador , Asignado_A , Proyecto WHERE Proyecto .NomProyecto.= „Neptuno‟ AND Asignado_A .DNIInvestigador = Investigador .DNIInvestigador AND Proyecto.CodProyecto = Asignado_A. CodProyecto; Q3: Nombre de los proyectos en los que trabaja algún investigador de Soria. ALGEBRA RELACIONAL: Π NomProyecto. Proyecto (σ (Ciudad. Investigador = “Soria”) and (DNIInvestigador. Asignado_A = DNIInvestigador. Investigador) and (CodProyecto. Proyecto = CodProyecto. Asignado_A) (Investigador X Asignado_A X Proyecto). SQL: SELECT proyecto.nomproyecto FROM Investigador , Asignado_A , Proyecto WHERE Investigador .Ciudad = „Soria‟ AND Asignado_A.DNIInvestigador = Investigador. DNIInvestigador AND Proyecto.CodProyecto = Asignado_A .CodProyecto;
  • 7. Q4: Nombre y teléfono de los investigadores principales que trabajen en proyectos cuyo presupuesto sea inferior a 5000 EUR. ALGEBRA RELACIONAL: Π 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). SQL: SELECT Investigador. NomInvestigador, Investigador .Telefono FROM Investigador , Asignado_A , Proyecto WHERE Proyecto .Presupuesto < 5000 AND Asignado_A.DNIInvestigador = Investigador. DNIInvestigador AND Proyecto.CodProyecto = Asignado_A .CodProyecto; Q5: Nombre de los proyectos que hayan comenzado este año y que pertenezcan al plan, cuyo código sea “PEUR”. ALGEBRA RELACIONAL: Π NomProyecto. Proyecto (σ (FechaInicio. Proyecto = 2009) and (CodPlan. Plan = “PEUR”) and (CodPlan. Plan = CodPlan. Proyecto) (Proyecto X Plan). SQL: SELECT proyecto.nomproyecto FROM Proyecto, Plan WHERE Proyecto.FechaInicio = 2009 AND Plan .CodPlan = “PEUR” AND Plan.CodPlan = Proyecto.CodPlan;
  • 8. Q6: Nombre de los investigadores principales de los proyectos cuya entidad financiadora sea la “CICYT”. ALGEBRA RELACIONAL: Π 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). SQL: SELECT Investigador.NomInvestigador FROM Investigador, Asignado_A, Proyecto, Plan WHERE Plan.EntFinanciera = „CICYT‟ AND Asignado_A.DNIInvestigador = Investigador. DNIInvestigador AND Proyecto.CodProyecto = Asignado_A .CodProyecto AND Proyecto.CodPlan = Plan.CodPlan; 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. ALGEBRA RELACIONAL: Π 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). SQL: SELECT plan.nomplan FROM Investigador, Asignado_A, Proyecto, Plan WHERE Proyecto.Presupuesto > 10000 AND Investigador.Ciudad = ¬‟Madrid‟ AND Investigador.Ciudad = ¬‟Barcelona‟ AND Asignado_A.DNIInvestigador = Investigador. DNIInvestigador AND Proyecto.CodProyecto = Asignado_A .CodProyecto AND Proyecto.CodPlan = Plan.CodPlan;
  • 9. Q8: Nombre de aquellos investigadores que trabajan en todos los proyectos de investigación. ALGEBRA RELACIONAL: Π NomInvestigador. Investigador, NomProyecto. Proyecto (DNIInvestigador. Asignado_A = DNIInvestigador. Investigador) and (CodProyecto. Proyecto = CodProyecto. Asignado_A) (Investigador X Asignado_A X Proyecto). SQL: SELECT Investigador.NomInvestigador, Proyecto.NomProyecto FROM Investigador, Asignado_A, Proyecto WHERE Asignado_A.DNIInvestigador = Investigador. DNIInvestigador AND Proyecto.CodProyecto = Asignado_A .CodProyecto; 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 quot;CICYTquot;. Π 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 quot;FOLREquot;. Π 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).

×