1. UNIVERSIDAD NACIONAL DE TRUJILLO
FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS
ESCUELA PROFESIONAL DE INFORMATICA
TRABAJO DE CURSO:
DISEÑO DE UN SISTEMA DE BASE DE DATOS PARA EL
FUNCIONAMIENTO DE UNA BIBLIOTECA
INFORME DE PROYECTO DE CURSO:
BASE DE DATOS I
PRESENTADO POR:
MINCHON BENITES FELIX
SALDAÑA GONZALES JYMMY
REBAZA GARCIA CRISTINA
VARGAS LUJAN GERSON
VILLANUEVA REYNA KEVIN
TRUJILLO - PERU
2018
4. Resumen
El presente proyecto tiene como objetivo principal analizar y crear una base de datos para
llevar a cabo el control de la información y el funcionamiento de una biblioteca, de esta forma
estaremos aplicando la tecnología a satisfacer las necesidades de los usuarios y optimizar la
gestión en esta biblioteca.
Para el desarrollo de este sistema informático se utilizó como lenguaje de programación
JAVA Netbeans, como gestor de base de datos se utilizó MySQL, el sistema será desarrollado
bajo los requerimientos necesarios dentro de la gestión bibliotecaria.
Con este proyecto pretendemos optimizar dicha gestión de información, logrando de esta
manera el almacenamiento de datos, lograr mejorar el servicio de la biblioteca, consultas al
sistema, permitir el rápido acceso a la información que se necesite y manejo eficiente de la in-
formación.
Palabras Clave: Base de Datos, JAVA Netbeans, MySQL.
Abstract
The main objective of this project is to analyze and create a database to carry out the control
of information and the functioning of a library, in this way we will be applying technology to
meet the needs of users and optimize management in this library.
For the development of this computer system was used as programming language JAVA Net-
beans, as MySQL database manager was used, the system will be developed under the necessary
requirements within the library management.
With this project we intend to optimize this information management, thus achieving the
storage of data, achieving better library service, consulting the system, allowing quick access to
the information needed and efficient management of information.
keywords: Database, JAVA Netbeans, MySQL.
1
5. 1. Realidad Problemática
Las bibliotecas siempre han estado al tanto de nuevas tecnologías que permitan desempeñar
de una manera mejor su papel de brindar información. Las bibliotecas deben llevar a cabo una
administración de los recursos con los que cuentan y para ello se necesita de un mecanismo que
garantice que la información esté debidamente actualizada.
Actualmente la biblioteca Nacional no cuenta con un sistema que facilite el manejo de con-
trol e inventario en los préstamos y devoluciones de los artículos(libros,películas,audios), todos
esos procesos se realizan de forma manual, siempre ha sido un proceso tedioso para el admi-
nistrador de la biblioteca porque llega a consumir mucho tiempo que podría aprovecharse en
actividades de actualización de información de la misma.
Desde contar la cantidad de libros, registrar los préstamos y las devoluciones que realizan
los socios en todo el periodo de las actividades; además como se llevan a cabo estas tareas se
generan ciertos problemas, como por ejemplo perdidas de libros, esto sucede si se pierde alguna
ficha donde está la descripción del libro prestado.
La Biblioteca Nacional necesita un sistema donde el administrador debe obtener la informa-
ción de estos socios, solicitud de préstamos de artículos, así mismo desea conocer las fechas de
préstamos y la fecha tope para la devolución.
2
6. 2. Ingeniería del Proyecto
2.1. Álgebra Relacional
Consultas
1. Lista de personas y sus números de teléfono .
select p.id, p.nombres, t.id
from persona p, telefono t
where p.id = t.Persona_id;
2. Lista de préstamos y su fecha de devolución.
select p.id, d.fechadevolucion
from prestamo p, detalle_prestamo d
where p.id = d.prestamo_id;
3. Lista de salas y su reserva.
select s.id, r.id, r sala_id
from sala s, reserva r
where s.id = r.sala_id;
4. Lista de socios y su reserva.
select s.id, r.id, r.Socio_id
from reserva r, socio s
where s.id = r.Socio_id;
5. Lista de artículos y sus audios.
select a.id, a.titulo, b.id, b.canciones
from articulo a, audio b
where a.id = b.Articulo_id;
3
7. 6. Lista de personas y sus administradores.
select p.id, p.nombres, p.apellidos, a.id, a.password
from persona p, administrador a
where p.id = a.persona_id
7. Lista de artículos con mas de una película.
select a.id, a.titulo, p.id,count(*) peliculas from articulo a, pelicula p where a.id = p.Articulo_id
group by a.id, p.id having count(*)>1 order by p.id;
8. Lista de socios, cantidad de préstamos y fecha de entrega.
select s.id, s.prestamos, d.fechaentrega
from socio s, detalle_prestamo d
where s.id = d.Socio_id;
9. Lista de artículos, préstamo y estado.
select a.id, a.titulo, d.estado, p.id
from articulo a, detalle_prestamo d, prestamo p
where a.id = d.articulo_id and d.prestamo_id = p.id;
4
8. Consultas hechas en Algebra Relacional
1. Lista de personas y sus números de teléfono .
π p.id,pnombres,telefonoid(PERSONAS)
2. Lista de préstamos y su fecha de devolución.
π (p.id,d.fechadevolucion(PERSONAS*DATOS))
3. Lista de salas y su reserva.
π (s.id,r.id(SALAS*RESERVA))
4. Lista de socios y su reserva.
π (s.id,r.id(SOCIOS*RESERVA))
5. Lista de artículos y sus audios.
π (a.id,a.titulo,bid,b.canciones(ARTICULO*AUDIO))
6. Lista de personas y sus administradores.
π (p.id,p.nombres,p.apellidos,a.id,a.password(PERSONAS*ADMINISTRADORES))
7. Lista de artículos con mas de una película.
π (a.id,a.titulo,p.id,countpeliculas(ARTICULOS*PELICULAS) (σcount.peliculas>1(PELICULAS)))
8. Lista de socios, cantidad de préstamos y fecha de entrega.
π (s.id,s.prestamos,d.fechaentrega(SOCIO*DETALLEPRESTAMO))
9. Lista de artículos, préstamo y estado.
π (a.id,a.titulo,d.estado,p.id(ARTICULO*PRESTAMO*ESTADO))
5
10. Normalización de PERSONA:
dni nombre direccion teléfono tipo_persona
71456743 José Guevara Ruiz Los laureles 679
987675456 /
987656786
socio
05983456 Amber Gómez Rodríguez Vista hermosa 243 992343564
administrador /
socio
password sancion prestamos id_sala
1234 sancion1 2 S0001
4567 sancion2 3 S0001
Primera Forma Normal (1FN):
dni nombres apellido_paterno apellido_materno dirección teléfono tipo_persona
71456743 José Guevara Ruiz Los laureles 679
987675456 /
987656786
socio
05983456 Amber Gómez Rodríguez Vista hermosa 243 992343564
administrador /
socio
password sancion prestamos id_sala
1234 sancion1 2 S0001
4567 sancion2 3 S0001
Segunda Forma Normal (2FN):
id_socio −→ sancion, prestamos, id_persona
id_administrador −→ password, id_persona
id_persona −→ dni, direccion, nombres, apellido_paterno, apellido_materno, id_sala, id_telefono
Tabla Socio:
id_socio id_persona sancion prestamos
30002 71456743 1234 2
30004 05983456 4567 3
Tabla Administrador:
id_administardor id_persona password
70003 05983456 4567
7
11. Tabla Persona:
dni nombres apellido_paterno apellido_materno dirección id_sala
71456743 José Guevara Ruiz Los Laureles 679 S0001
05983456 Amber Gómez Rodríguez Vista Hermosa 243 S0001
Tercera Forma Normal (3FN):
id_socio −→ sancion, prestamos, id_persona
id_administrador −→ password, id_persona
id_persona −→ dni, dirección, nombres, apellido_paterno, apellido_materno, id_sala, id_telefono
id_reserva −→ id_persona, id_socio, id_sala
Tabla Socio:
id_socio id_persona sancion prestamos
30002 71456743 1234 2
30004 05983456 4567 3
Tabla Administrador:
id_administardor id_persona password
70003 05983456 4567
Tabla Persona:
dni nombres apellido_paterno apellido_materno direccion
71456743 José Guevara Ruiz Los laureles 679
05983456 Amber Gómez Rodríguez Vista hermosa 243
8
12. Tabla Reserva:
id_reserva id_persona id_socio id_sala
R0001 71456743 71456743 S0001
R0002 05983456 05983456 S0002
Normalización de PRÉSTAMO:
id_prestamo fecha_prestamo fecha_devolucion fecha_entrega id_socio id_articulo estado
900003 6-07-2018 11-07-2018 21-07-2018 30002 50001 devuelto
900008 7-07-2018 17-07-2018 27-07-2018 30004 50006 prestado
Primera Forma Normal (1FN):
- Ya está en primera forma normal
Segunda Forma Normal (2FN):
id_prestamo −→ id_prestamo
id_detallePrestamo −→ id_prestamo, fecha_prestamo, fecha_devolucion, fecha_entrega,
id_socio, id_articulo, estado
Tabla Préstamo:
id_prestamo
900003
900008
Tabla Detalle_Prestamo:
Id_detallePrestamo id_prestamo fecha_prestamo fecha_devolucion fecha_entrega id_socio id_articulo estado
DP0001 900003 6-07-2018 11-07-2018 21-07-2018 30002 50001 devuelto
DP0002 900008 7-07-2018 17-07-2018 27-07-2018 30004 50006 prestado
9
13. Normalización de ARTÍCULO:
cod_articulo autor titulo año_publicacion estado canciones duracion edicion paginas editorial
10003
Gabriel García
Marquez
Cien años
de soledad
1967 nuevo null null 2008 234 Aguilar
10004
Gabriel García
Marquez
El amor en tiempos
de cólera
1985 nuevo null 2 null null null
10007
Julio Ramon
Riveyro
La palabra del
mudo
1973 nuevo 15 null null null null
Primera Forma Normal (1FN):
- Ya está en primera forma Normal
Segunda Forma Normal (1FN):
id_audio −→ canciones
id_pelicula −→ duración
id_libro −→ páginas, editorial, edición
id_articulo −→ estado, titulo, autor, año_publicaicon
Tabla Audio:
id_audio id_articulo canciones
20002 10007 15
Tabla Película:
id_pelicula id_articulo duración
50004 10004 2
10
14. Tabla Libro:
id_libro id_articulo paginas editorial edición
90003 10003 234 Aguilar 2008
Tabla Articulo:
cod_articulo estado titulo autor año_publicacion
10003 nuevo Cien años de soledad Gabriel García Marquez 1967
10004 nuevo El amor en tiempos de cólera Gabriel García Marquez 1985
10007 nuevo La palabra del mudo Julio Ramon Riveyro 1973
Normalización de SALA:
id_sala
S0001
S0001
Primera Forma Normal (1FN):
- Ya está en primera forma Normal
11
16. 2.5. Diccionario de Datos interpretado
Este Diccionario de Datos contiene las características de los elementos que forman parte de
la estructura requerida.
Para poder generar el Diccionario de Datos se dispuso de una serie de pasos(Anexo 1).
13
20. 3. Conclusiones
El estar al tanto de las situaciones cotidianas que suceden en una biblioteca, nos permite
tener una visión más amplia, que se acerca de mejor forma a estas realidades. Por tanto,
nuestro aporte en el uso de sistemas de gestión de bases de datos resulta muy valioso.
Por un lado es necesario trabajar en todo lo que es modelamiento de la base de datos,
graficando objetos, relaciones y acciones, para luego abocarse a la programación, para la
cual podemos trabajar en conjunto con un grupo especializado del área de informática.
Es muy importante estar atentos frente a las nuevas tecnologías que pueden aportar y
optimizar el servicio que se pueden ofrecer a los usuarios de la biblioteca.
Existen SGBD gratuitos, como MySQL, que nos pueden ser de ayuda para optimizar o
crear nuevos servicios.
Los sistemas de gestión de base de datos nos ayudan a automatizar procesos y aprovechar
eficientemente los recursos.
El uso de lenguajes estandarizados facilita la interacción con las bases de datos y permite
definir procesos.
17
21. 4. Recomendaciones
Para poder implementar un sistema informático para la gestión de una biblioteca es re-
comendable tener conocimiento de todos los procesos que se lleva a cabo o disponer
de información necesaria para llevar a cabo su desarrollo e implementación sin ningún
problema.
En la fase de desarrollo del sistema es de vital importancia saber elegir la herramienta
adecuada que permita llevar a cabo el desarrollo del sistema sin presentar problemas,
facilitando su trabajo.
Antes de implementar un sistema informático de este tipo, como es el caso de la ges-
tión de actividades de una biblioteca, se recomienda realizar un estudio minucioso de la
problemática existente, los requerimientos a los cuales se rige para poder obtener datos
relevantes que serán de vital importancia en el desarrollo del sistema.
Para este tipo de sistema de gestión de biblioteca que será orientada para los usuarios es
importante despertar interés en su uso, para ello se recomienda en su desarrollo que sea
amigable, interfaz entendible y fácil de usar, sin olvidar de equipar al sistema un manual
de usuario.
Aplicar todos los pasos detallados en el manual de instalación para poder contar con el
sistema funcionando sin ningún tipo de error referente a la instalación de los componentes
que conformen el sistema.
18
22. 5. Bibliografía
Jorge Sánchez, Sistema de Gestión de Base de Datos,Cuarta Edición, 2010.
C.J. Date, Introducción a los Sistemas de Base de Datos, Novena Edición, 2007.
Márquez M., Historia de los Sistemas de Bases de Datos, 2015.
ROZIC, Sergio Ezequiel, Bases de datos y su aplicación con MySQL, Buenos Aires, 2004.
Delio Andrés Valencia López and Juan Manuel Cárdenas Restrepo, Análisis y Diseño de un
Modelo Informático para una Biblioteca Digital utilizando Agentes Inteligentes en la Gestión
y Consulta de Información, Universidad Tecnológica de Pereira, Facultad de Ciencias Básicas,
2004.
Jon Stephens and Chad Russell, Beginning MySQL Database Design and Optimization:
From Novice to Professional, Quinta Edición, 2016.
19
23. Anexos
Anexo 1: Pasos para generar el Diccionario de Datos
Paso 1. Descargar WB Datadict, plugin para MySQL Workbench. Este plugin le permite
generar un diccionario de datos en formato HTML a partir de un esquema de la base de datos.
Paso 2. Ingresamos a MySQL Workbench y escogemos nuestro modelo relacional, en la
barra superior de opciones seleccionamos la opción "Tools".
Paso 3. Una vez seleccionada la opción "Tools"seleccionamos en la sub-barra la opción
20
24. Catalog".
Paso 4. Una vez seleccionada la opción Catalog"seleccionamos en el sub-menú la opción
"Generate HTML Data Dictionary", esta opción generará un Archivo HTML.
21
25. Paso 5. Aparecerá una ventana donde daremos nombre al archivo a generar y seleccionare-
mos la ruta donde queremos almacenar el archivo ".html", damos click en el botón guardar y
aparecerá el resultado de la acción.
Paso 6. Aparecerá un mensaje de MySQL Workbench diciéndonos que el diccionario de
datos se generó con éxito.
Paso 7. Ahora buscamos el archivo en la ruta indicada y lo abrimos, se abrirá nuestro nave-
gador web con el diccionario de datos.
22