1. LABORATORIO 2 SIA
Constanza Ruiz Aguilar – Miguel Pustela Jara
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.- Realice las siguientes vistas:
a) Que entregue los estudiantes que son de Ing. Comercial (NOMBRES y APELLIDOS del
estudiante, NOMBRE de la carrera y NOMBRE del campus).
CREATEORREPLACEVIEW ESTUDIANTES_COMERCIAL AS
SELECT E.NOMBRES, E.APELLIDOS, C.NOMBRE , CA.NOMBRE AS CAMPUS
FROM ESTUDIANTES E, CARRERAS C, CAMPUS CA
WHERE C.ID_CAMPUS=CA.ID_CAMPUS AND C.NOMBRE = 'ING. COMERCIAL'
b) Que entregue los estudiantes que son de Auditoria (NOMBRES y APELLIDOS del
estudiante, NOMBRE de la carrera y NOMBRE del campus).
CREATEORREPLACEVIEW ESTUDIANTES_AUDITORIA AS
SELECT E.NOMBRES, E.APELLIDOS, C.NOMBRE, CA.NOMBRE AS CAMPUS
FROM ESTUDIANTES E, CARRERAS C, CAMPUS CA
WHERE C.ID_CAMPUS=CA.ID_CAMPUS
AND C.NOMBRE = 'AUDITORIA'
c) Que entregue los estudiantes que se atrasaron en la entrega de los libros(RUT,
NOMBRES, APELLIDOS y FONO).
CREATEORREPLACEVIEW PRESTAMOS_ATRASADOS AS
SELECT E.RUT_EST, E.NOMBRES, E.APELLIDOS, E.FONO, PR.FECHA_E
FROM ESTUDIANTES E, PRESTAMO PR
WHERE E.RUT_EST=PR.RUT_EST
AND FECHA_E <TRUNC(SYSDATE)
d) La cantidad de libros prestados.
CREATEORREPLACEVIEW LIBROS_PRESTADOS AS
SELECTCOUNT(*)AS PRESTADOS
FROM PRESTAMO
e) Los libros de editoriales extranjeras (CODIGO,TITULO , AÑO y PAIS de ORIGEN).
CREATEORREPLACEVIEW EDITORIALES_EXTRANJERAS AS
SELECT L.COD_LIBRO, L.TITULO, L.AGNO, ED.PAIS
FROM LIBROS L, EDITORIALES ED
WHERE L.ID_EDIT=ED.ID_EDIT
AND ED.PAIS <>'CHILE'
2. f) Los libros que son de reserva (CODIGO, TITULO y AÑO del LIBRO, NOMBRE de la
biblioteca, el NOMBRE y APELLIDO del autor, el NOMBRE de la editorial y el PAIS ).
CREATEORREPLACEVIEW LIBROS_RESERVA AS
SELECTT.ID_TIPO ,L.COD_LIBRO, L.TITULO, L.AGNO AS AÑO, BI.BIBLIOTECA,
AU.NOMBRES, AU.APELLIDOS, ED.NOMBRE, ED.PAIS
FROM LIBROS L, BIBLIOTECA BI, AUTORES AU, EDITORIALES ED, TIPO T
WHERE T.ID_TIPO=L.ID_TIPO AND L.ID_BIBLIO = BI.ID_BIBLIO AND L.RUT_AUTOR =
AU.RUT_AUTOR AND L.ID_EDIT = ED.ID_EDIT
AND T.ID_TIPO = 1
2.-Se requiere obtener datos desde la Base de Datos y almacenarlos de forma permanente
(Vista). Se solicita:
Los estudiantes del campus Isla Teja, que tienen libros en su poder (atrasados o no).
Se debe entregar el RUT, NOMBRE y APELLIDOS del estudiante, además del
NOMBRE de la carrera a la cual pertenece.
Además se debe entregar que libro tiene prestado, indicando CODIGO, TITULO y
AÑO, el NOMBRE y APELLIDO del autor, la EDITORIAL y su PAIS, indicar en
qué biblioteca se encuentra, y de qué tipo es.
Se debe indicar que funcionario realizo la transacción, con RUT, NOMBRE y
APELLIDO.
Además deberá indicarse la FECHA de PRESTAMO y la FECHA de ENTREGA
de éste.
NOTA: deberá añadir ALIAS al NOMBRE del estudiante, del funcionario, del autor y de la
carrera para diferenciarlos.
CREATEORREPLACEVIEW PRESTAMOS_TEJA AS
SELECT PR.RUT_EST, ES.NOMBRES AS NOMBRE_EST, ES.APELLIDOS AS
APELLIDO_EST, CA.NOMBRE AS CARRERA, CAM.NOMBRE AS CAMPUS,
LI.COD_LIBRO, LI.TITULO, LI.AGNO AS AÑO, AU.NOMBRES AS AUTOR,
AU.APELLIDOS AS APELLIDO_AUTOR, ED.NOMBRE AS EDITORIAL, ED.PAIS,
BI.BIBLIOTECA, TI.TIPO_P, FU.RUT_FUNC, FU.NOMBRES AS NOMBRE_FUNC,
FU.APELLIDOS AS APELLIDO_FUNC
FROMPRESTAMO PR, ESTUDIANTES ES, CARRERAS CA, CAMPUS CAM, LIBROS LI,
AUTORES AU, EDITORIALES ED, BIBLIOTECA BI, TIPO TI, FUNCIONARIOS FU
WHERE PR.RUT_EST = ES.RUT_EST
AND PR.FECHA_E <>TRUNC(SYSDATE)
AND CA.ID_CARRERA =ES.ID_CARRERA
AND CAM.ID_CAMPUS=CA.ID_CAMPUS
AND CAM.ID_CAMPUS=2AND PR.COD_LIBRO=LI.COD_LIBRO
AND AU.RUT_AUTOR=LI.RUT_AUTOR
AND ED.ID_EDIT =LI.ID_EDIT
AND BI.ID_BIBLIO=LI.ID_BIBLIO
AND TI.ID_TIPO=LI.ID_TIPO
AND FU.RUT_FUNC=PR.RUT_FUNC
3. 3.- Se solicita obtener lo siguiente (vistas):
a) El numero de Estudiantes por Carrera.
CREATEORREPLACEVIEW ESTUDIANTES_CARRERA AS
SELECT CR.NOMBRE, COUNT(E.RUT_EST) AS NUMERO_ESTUDIANTES
FROM CARRERAS CR, ESTUDIANTES E
WHERE CR.ID_CARRERA=E.ID_CARRERA
GROUPBY CR.NOMBRE
b) El numero de Estudiantes por Campus
CREATEORREPLACEVIEW ESTUDIANTES_CAMPUS AS
SELECT CA.NOMBRE, COUNT(E.RUT_EST) AS NUMERO_ESTUDIANTES
FROM CARRERAS CR, ESTUDIANTES E, CAMPUS CA
WHERE CR.ID_CARRERA=E.ID_CARRERA AND CA.ID_CAMPUS=CR.ID_CAMPUS
GROUPBY CA.NOMBRE
c) El numero de Estudiantes por Ciudad
CREATEORREPLACEVIEW ESTUDIANTES_CIUDAD AS
SELECT CI.NOMBRE, COUNT(E.RUT_EST) AS NUMERO_ESTUDIANTES
FROM CARRERAS CR, ESTUDIANTES E, CAMPUS CA, CIUDAD CI
WHERE CR.ID_CARRERA=E.ID_CARRERA AND CA.ID_CAMPUS=CR.ID_CAMPUS AND
CI.ID_CIUDAD=CA.ID_CIUDAD
GROUPBY CI.NOMBRE
d) El numero de Préstamos atrasados
CREATEORREPLACEVIEW NUMERO_PRESTAMOS_ATRASADOS AS
SELECTCOUNT(PR.COD_LIBRO) AS PRESTAMOS_ATRASADOS
FROM PRESTAMO PR
WHERE PR.FECHA_E <= TRUNC(SYSDATE)
e) El número de Prestamos Activos, No atrasados.
CREATEORREPLACEVIEW PRESTAMOS_ACTIVOS AS
SELECTCOUNT(PR.COD_LIBRO) AS PRESTAMOS_ACTIVOS
FROM PRESTAMO PR
WHERE PR.FECHA_E = TRUNC(SYSDATE)