1. Universidad Austral de Chile
Facultad de Ciencias Económicas y Administrativas
Contador Auditor
SISTEMAS DE INFORMACIÓN ADMINISTRATIVOS
Laboratorio 2
Ayudantía
VISTAS EN SQL
Alexis Triviño | Alejandro Vera
22/11/2012
2. Actividades
Supuestos:La base de datos no guarda elhistórico delospréstamosrealizados, es decir, que
alentregarun libro, ese préstamose elimina de la tabla PRÉSTAMO.
1.- Realicelas siguientesvistas:
a)Queentreguelosestudiantes quesondeIng. Comercial(NOMBRESyAPELLIDOS del
estudiante, NOMBREdelacarrerayNOMBREdel campus).
CREATEVIEW comercial AS (
SELECT e.nombres, e.apellidos, c.nombre as carrera, u.nombre as campus
FROM estudiantes e, carreras c, campus u
WHERE c.id_carrera=e.id_carrera
andu.id_campus=c.id_campus
andc.nombre='ING. COMERCIAL’)
b)Queentreguelosestudiantes quesondeAuditoria(NOMBRES yAPELLIDOS del
estudiante, NOMBREdelacarrerayNOMBREdel campus).
CREATE VIEW auditoria AS (
SELECT e.nombres, e.apellidos, c.nombre as carrera, u.nombre as campus
FROM estudiantes e, carreras c, campus u
WHERE c.id_carrera=e.id_carrera
andu.id_campus=c.id_campus
andc.nombre='AUDITORIA')
c)Queentreguelosestudiantesqueseatrasaronenlaentrega delos libros(RUT,
NOMBRES,APELLIDOSyFONO).
CREATE VIEW atraso_libros AS (
SELECT e. rut_est as rut, e.nombres, e.apellidos, e.fono, p.fecha_e
FROM estudiantes e, prestamo p
WHERE e.rut_est=p.rut_est
andp.fecha_e>sysdate)
3. d)Lacantidaddelibros prestados.
CREATE VIEW cantidad_prestamos AS (
SELECT count(*)
FROM prestamo)
e)Los libros deeditorialesextranjeras(CÓDIGO,TÍTULO,AÑOyPAÍSdeORIGEN).
CREATE VIEW editorials_extrangeras AS (
SELECT l.cod_libro, l.titulo, l.agno, e.pais
FROM libros l, editoriales e
WHERE l.id_edit=e.id_edit
andr.pais<>'CHILE')
f)Los libros quesondereserva (CÓDIGO,TITULOyAÑOdel LIBRO,NOMBREdela
biblioteca,el NOMBREyAPELLIDOdel autor,el NOMBREdelaeditorialy elPAÍS).
CREATE VIEW libros_reserva AS (
SELECT l.cod_libro as codigo, l.titulo, l.agno as año, b.biblioteca,
a.nombres, a.apellidos, r.nombre, r.pais
FROM libros l, biblioteca b, autores a, editoriales r, tipo t
WHERE l.id_biblio=b.id_biblio
andl.id_tipo=t.id_tipo
andl.rut_autor=a.rut_autor
andl.id_edit = r.id_edit
andt.tipo_p ='RESERVA')
2.-Serequiereobtener datos desdela Basede Datosyalmacenarlos deforma
permanente(Vista).Sesolicita:
o Losestudiantesdelcampus Isla Teja, quetienen librosen su poder (atrasadoso no).
o Se debeentregarel RUT,NOMBREyAPELLIDOS del estudiante, ademásdelNOMBRE de la
carrera a la cual pertenece.
o Ademássedebeentregar quelibrotieneprestado, indicandoCÓDIGO,TITULOy AÑO, el
NOMBREyAPELLIDOdelautor, laEDITORIALysuPAÍS, indicar enqué
bibliotecaseencuentra,y dequétipo es.
4. o Se debe indicar quefuncionariorealizolatransacción,con RUT,NOMBREyAPELLIDO.
o Además deberá indicarsela FECHA dePRÉSTAMOylaFECHAdeENTREGA deéste.
NOTA:deberá añadir ALIAS al NOMBREdelestudiante, del funcionario, del autorydela
carreraparadiferenciarlos.
CREATE VIEW prestamos_alumnos_teja AS (
SELECT e.nombres, e.apellidos, e.rut_est as rut, c.nombre as carrera, u.nombre
as campus, l.cod_libro, l.titulo, l.agno as año, a.nombres as nombre_autor,
a.apellidos as apellido_autor, r.nombre as editorial, r.pais, b.biblioteca,
t.tipo_p, f.nombres as nombre_funcionario, f.apellidos as
apellido_funcionario, f.rut_func, p.fecha_p as prestado, p.fecha_e as
entregado
FROM estudiantes e, carreras c, campus u, libros l, autores a, editoriales r,
biblioteca b, tipo t, funcionarios f, prestamo p
WHERE p.rut_est=e.rut_est
andc.id_campus=u.id_campus
andu.id_campus=f.id_campus
andf.rut_func=p.rut_func
andc.id_carrera=e.id_carrera
andp.cod_libro=l.cod_libro
andl.id_biblio=b.id_biblio
andl.id_tipo=t.id_tipo
andl.rut_autor=a.rut_autor
andl.id_edit = r.id_edit
andu.nombre='ISLA TEJA')
3.- Sesolicitaobtener losiguiente(vistas):
a)El numerodeEstudiantes por Carrera.
CREATE VIEW estudiantesxcarrera AS (
SELECT c.nombre, count(rut_est)as estudiantes
FROM estudiantes e, carreras c
WHERE e.id_carrera=c.id_carrera
GROUP BY c.nombre
ORDER BY c.nombreasc)
5. b)El numerodeEstudiantes por Campus
CREATE VIEW estudiantesxcampus AS (
SELECT u.nombre as campus, count(e.rut_est)as estudiantes
FROM estudiantes e, campus u, carreras c
WHERE e.id_carrera=c.id_carrera
andc.id_campus=u.id_campus
GROUP BY u.nombre)
c)El numerodeEstudiantes por Ciudad
CREATE VIEW estudiantesxciudad AS (
SELECT d.nombre as ciudad, count(e.rut_est)as estudiantes
FROM estudiantes e, campus u, carreras c, ciudad d
WHERE e.id_carrera=c.id_carrera
andc.id_campus=u.id_campus
andu.id_ciudad=d.id_ciudad
GROUP BY d.nombre)
d)El numerodePréstamosatrasados
CREATE VIEW prestamos_atrasados AS (
SELECT count(fecha_e)as prestamos_atrasados
FROM prestamo
WHERE fecha_e<sysdate)
e)El númerodePrestamosActivos,Noatrasados.
CREATE VIEW prestamos_activos AS (
SELECT count(fecha_e)as prestamos_activos
FROM prestamo
WHERE fecha_e>sysdate)