Este documento presenta una guía de laboratorio para la asignatura Sistema de Información Empresarial. Contiene 11 actividades que involucran consultas SQL para obtener información sobre préstamos de libros atrasados de una biblioteca universitaria, como los estudiantes con préstamos vencidos, sus deudas acumuladas, y estadísticas sobre la carrera con más libros en préstamo. El documento también describe dos vistas creadas en la base de datos para mostrar los préstamos con deudas mínimas y máximas.
Taller: Data Centers, la innovación irrumpe en sus estructuras y funcionalidadMundo Contact
Taller: Data Centers, la innovación irrumpe en sus estructuras y funcionalidad.
Impartido por: Adolfo Juárez de Capa4 y Juan Bonilla, Business Developer Manager for Data Center en Cisco Systems.
Congreso Mundo Contact Mexico 2012
[WEBINAR] 10 cosas que debes saber sobre Active Directory.Grupo Smartekh
Este webinar tiene como objetivo principal dar a conocer los mejores 10 tips de nuestros expertos para aprovechar todos los beneficios que brinda Active Directory, con el tiempo, es posible que la base de datos de Active Directory se llene de información obsoleta, tenga problemas de seguridad o comience a funcionar de manera incorrecta.
Tarde o temprano, tendrás que reorganizar tu Active Directory para corregir comportamientos erráticos y mantener la seguridad y productividad de la plataforma al día.
El temario que se engloba es el siguiente:
Planificar, documentar y testear una estrategia para back ups y disaster recovery.
Establecer una política de hot fixes que minimice riesgos de seguridad.
Realizar check ups de salud periódicos que evidencien problemas para prevenir posibles riesgos.
Webinar impartido por Adrían Rivas, el 20 de Diciembre del 2012 a las 12 hrs.
Taller: Data Centers, la innovación irrumpe en sus estructuras y funcionalidadMundo Contact
Taller: Data Centers, la innovación irrumpe en sus estructuras y funcionalidad.
Impartido por: Adolfo Juárez de Capa4 y Juan Bonilla, Business Developer Manager for Data Center en Cisco Systems.
Congreso Mundo Contact Mexico 2012
[WEBINAR] 10 cosas que debes saber sobre Active Directory.Grupo Smartekh
Este webinar tiene como objetivo principal dar a conocer los mejores 10 tips de nuestros expertos para aprovechar todos los beneficios que brinda Active Directory, con el tiempo, es posible que la base de datos de Active Directory se llene de información obsoleta, tenga problemas de seguridad o comience a funcionar de manera incorrecta.
Tarde o temprano, tendrás que reorganizar tu Active Directory para corregir comportamientos erráticos y mantener la seguridad y productividad de la plataforma al día.
El temario que se engloba es el siguiente:
Planificar, documentar y testear una estrategia para back ups y disaster recovery.
Establecer una política de hot fixes que minimice riesgos de seguridad.
Realizar check ups de salud periódicos que evidencien problemas para prevenir posibles riesgos.
Webinar impartido por Adrían Rivas, el 20 de Diciembre del 2012 a las 12 hrs.
1. Universidad Austral de Chile
Facultad de Ciencias Económicas y Administrativas
Ingeniería Comercial
Sistema de Información Empresarial
Guía de laboratorio N° 2
PLSQL Developer
Asignatura:
Sistema de información empresarial
Profesor:
Cristian Salazar
Profesor Ayudante:
José Luis Carrasco
Estudiante:
Mónica Navarrete
Mayo 2012 - VALDIVIA
2. Actividades
Supuestos: La base de datos no guarda el histórico de los préstamos realizados, es decir, que
al entregar un libro, ese préstamo se elimina de la tabla PRESTAMO.
1.- Se solicita realizar una consulta que entregue a los estudiantes atrasados en la entrega de sus
préstamos de libros, e indicar la cantidad de días de atraso para cada préstamo. Los campos a
mostrar son: Rut del estudiante, Nombres, Apellidos y el N° de días de atraso. Ayuda: Usar la
fecha del sistema denominada por SYSDATE, y usar la función TRUNC para quitar las horas,
minutos y segundos de las fechas.
select e.rut_est, e.nombres, e.apellidos, p.fecha_e,trunc(sysdate - p.fecha_e) as atraso
from estudiantes e, prestamo p
where p.fecha_e < sysdate
and e.rut_est = p.rut_est
2.- Si cada día 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, sería A*B.
select e.rut_est, e.nombres, e.apellidos, p.fecha_e,trunc(sysdate - p.fecha_e) as atraso,
trunc(sysdate - p.fecha_e)*1250 as deuda
from estudiantes e, prestamo p
where p.fecha_e < sysdate
and e.rut_est = p.rut_est
3. 3.- Entregue la suma de dinero que ganará la Biblioteca acumulada al día de hoy. Ayuda: Para
hacer la suma se usa la función SUM y la función GROUP BY.
select sum((trunc(sysdate) - trunc(p.fecha_e))*1250) as deuda_total
from prestamo p
where trunc(sysdate) > trunc(p.fecha_e)
4.- Entregue el promedio de deuda que tienen los estudiantes al día de hoy. Ayuda: Para calcular
el promedio se usa la función AVG y la función GROUP BY.
select avg((trunc(sysdate) - trunc(p.fecha_e))*1250) as promedio_deuda
from prestamo p
where trunc(sysdate) > trunc(p.fecha_e)
5.- Entregue la mínima deuda acumulada al día de hoy. Ayuda: Utilice la función MIN y la función
GROUP BY.
select min((trunc(sysdate)-trunc(p.fecha_e))*1250) as minima_deuda
from prestamo p
where trunc(sysdate) > trunc(p.fecha_e)
6.- Entregue la máxima deuda acumulada al día de hoy. Ayuda: utilice la función MAX y la función
GROUP BY.
select max((trunc(sysdate)-trunc(p.fecha_e))*1250) as minima_deuda
from prestamo p
where trunc(sysdate) > trunc(p.fecha_e)
7.- Suponiendo que ninguno de los estudiantes que se encuentran con préstamo entrega sus
libros, cual será la deuda acumulada para 4 días más. Ayuda: Para sumar un días a una fecha se
hace de la siguiente forma: FECHA + N, donde N es la cantidad de días a sumar y FECHA es la
fecha a la cual le estamos sumandos días. Para el caso de la fecha de hoy, sería SYSDATE + N.
select sum((trunc(sysdate + 4) - trunc(p.fecha_e))*1250) as deuda_total_cuatro_dias
from prestamo p
where trunc(sysdate + 4) > trunc(p.fecha_e)
4. 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 análisis de cada
parte de la consulta. Ayuda: Busque información sobre Sub-Consultas.
create or replace view minimos as
select p.rut_est RUT,
e.apellidos || ' ' || e.nombres NOMBRE,
l.titulo,
(trunc(sysdate) - trunc(p.fecha_e)) * 1250 as DIAS_ATRASO
from prestamo p, estudiantes e, libros l
where trunc(p.fecha_e) < trunc(sysdate)
and p.rut_est = e.rut_est
and p.cod_libro = l.cod_libro
and (trunc(sysdate) - trunc(p.fecha_e)) =
(select min(trunc(sysdate) - trunc(p2.fecha_e))
from prestamo p2
where trunc(p2.fecha_e) < trunc(sysdate));
Esta tabla muestra los estudiantes que tienen una mínima deuda, utilizando una sub-consulta que
le entrega los días mínimos en la base de datos de los textos atrasados, esta consulta en el último
and corresponde a otra consulta anterior.
create or replace view maximos as
select p.rut_est RUT,
e.apellidos || ' ' || e.nombres NOMBRE,
l.titulo,
(trunc(sysdate) - trunc(p.fecha_e)) * 1250 as DIAS_ATRASO
from prestamo p, estudiantes e, libros l
where trunc(p.fecha_e) < trunc(sysdate)
and p.rut_est = e.rut_est
and p.cod_libro = l.cod_libro
and (trunc(sysdate) - trunc(p.fecha_e)) =
(select max(trunc(sysdate) - trunc(p2.fecha_e))
from prestamo p2
where trunc(p2.fecha_e) < trunc(sysdate));
Esta tabla entrega a los estudiantes que poseen la máxima deuda por sus días de atraso, utiliza
una sub-consulta que entrega el máximo números de días de atraso, la consulta que está en el
último and, corresponde a una consulta anteriormente hecha a la base de datos.
5. 9.- Entregue el nombre de la carrera y la cantidad de estudiantes por cada una de ellas que tiene
libros atrasados. Ayuda: Use la función COUNT y la función GROUP BY.
select c.nombre as carrera, count(p.rut_est) as n_alumnos_pres_atarsados
from carreras c, prestamo p, estudiantes e
where p.rut_est = e.rut_est
and e.id_carrera = c.id_carrera
and trunc(p.fecha_e) < trunc(sysdate)
group by c.nombre
10.- Los mismo que en (9) pero esta vez que entregue la cantidad de estudiantes que tiene un libro
en préstamo ya sea atrasado o al día.
select c.nombre as carrera, count(p.rut_est) as n_est_un_prest
from carreras c, prestamo p, estudiantes e
where p.rut_est = e.rut_est
and e.id_carrera = c.id_carrera
group by c.nombre
11.- Investigue como entregar las 10 carreras que tienen mayor cantidad de libros en préstamo.
Ayuda: Se usa un tipo de función llamada ROWNUM y la función ORDER BY.
select "CARRERA","NUMERO_PRESTAMOS_VIGENTES"
from (select c.nombre as carrera, count(p.rut_est) as numero_prestamos_vigentes
from carreras c, prestamo p, estudiantes e
where p.rut_est = e.rut_est
and e.id_carrera = c.id_carrera
group by c.nombre
6. order by numero_prestamos_vigentes desc)
where rownum <= 10
Bibliografía:
http://www.desarrolloweb.com/articulos/2337.php
http://www.epidataconsulting.com/tikiwiki/tiki-read_article.php?articleId=63