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
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)
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.
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)
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)

Laboratorio 2

  • 1.
    Universidad Austral deChile 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 dedatos 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 VIEWcantidad_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 porCampus 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)