Laboratorio 2 SIA

4
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). CREATE OR REPLACE VIEW 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). CREATE OR REPLACE VIEW 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). CREATE OR REPLACE VIEW 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. CREATE OR REPLACE VIEW LIBROS_PRESTADOS AS SELECT COUNT(*)AS PRESTADOS

Transcript of Laboratorio 2 SIA

Page 1: Laboratorio 2 SIA

LABORATORIO 2 SIAConstanza 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).

CREATE OR REPLACE VIEW ESTUDIANTES_COMERCIAL ASSELECT E.NOMBRES, E.APELLIDOS, C.NOMBRE , CA.NOMBRE AS CAMPUSFROM ESTUDIANTES E, CARRERAS C, CAMPUS CAWHERE 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).

CREATE OR REPLACE VIEW ESTUDIANTES_AUDITORIA ASSELECT E.NOMBRES, E.APELLIDOS, C.NOMBRE, CA.NOMBRE AS CAMPUSFROM ESTUDIANTES E, CARRERAS C, CAMPUS CAWHERE C.ID_CAMPUS=CA.ID_CAMPUSAND C.NOMBRE = 'AUDITORIA'

c) Que entregue los estudiantes que se atrasaron en la entrega de los libros(RUT, NOMBRES, APELLIDOS y FONO).

CREATE OR REPLACE VIEW PRESTAMOS_ATRASADOS ASSELECT E.RUT_EST, E.NOMBRES, E.APELLIDOS, E.FONO, PR.FECHA_EFROM ESTUDIANTES E, PRESTAMO PRWHERE E.RUT_EST=PR.RUT_ESTAND FECHA_E < TRUNC( SYSDATE)

d) La cantidad de libros prestados.

CREATE OR REPLACE VIEW LIBROS_PRESTADOS ASSELECT COUNT(*)AS PRESTADOSFROM PRESTAMO

e) Los libros de editoriales extranjeras (CODIGO,TITULO , AÑO y PAIS de ORIGEN).

CREATE OR REPLACE VIEW EDITORIALES_EXTRANJERAS ASSELECT L.COD_LIBRO, L.TITULO, L.AGNO, ED.PAISFROM LIBROS L, EDITORIALES EDWHERE L.ID_EDIT=ED.ID_EDITAND ED.PAIS <> 'CHILE'

Page 2: Laboratorio 2 SIA

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

CREATE OR REPLACE VIEW LIBROS_RESERVA ASSELECT T.ID_TIPO ,L.COD_LIBRO, L.TITULO, L.AGNO AS AÑO, BI.BIBLIOTECA, AU.NOMBRES, AU.APELLIDOS, ED.NOMBRE, ED.PAISFROM LIBROS L, BIBLIOTECA BI, AUTORES AU, EDITORIALES ED, TIPO TWHERE 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_EDITAND 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.

CREATE OR REPLACE VIEW PRESTAMOS_TEJA ASSELECT 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_FUNCFROM PRESTAMO PR, ESTUDIANTES ES, CARRERAS CA, CAMPUS CAM, LIBROS LI, AUTORES AU, EDITORIALES ED, BIBLIOTECA BI, TIPO TI, FUNCIONARIOS FUWHERE PR.RUT_EST = ES.RUT_EST AND PR.FECHA_E <> TRUNC(SYSDATE) AND CA.ID_CARRERA =ES.ID_CARRERAAND CAM.ID_CAMPUS=CA.ID_CAMPUS AND CAM.ID_CAMPUS=2 AND PR.COD_LIBRO=LI.COD_LIBROAND AU.RUT_AUTOR=LI.RUT_AUTOR AND ED.ID_EDIT =LI.ID_EDITAND BI.ID_BIBLIO=LI.ID_BIBLIO AND TI.ID_TIPO=LI.ID_TIPOAND FU.RUT_FUNC=PR.RUT_FUNC

Page 3: Laboratorio 2 SIA

3.- Se solicita obtener lo siguiente (vistas):

a) El numero de Estudiantes por Carrera.

CREATE OR REPLACE VIEW ESTUDIANTES_CARRERA ASSELECT CR.NOMBRE, COUNT(E.RUT_EST) AS NUMERO_ESTUDIANTESFROM CARRERAS CR, ESTUDIANTES EWHERE CR.ID_CARRERA=E.ID_CARRERAGROUP BY CR.NOMBRE

b) El numero de Estudiantes por Campus

CREATE OR REPLACE VIEW ESTUDIANTES_CAMPUS ASSELECT CA.NOMBRE, COUNT(E.RUT_EST) AS NUMERO_ESTUDIANTESFROM CARRERAS CR, ESTUDIANTES E, CAMPUS CAWHERE CR.ID_CARRERA=E.ID_CARRERA AND CA.ID_CAMPUS=CR.ID_CAMPUSGROUP BY CA.NOMBRE

c) El numero de Estudiantes por Ciudad

CREATE OR REPLACE VIEW ESTUDIANTES_CIUDAD ASSELECT CI.NOMBRE, COUNT(E.RUT_EST) AS NUMERO_ESTUDIANTESFROM CARRERAS CR, ESTUDIANTES E, CAMPUS CA, CIUDAD CIWHERE CR.ID_CARRERA=E.ID_CARRERA AND CA.ID_CAMPUS=CR.ID_CAMPUS AND CI.ID_CIUDAD=CA.ID_CIUDADGROUP BY CI.NOMBRE

d) El numero de Préstamos atrasados

CREATE OR REPLACE VIEW NUMERO_PRESTAMOS_ATRASADOS ASSELECT COUNT(PR.COD_LIBRO) AS PRESTAMOS_ATRASADOSFROM PRESTAMO PRWHERE PR.FECHA_E <= TRUNC(SYSDATE)

e) El número de Prestamos Activos, No atrasados.

CREATE OR REPLACE VIEW PRESTAMOS_ACTIVOS ASSELECT COUNT(PR.COD_LIBRO) AS PRESTAMOS_ACTIVOSFROM PRESTAMO PRWHERE PR.FECHA_E = TRUNC(SYSDATE)