Sunteți pe pagina 1din 10

UNIVERSIDAD AUSTRAL DE CHILE FACULTAD DE CIENCIAS ECONMICAS Y ADMINISTRATIVAS INSTITUTO DE ADMINISTRACIN

Sistemas de Informacin Empresarial

Integrante: Makarena Ruiz Haeger

21 de mayo de 2012, Valdivia

1.- Se solicita realizar una consulta que entregue a los estudiantes atrasados en la entrega de sus prstamos de libros, e indicar la cantidad de das de atraso para cada prstamo. Los campos a mostrar son: Rut del estudiante, Nombres, Apellidos y el N de das de atraso. Ayuda: Usar la fecha del sistema denominada por SYSDATE, y usar la funcin TRUNC para quitar las horas, minutos y segundos de las fechas. select e.rut_est, e.nombres, e.apellidos,p.fecha_e,(trunc(sysdate) - trunc(p.fecha_e)) as ATRASO from prestamo p, estudiantes e where e.rut_est = p.rut_est and trunc(sysdate) > trunc(p.fecha_e);

2.- Si cada da efectivo de atraso tiene un valor de $1250, entregue los mismo que en (1), pero agregando una nueva columna con la deuda adquirida por cada estudiante. Ayuda: Para multiplicar se usa el *, entonces si se desea multiplicar A por B, sera A*B. select e.rut_est, e.nombres, e.apellidos, p.fecha_e, (trunc(sysdate) - trunc(p.fecha_e)) as ATRASO, (trunc(sysdate) - trunc(p.fecha_e))*'1250' as DEUDA from prestamo p, estudiantes e where e.rut_est = p.rut_est and trunc(sysdate) > trunc(p.fecha_e);

3.- Entregue la suma de dinero que ganar la Biblioteca acumulada al da de hoy. Ayuda: Para hacer la suma se usa la funcin SUM y la funcin GROUP BY. select SUM((trunc(sysdate)-p.fecha_e)*'1250') as INGRESO from prestamo p where p.fecha_e<trunc(sysdate);

4.- Entregue el promedio de deuda que tienen los estudiantes al da de hoy. Ayuda: Para calcular el promedio se usa la funcin AVG y la funcin GROUP BY. select ROUND(AVG ((trunc(sysdate) - trunc(p.fecha_e))*'1250')) AS PROM_DEUDA from prestamo p where trunc(sysdate) > trunc(p.fecha_e);

5.- Entregue la mnima deuda acumulada al da de hoy. Ayuda: Utilice la funcin MIN y la funcin GROUP BY. select MIN ((trunc(sysdate) - trunc(p.fecha_e))*1250) AS MIN_DEUDA from prestamo p where trunc(sysdate) > trunc(p.fecha_e);

6.- Entregue la mxima deuda acumulada al da de hoy. Ayuda: utilice la funcin MAX y la funcin GROUP BY. select MAX ((trunc(sysdate) - trunc(p.fecha_e))*1250) AS MIN_DEUDA from prestamo p where trunc(sysdate) > trunc(p.fecha_e);

7.- Suponiendo que ninguno de los estudiantes que se encuentran con prstamo entrega sus libros, cual ser la deuda acumulada para 4 das ms. Ayuda: Para sumar un das a una fecha se hace de la siguiente forma: FECHA + N, donde N es la cantidad de das a sumar y FECHA es la fecha a la cual le estamos sumandos das. Para el caso de la fecha de hoy, sera SYSDATE + N. select SUM((trunc(sysdate+4) - trunc(p.fecha_e))*'1250') AS DEUDA_4_DIAS from prestamo p where trunc(sysdate+4) > trunc(p.fecha_e);

8.- En su sistema de Base de Datos se encuentran 2 Vistas (Views), una llamada MAXIMO y otra llamada MINIMO. Describa claramente que entregan cada una de ellas, haciendo anlisis de cada parte de la consulta. Ayuda: Busque informacin sobre Sub-Consultas.

Un sistema de base de dato tiene que ser diseada primero antes de ser creada y usada. La parte del diseo es ajustable a estndares que permiten ahorro de la memoria, acceso rpido, fcil mantenimiento, portabilidad, entre otros, es por esto que la base de dato debe estar en una forma completamente normalizada. Ahora entendemos por normalizacin que es una serie de reglas que involucra anlisis y transformacin de las estructuras de los datos en relaciones que exhiban propiedades nicas de consistencia, mnima redundancia y mxima estabilidad. A esto se le entiende por tener dos vistas una de mnimo y otra de mximo. Tambin debemos mencionar la necesidad para normalizar los datos, y comprender las distintas anomalas o desventajas de los datos No normalizados. A simple vista o de fcil comprensin conviene almacenar todos los detalles en una sola tabla, pero pueden ocurrir anomalas que durante la insercin, actualizacin y borrado de datos. La normalizacin provee un mtodo de remover todas estas indeseables anomalas haciendo la base de datos ms confiable y estable. Ahora vamos a definir una sub-consulta dentro de una consulta. Se entiende por una sub-consulta es una instruccin SELECT dentro de otra instruccin SELECT.

Una sub-consulta en SQL debe ir entre parntesis para expresar la lista de campos de una instruccin o en una clausura WHERE o HAVING. Por ejemplo SELECT* FROM productos WHERE preciounidad ANY (SELECT preciounidad FROM detallepedido WHERE descuento=0.15)

9.- Entregue el nombre de la carrera y la cantidad de estudiantes por cada una de ellas que tiene libros atrasados. Ayuda: Use la funcin COUNT y la funcin GROUP BY. select COUNT(p.rut_est)as EST_ATRASADO , c.nombre from prestamo p, estudiantes e, carreras c where p.rut_est = e.rut_est AND e.id_carrera = c.id_carrera and trunc(sysdate) > trunc(p.fecha_e) group by c.nombre;

10.- Los mismo que en (9) pero esta vez que entregue la cantidad de estudiantes que tiene un libro en prstamo ya sea atrasado o al da. select * from (select COUNT(e.rut_est), c.nombre from prestamo p, estudiantes e, carreras c where p.rut_est = e.rut_est AND e.id_carrera = c.id_carrera group by c.nombre order by COUNT(e.rut_est) desc) where rownum <=10;