Vous êtes sur la page 1sur 3

UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS

FACULTAD DE INGENIERIA
BASES DE DATOS I
DAVID MORALES AGUILAR CDIGO: 20122020069

CORRECCIN SEGUNDO PARCIAL BASES DE DATOS I

Modelo
1. Completar las siguientes tablas; Employee y Participate con sus ndices.

Tipo de
Nombre Tabla Atributos Indice Obligatoriedad
numEmp_PK Employee employee_num nico SI
Con
div_FK Employee division_num Duplicados NO
Con
super_FK Employee super_num Duplicados SI

employee_num
participate_PK Participate project_num nico SI
taskname_num
Con
employee_FK Participate employee_num Duplicados SI
taskname_num Con
task_FK Participate
project_num Duplicados NO

2. Seleccionar los empleados que administran proyectos con tareas con costos
superiores a 5000.

SELECT distinct e.first_name|| ||e.last_name Nombre Empleado


FROM Employee e, Project p, Task t
WHERE e.employee_number = p.manager_id AND p.project_number = t.project_id AND
t.task_cost > 5000;

3. Seleccionar los grupos cuyos participantes tienen tareas con menos de 6 meses
de iniciadas.

SELECT distinct t.team_number N de Grupo


FROM Team t, Emp_Team et, Employee e, Participate p
WHERE T.team_number = et.team_id AND e.employee_number = et.emp_id AND
e.employee_number = p.employee_id AND MONTHS_BETWEEN(NVL(p.end_date,
sysdate),p.start_date) < 6;

4. Seleccionar todos los empleados con sus supervisores. (Tengan o no)

SELECT e.first_name|| ||e.last_name Nombre Empleado, s.first_name|| ||s.last_name


Supervisor,
FROM Employee e, Employee s
WHERE s.employee_number(+) = E.supervisor_id;
5. Generar un listado que permita relacionar las personas que trabajan con la compaa.

Persona Rol
xxx Participante
xxxx Supervisor
xx Cliente
xxx xxx Otros

SELECT distinct e.first_name|| ||e.last_name Persona, Participante Rol


FROM Employee e, Participate p
WHERE e.employee_number = p.employee_id

UNION

SELECT distinct s.first_name|| ||s.last_name Persona, Supervisor Rol FROM


Employee e, Employee s
WHERE s.employee_number = e.supervisor_id

UNION

SELECT c.customer_name Persona, Cliente Rol


FROM Customer c

UNION

SELECT distinct e.first_name|| ||e.last_name Persona, Otros Rol


FROM Employee e

MINUS

SELECT distinct e.first_name|| ||e.last_name Persona, Participante Rol


FROM Employee e, Participate p
WHERE e.employee_number = p.employee_id

MINUS

SELECT distinct s.first_name|| ||s.last_name Persona, Supervisor Rol


FROM Employee e, Employee s
WHERE s.employee_number = e.supervisor_id;

Vous aimerez peut-être aussi