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

Laboratorio 2 SIA

  • 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 librosque 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 solicitaobtener 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)