Está en la página 1de 4

Universidad Peruana Unin FIA - Sistemas 2012

1ra Prctica Calificada de Base de Datos

Alumno (a): Lima Taype zacarias ivan_____________________________ Fecha: 08 de octubre del 2013
1.

Grupo: __2_____________

Prof. Ing. Diana L. Sanchez Torpoco

Desarrollar: Tenemos que disear una base de datos para una empresa que vende material informtico, de la que tenemos sta informacin (nombres referenciales): CODIGO_EQUIPO, DESCRIPCIN_EQUIPO, PRECIO_EQUIPO, CDIGO_COMPONENTE, DESCRIPCIN_COMPONENTE, STOCK_COMPONENTE, PRECIO_COMPONENTE, DNI_EMPLEADO, NOMBRE_EMPLEADO, SECCIN_EMPLEADO, RUC_CLIENTE, NOMBRE_CLIENTE, DOMICILIO_CLIENTE, CDIGO_EQUIPOS_CLIENTE, CANTIDAD_EQUIPOS_CLIENTE, CDIGO_COMPONENTES_CLIENTE CANTIDAD_COMPONENTES_CLIENTE, FECHA_VENTA. Sabemos que: Un empleado trabaja en una seccin y una seccin puede tener muchos empleados Cada cliente compra a travs de un solo empleado. Un equipo consta de varios componentes. Se pueden comprar equipos completos o equipos sueltos a. b. c. Dibujar el DER y pasarlo a tablas (3p) Crear la BD dentro del SGBD Oracle, llamado VENTAS con las respectivas tablas (escribir el script de la BD).(2p) Escribir las consultas en SQL para responder las siguientes preguntas (5p) o Cules son los empleados que han vendido equipos a la ciudad de Tumbes? o Cules son los cdigos y descripciones de los equipos con monitores LCD 18?. o Cuales el monto vendido durante el mes de diciembre? o Que mes se obtuvo una mayor utilidad. o Se requiere un reporte del stock de componentes por equipos. o Empleados que no realizaron ninguna venta (opcional).

2.

Resolver los siguientes sentencias SQL segn lo solicitado. SQL A Muestre el apellido, la fecha de contratacin y el da de la semana en que empez el empleado. Etiquete la columna como DAY, ordene los resultados por el da de la semana. select last_name, hire_date,to_char(hire_date,'DAY')as "dia" FROM employees order by HIRE_DATE; b. Cree un informe que muestre los puestos que se encuentren en los departamentos Administration y Executive. Muestre tambin el nmero de empleados para estos puestos. Muestre en primer lugar el puesto con mayor nmero de empleados. select d.department_name,e.department_id,count(e.employee_id)cantidad from employees e,departments d where e.department_id = d.department_id and d.department_name in('Administration','Executive') group by e.department_id,department_name order by cantidad desc; c. Crear una vista para mostrar un informe con el apellido del empleado y el nmero de empleado junto al apellido y nmero de supervisor del supervisor del empleado. Etiquete las columnas como Employee, EMP#, Manager, Mgr#. a.

Universidad Peruana Unin FIA - Sistemas 2012


select e.last_name as "employee",e.employee_id as "EMP#", m.last_name as "Manager", e.manager_id as "Mgr#" from employees e , employees m where m.employee_id = e.manager_id order by (e.manager_id) asc;

d. El departamento de recursos humanos necesita un informe sobre grados de trabajo y salarios. Para ello,
deber crear una tabla, llamada JOB_GRADES, con la siguiente estructura:

Grade_level varchar2(3) Lowest_sal number Highest_sal number create table JOB_GRADES (codigo number, Grade_level varchar2(3), Lowest_sal number, Highest_sal number, constraint cod primary key(codigo));
Rellenar la siguiente informacin

insert into JOB_GRADES values(1,'A',1000,2999); insert into JOB_GRADES values(2,'B',3000,5999); insert into JOB_GRADES values(3,'C',6000,9999); insert into JOB_GRADES values(4,'D',10000,14999); insert into JOB_GRADES values(5,'E',15000,24999); insert into JOB_GRADES values(6,'F',25000,15000); insert into JOB_GRADES values(7,'G',40000,50000);

Codigo

Grado_Level Lowest_Sal Highest_sal

Universidad Peruana Unin FIA - Sistemas 2012


1 2 3 4 5 6 7 A B C D E F G 1000 3000 6000 10000 15000 25000 40000 2999 5999 9999 14999 24999 15000 50000

Importante, crear una secuencia para generar los cdigos de la tabla (PK) Actualice el registro 6 con Highest_sal=40000. alter table job_grades modify (Highest_sal number default '40000') Eliminar el registro 7. delete from job_grades where codigo='7' A continuacin, cree una consulta que muestre el apellido, el puesto, el nombre de departamento, el salario y el grado de todos los empleados. e. El departamento de RRHH quiere determinar los nombres de todos los empleados contratados despus de Davies. Cree una consulta para mostrar el nombre y la fecha de contratacin de cualquier empleado contratado despus que Davies. Select first_name, last_name, hire_date From employees Where hire_date > (select hire_date From employees Where last_name =Davies);

f.

El departamento de RRHH necesita una consulta que muestre el apellido y la fecha de contratacin de cualquier empleado del mismo departamento que Zlotkey, excepto Zlotkey. select last_name, hire_date FROM employees where department_id in(select department_id from employees where last_name='Zlotkey')and last_name not in ('Zlotkey') ; Crear un informe que muestre el nmero de empleado y el apellido de todos los empleados que trabajen en un departamento en que haya algn empleado cuyo apellido contenga una u. Select employee_id, last_name From employees Where department_id in ( Select department_id From employees Where last_name like %u%' )

g.

h.

Cree un informe que muestre el apellido y el salario de todos los empleados que informen a King.

select m.last_name ,e.last_name as "Informadores", e.salary from employees e , employees m

Universidad Peruana Unin FIA - Sistemas 2012


where m.employee_id=e.manager_id and e.manager_id=100;

i.

j.

k.

El departamento de RRHH necesita una lista de pases en los que no haya ningn departamento. Muestre el identificador del pas y el nombre de los pases. select c.country_id, c.country_name ,l.state_province as "no exixte" from countries c , locations l where c.country_id=l.country_id and l.state_province is null; Genere una lista de puestos para los departamentos 10, 50 y 20 en ese orden. Muestre el identificador de puesto, y el departamento. select job_id, department_id from employees where department_id in (10,50,20); Cree un informe que muestre los identificadores de empleado y de puesto de los empleados que actualmente tengan un cargo igual al que tenan cuando de los contrat inicialmente (es decir, han cambiado de puesto pero han vuelto a ocupar el puesto original)

3.

Resolver: SQL B a. El personal del departamento de RRHH quiere ocultar parte de los datos de la tabla EMPLOYEES. Quieren una vista denominada EMPLOYEES_VU, basada en los nmeros de empleado, los nombres de empleado, comisin y los nmeros de departamento de la tabla EMPLOYEES. Quieren que la cabecera para el nombre de empleado sea EMPLOYEE. Alter table employees rename to EMPLOYEES_VU; alter table employees rename column employee_id to employee_vu alter table employees rename column first_name to employee b. Mediante la vista EMPLOYEES_VU, escriba una consulta para el departamento de RRHH que muestre todos los nombres de empleados y los nmeros de departamento, solo de aquellos que tengan comisin. Select employee_vu ,employee,department_id,commission_pct from employees_vu where commission_pct is not null;

c.

Crear un ndice en la columna nombre de la tabla employees. CREATE INDEX employees_last_name_idx ON employees(last_name); Crear un sinnimo de la tabla EMPLOYEES desde el usuario VENTAS (creado en la pregunta 1), con el nombre EMP. Verificar.

d.