0% encontró este documento útil (0 votos)
21 vistas22 páginas

Entrega Final

El documento describe un sistema de gestión de préstamos y reservas de materiales en una biblioteca, incluyendo detalles sobre la estructura de datos, procedimientos y funciones para manejar lectores, ejemplares y multas. Se especifican las condiciones para realizar préstamos y reservas, así como las multas por retrasos en la devolución. Además, se incluyen funcionalidades para bibliotecarios y lectores, junto con un diccionario de datos y ejemplos de consultas SQL.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
21 vistas22 páginas

Entrega Final

El documento describe un sistema de gestión de préstamos y reservas de materiales en una biblioteca, incluyendo detalles sobre la estructura de datos, procedimientos y funciones para manejar lectores, ejemplares y multas. Se especifican las condiciones para realizar préstamos y reservas, así como las multas por retrasos en la devolución. Además, se incluyen funcionalidades para bibliotecarios y lectores, junto con un diccionario de datos y ejemplos de consultas SQL.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

INTEGRANTES

ESTIVEN MEDINA, RUBEIRO ROMERO, JUAN PINO, SANITAGO BALCAZAR, ALEXIS CERON

Universo del discurso


En la biblioteca Centro de cultura y conocimiento financiada por la Alcaldía desea organizar la
información sobre los préstamos realizados sobre libros, revistas y discos identificados con (Código
de tipo, nombre, autor, editorial, género*, fecha de publicación, cantidad). Cada material tiene de
una a muchos ejemplares (Código de tipo, número de ejemplar, sección donde se encuentra,
estado de disponibilidad y estado de ejemplar).
Un lector (código lector, cédula, nombre, apellido, número teléfono, correo) puede solicitar un
ejemplar a través de un préstamo o reservarlo. El préstamo se identifica (código de préstamo,
código de lector, código de ejemplar, estado, fecha de inicio) y la reserva (código de reserva,
código de lector, código de ejemplar, fecha de reserva), el lector puede solicitar hasta 5 préstamos
o reservas de ejemplares de diferentes materiales y un ejemplar puede ser solicitado para
préstamo o reserva de una a muchas veces en el tiempo.
El préstamo o la reserva solo se realizará si el lector esta registrado previamente de lo contrario se
hará un registro de este. Si el lector ya está registrado el préstamo o la reserva se realizará sólo si
dicha persona no tiene multas en anteriores préstamos. El préstamo se realiza por 7 días, en caso
de que el ejemplar se devuelva fuera de este plazo se generará una multa (código de multa,
identificador de devolución, valor de multa, fecha de multa, días de retraso, estado) de 3000 por
día y la reserva se realizara por 3 días.
Un bibliotecario identificado con (código bibliotecario, cédula, nombre, apellido, numero teléfono,
correo). Realizará el registro del lector, además es el encargado de realizar el registro de la
devolución de los ejemplares identificadas con (identificador de devolución, código de lector,
código de ejemplar, código de multa, fecha de devolución) y el registro del pago de la multa.
El género del libro puede ser (Novela, Romance, Histórico, Literario, Matemático)
El estado de disponibilidad de la copia puede ser (Disponible, No disponible)
El estado de la copia puede ser (Bueno, malo o regular)
DIAGRAMA ER Y TABLA

Drawio Con Modelo Entidad Ralcion


Lista de Funcionalidad que ofrece el Sistema

Secuencias
SECUENCIA_DEVOLUCION:
SECUENCIA_LECTOR:
SECUENCIA_RESERVA:
SECUENCIA_MULTA:
Procedimientos
actualizar_valor_multa:
Actualiza el valor de las multas pendientes basado en los días de
retraso.
Multiplica los días de retraso por 3000 para calcular el valor de la
multa.
CambiarEstadoReservados:
Cambia el estado de disponibilidad de los ejemplares reservados a 'No
Disponible'.
Afecta a los ejemplares listados en la tabla Realiza_Reserva.
mover_multas_pagadas:
Mueve las multas pagadas de la tabla Multa a la tabla
Multas_pagadas.
Borra las multas pagadas de la tabla Multa.
ingresarPrestamo:
Inserta un nuevo préstamo en la tabla SOLICITA_PRESTAMO.
Usa un contador para generar el código de préstamo.
pagar_multa:
Marca una multa como pagada y actualiza el estado correspondiente.
Inserta la multa pagada en la tabla Multas_pagadas y la elimina de la
tabla Multa.
InsertarLector:
Inserta un nuevo lector en la tabla Lector.
Utiliza la secuencia SECUENCIA_LECTOR para generar el código de
lector.
Funciones
BuscarLector:
Verifica si un lector existe en la tabla LECTOR basado en su código.
Retorna TRUE si existe, FALSE en caso contrario.
ContarPrestamos:
Cuenta el número de préstamos de un lector.
Retorna -1 si tiene 4 o más préstamos, 0 si tiene menos.
VerificarMulta:
Verifica si un lector tiene multas pendientes.
Retorna -1 si tiene multas no pagadas, 0 si no tiene.
BuscarLector:
Verifica si un lector existe en la tabla LECTOR basado en su cédula.
Retorna -1 si existe, 0 en caso contrario.
ObtenerCodigoLector:
Obtiene el código del lector basado en su cédula.
Retorna el código del lector o -1 si no se encuentra.
Procedimientos con Salida
ContarPrestamosConSalida:
Llama a ContarPrestamos y almacena el resultado en p_resultado.
VerificarMultaConSalida:
Llama a VerificarMulta y almacena el resultado en p_resultado.
BuscarLectorConSalida:
Llama a BuscarLector y almacena el resultado en p_resultado.
ObteneRCodigoLectorConSalida:
Llama a ObtenerCodigoLector y almacena el resultado en p_resultado.

Funcionalidades de LECTOR_RESERVA
Registros
RCD_RESERVAS: Registro de reservas, contiene COD_L, NOMBRE,
APELLIDO, FECHA_RES, FECHA_VEN.
RCD_MULTAS: Registro de multas, contiene COD_L, NOMBRE,
APELLIDO, COD_M, VALOR, RETRASO, ESTADO.
RCD_EJEMPLARES: Registro de ejemplares, contiene ESTADO,
DISP, COD_EJE, COD_MAT, AUTOR.
Procedimientos
REALIZAR_RESERVA(P_COD_LEC, P_COD_MAT): Permite a un
lector realizar una reserva.
TABLA_RESERVAS(P_COD, TBL OUT TBL_RESERVAS): Genera
una tabla con las reservas no vencidas de un lector.
TABLA_MULTAS(P_COD, TBL OUT TBL_MULTAS): Genera una tabla
con las multas pendientes de un lector.
TABLA_EJEMPLARES(P_COD_MATERIAL, TBL OUT
TBL_EJEMPLARES): Genera una tabla con ejemplares disponibles de
un material específico.
Funciones
NO_EXISTE_LECTOR(P_COD) RETURN BOOLEAN: Verifica si un
lector no existe, retorna TRUE si no existe.

Funcionalidades del TRIGGER LIM_RESERVAS


Acciones Antes de Insertar o Eliminar en REALIZA_RESERVA
Si se elimina una reserva, actualiza la disponibilidad del ejemplar a
'Disponible'.
Si se inserta una reserva, verifica:
Existencia del lector.
Disponibilidad del ejemplar.
Multas pendientes del lector.
Número máximo de reservas permitidas.
Actualiza la disponibilidad del ejemplar a 'No Disponible' si la reserva
es exitosa.
Maneja excepciones específicas para casos de lector no existente,
multas pendientes, máximo de reservas y ejemplares no disponibles.
Funcionalidades de bibliotecario_pack
Funciones
BuscarLector(p_codigoLector) RETURN BOOLEAN: Busca un lector
por su código, retorna TRUE si existe.
ContarPrestamos(p_codigoLector) RETURN NUMBER: Cuenta los
préstamos de un lector, retorna -1 si tiene 4 o más préstamos.
VerificarMulta(p_codigoLector) RETURN NUMBER: Verifica si un
lector tiene multas pendientes, retorna -1 si tiene multas sin pagar.
BuscarLector(p_cedula) RETURN NUMBER: Busca un lector por su
cédula, retorna -1 si existe.
ObtenerCodigoLector(p_cedula) RETURN NUMBER: Obtiene el
código de un lector por su cédula.
BuscarLectorPorCodigo(p_codigo) RETURN NUMBER: Busca un
lector por su código, retorna -1 si existe.
BuscarMaterial(p_codigo) RETURN NUMBER: Busca un material por
su código, retorna -1 si existe.
BuscarReserva(p_codigomaterial) RETURN NUMBER: Busca una
reserva por el código del material, retorna -1 si existe.
ValorMulta(p_codigoLector) RETURN NUMBER: Obtiene el valor de
la multa de un lector.
VerificarPrestamo(p_codigoLector) RETURN NUMBER: Verifica si un
lector tiene préstamos, retorna -1 si tiene préstamos.
Procedimientos
ContarPrestamosConSalida(p_codigoLector, p_resultado OUT
NUMBER): Cuenta los préstamos de un lector y retorna el resultado.
VerificarMultaConSalida(p_codigoLector, p_resultado OUT
NUMBER): Verifica las multas de un lector y retorna el resultado.
BuscarLectorConSalida(p_codigoLector, p_resultado OUT
NUMBER): Busca un lector por su cédula y retorna el resultado.
ObteneRCodigoLectorConSalida(p_cedula, p_resultado OUT
NUMBER): Obtiene el código de un lector por su cédula y retorna el
resultado.
ingresarPrestamo(p_codigoLector, p_codigoMaterial): Ingresa un
nuevo préstamo para un lector.
BuscarLectorPorCodigoConSalida(p_codigoLector, p_resultado
OUT NUMBER): Busca un lector por su código y retorna el resultado.
BuscarMaterialConSalida(p_codigo, p_resultado OUT NUMBER):
Busca un material por su código y retorna el resultado.
BuscarReservaConSalida(p_codigomaterial, p_resultado OUT
NUMBER): Busca una reserva por el código del material y retorna el
resultado.
InsertarLector(p_cedula, p_nombre, p_apellido, p_telefono,
p_correo): Inserta un nuevo lector.
EliminarLector(p_codigoLector): Elimina un lector por su código.
MostrarLectores(p_cursor OUT SYS_REFCURSOR): Muestra todos
los lectores.
MostrarLector(p_cedula, p_cursor OUT SYS_REFCURSOR):
Muestra un lector por su cédula.
ModificarLector(p_codigo_lector, p_cedula, p_nombre, p_apellido,
p_telefono, p_correo): Modifica los datos de un lector.
Vistas y Triggers
Vista V_Lectores
Crea una vista de los lectores con los campos codigo_lector, cedula,
nombre, apellido, telefono, correo.
Trigger TR_V_Lectores
Gestión de inserciones, actualizaciones y eliminaciones en la vista
V_Lectores.

Triggers
Trigger TR_V_Lectores
Tipo: INSTEAD OF INSERT, UPDATE, DELETE
Descripción: Maneja las operaciones de inserción, actualización y
eliminación en la vista V_Lectores, reflejando los cambios en la tabla
Lector.
Operaciones:
INSERT: Inserta un nuevo registro en la tabla Lector.
UPDATE: Actualiza un registro existente en la tabla Lector.
DELETE: Elimina un registro de la tabla Lector.
Trigger trg_controlar_prestamos
Tipo: BEFORE INSERT
Descripción: Controla el número de ejemplares prestados para un
material específico, evitando que se exceda el número máximo de
préstamos permitidos.
Operaciones:
INSERT: Verifica que no se haya alcanzado el número máximo de
préstamos para un ejemplar antes de permitir la inserción en
SOLICITA_PRESTAMO.
Trigger trg_validar_datos_lector
Tipo: BEFORE INSERT, UPDATE
Descripción: Valida los datos de los lectores antes de insertar o
actualizar registros en la tabla LECTOR.
.
Procedimientos y Funciones:
mostrarPrestamos(p_cursor OUT SYS_REFCURSOR): Muestra
todos los préstamos activos.
PRESTAMOS_POR_LECTOR(p_codigo_lector IN NUMBER,
c_solicitud OUT solicitud_prestamo_cursor): Muestra los préstamos
realizados por un lector específico.
InsertarMulta(p_identificador_devolucion IN NUMBER, p_dias_retraso
IN NUMBER, p_codigo_multa OUT NUMBER, p_valor_multa OUT
NUMBER): Inserta una multa por retraso en la devolución de un
ejemplar.
InsertarDevolucion(p_codigo_lector IN NUMBER, p_codigo_ejemplar
IN NUMBER, p_codigo_multa IN NUMBER, p_identificador_devolucion
OUT NUMBER): Registra la devolución de un ejemplar.
RegistrarDevolucionConMulta(p_codigo_prestamo IN NUMBER,
p_valor_multa OUT NUMBER): Registra la devolución de un ejemplar
y aplica una multa si corresponde.
calcular_diferencia_dias(p_fecha_prestamo IN DATE) RETURN
NUMBER: Calcula la diferencia en días entre la fecha de préstamo y la
fecha actual.
Paquete paquete_multa
Descripción: Gestiona las operaciones relacionadas con las multas.
Procedimientos:
mostrarmultas(p_cursor OUT SYS_REFCURSOR): Muestra todas las
multas pendientes.
MULTAS_POR_LECTOR(p_codigo_lector IN NUMBER, c_solicitud
OUT solicitud_multa_cursor): Muestra las multas pendientes para un
lector específico.
pagar_multa(p_codigo_multa IN NUMBER): Procesa el pago de una
multa y actualiza el estado correspondiente.
Paquete paquete_material
Descripción: Gestiona las operaciones relacionadas con la búsqueda
de materiales.
Procedimientos:
buscar_material(p_nombre IN VARCHAR2, p_result OUT
SYS_REFCURSOR): Busca materiales por nombre y devuelve un
cursor con los resultados.
Indices
Índice en la tabla Realiza_Reserva sobre las columnas codigo_lector y
fecha_reserva para acelerar las búsquedas de reservas realizadas por un
lector en una fecha específica.
CREATE INDEX idx_reserva_lector_fecha ON Realiza_Reserva
(codigo_lector, fecha_reserva);
Índice en la tabla Ejemplar sobre la columna estado_disponibilidad para
acelerar las búsquedas de ejemplares disponibles.
CREATE INDEX idx_ejemplar_estado_disponibilidad ON Ejemplar
(estado_disponibilidad);
índice básico en la tabla Lector para mejorar el rendimiento de consultas
que buscan por el campo nombre.
CREATE INDEX idx_lector_nombre ON Lector(nombre);
índice basado en una función en la tabla Material para mejorar las
búsquedas de materiales por su autor, convirtiendo el autor a minúsculas
para hacer las búsquedas insensibles a mayúsculas/minúsculas.
CREATE INDEX idx_material_autor_lower ON Material(LOWER(autor));
Diccionario de Datos Lector
Este diccionario de datos proporciona consultas SQL para obtener
información sobre la estructura y objetos en la base de datos de un
usuario conectado. Incluye consultas para mostrar nombres de tablas,
procedimientos, columnas, vistas y restricciones dentro del esquema del
usuario. Cada consulta está diseñada para proporcionar detalles
específicos sobre los elementos de la base de datos, como nombres de
tablas, columnas, procedimientos, vistas y restricciones
Pantallazos
Inicio
consultar material
Consultar préstamo
Consultar material

Lector
Eliminar excepciones
Modificar Lector
Registrar Lector

Prestamos
Registrar Multas

Historial de multas pagadas


Iniciar sesión
Reservar Material
Diccionario de datos

También podría gustarte