UNIVERSIDAD LUTERANA SALVADOREÑA
FACULTAD DE CIENCIAS DEL HOMBRE Y LA NATURALEZA
LICENCIATURA EN CIENCIAS DE LA COMPUTACION
Tema:
Creación de una Base de Datos
Integrantes:
Ana Cristina Merino Jovel
Elvis Henry Fabián Martínez
Jonathan Oseas López Mendoza
Emilia Nohemy Muñoz Perdomo
Griselda Esmeralda Custodio García
Ingeniero:
Oscar Armando Sánchez Trabajando
Materia:
Base de Datos I
San Salvador, 15 junio 2019
Contenido
INTRODUCCIÓN ....................................................................................................................... 3
OBJETIVOS ................................................................................................................................ 4
Objetivo general: ...................................................................................................................... 4
Objetivos específicos: ............................................................................................................... 4
DESCRIPCIÓN DEL PROYECTO ............................................................................................ 5
Script SQL ................................................................................................................................... 6
Lista de Consultas ........................................................................................................................ 9
CONCLUSION .......................................................................................................................... 11
INTRODUCCIÓN
Este trabajo está realizado con el fin de implementar una base de datos para el control de
una biblioteca, más exactamente para el de los préstamos de los libros utilizándola como
elemento clave para saber los libros que se prestan , este es en beneficio para las personas
como estudiantes, universitarios, docentes, empresarios etc. Se busca colaborarles al
máximo prestándole libros donde puedan conseguir la información que necesitan además
pudiéndoselos llevar a sus casas para mayor comodidad pero regresándolos en buen estado
para que sigan haciendo uso de estos diferentes personas. La base de datos de la biblioteca
se implementa no solo para tener control de los libros sino además para que por medio de
tablas se contenga información de los usuarios, ya que son estos los que van hacer uso de lo
contenido en este lugar.
3
OBJETIVOS
Objetivo general:
Diseñar e implementar nuevas ideas sobre programar una base de datos
implementando consultas y diferentes comandos, manejando conceptos básicos y
prácticos necesarios.
Objetivos específicos:
Diseñar y desarrollar modos de consulta y comandos para realizar consulta de
información almacenada en una base de datos.
Conocer y utilizar los conceptos básicos de las búsquedas, consultas y distribución
de los mismos en una base de datos.
Entender la estructura interna de un motor de bases de datos, entre ellos los
archivos, índices y procesamiento de consultas. Conocer algunas estrategias de
implementación y utilizar una de ellas
4
DESCRIPCIÓN DEL PROYECTO
El proyecto se compone de una base de datos estructurada y analizada por los integrantes del
grupo, se entiende como una base de datos al conjunto de datos pertenecientes a un mismo
contexto y almacenados sistemáticamente para su posterior uso y para este caso se utilizó
una base de datos en el lenguaje de SQL. Así como en una biblioteca se puede consultar un
libro y por medio de una serie de clasificaciones se facilita su consulta, así una base de datos
se clasifica por medio de tablas ordenadas y nombradas claramente para su búsqueda más
ágil.
En este proyecto planteamos una implementamos una base de datos para el control de una
biblioteca. La base de datos se llamara biblioteca y tendrá las siguientes tablas con sus
características:
Tabla libros: esta subentidad nos indica el tipo de libro, la clase de libro que necesita el
usuario para consultar información según lo que necesite se registran los datos acordes al
libro.
Tabla usuarios: esta subentidad sirve para tener los datos de los usuarios que se
responsabilizan de los libros, nombre, dirección, teléfono por si no se presenta a devolver el
material para contactarlos y que se hagan presentes.
Tabla préstamos: esta subentidad nos da el código del libro y del usuario el cual lo identifica
para tener un control de unidades prestadas.
Por medio de consultas y códigos establecidos podemos organizar los se ofrece un amplio
rango de soluciones al problema del almacenamiento de datos.
5
Script SQL
-- Crear Base de Datos
CREATE DATABASE IF NOT EXISTS `prestamo_libros` DEFAULT CHARACTER SET utf8
COLLATE utf8_general_ci;
--Crear tablas relacionadas
--Crear tabla Usuario:
create table usuarios (carnet varchar(50) primary key , tipodocumento char(11), nombre
varchar(50), apellido varchar(50), telefono varchar(50), direccion text(20), email varchar(100));
--Ingresar registros tabla usuarios:
INSERT INTO `usuarios` (`carnet`, `tipodocumento`, `nombre`, `apellido`, `telefono`, `direccion`,
`email`) VALUES
('AB01134618', 'nt01187', 'Angel', 'Baires', '25201567', 'La Libertad', 'Baangel@[Link]'),
('AC01134622', 'nt01191', 'Angela', 'Canizales', '25769009', 'La Libertad', 'caniangy@[Link]'),
('ah01134611', 'nt1180', 'Antonio', 'Hernandez', '22201412', 'san salvador', 'antonioh@[Link]')
--Crear tabla préstamos:
create table prestamos (idprestamos int(11) primary key auto_increment not null, carnet
varchar(50) not null, constraint fk_p foreign key (carnet) references usuarios(carnet) on delete
cascade on update cascade, fechaprestamos date, fechadevolucion date);
--Agregar registros tabla préstamos:
INSERT INTO `prestamos` (`idprestamos`, `carnet`, `fechaprestamos`, `fechadevolucion`)
VALUES
(1, 'AB01134618', '2019-06-13', '2019-06-16'),
(2, 'ah01134611', '2019-06-13', '2019-06-18'),
(3, 'am01134612', '2019-06-13', '2019-06-20');
6
--Crear tabla autores
create table autores (idautores int(11) primary key, nombre varchar(50), apellidos varchar(50));
--Ingresar registros tabla autores:
INSERT INTO `autores` (`idautores`, `nombres`, `apellidos`) VALUES
(1, 'Frank', 'Valdez'),
(2, 'Antonio', 'sanchez'),
(3, 'Gabriel', 'Mistral');
--Crear tabla editorial:
create table editorial(ideditorial int(11) primary key auto_increment not null, nombre
varchar(50));
--Ingresar registros tabla editorial:
INSERT INTO `editorial` (`ideditorial`, `nombre`) VALUES
(1, 'Grupo Robles'),
(2, 'Coleccion Cipotes'),
(3, 'Santillana');
--crear tabla libros:
create table libros (idlibros int(11) primary key auto_increment not null, titulo varchar(50),
edicion varchar(50));
--Ingresar registros tabla libro:
INSERT INTO `libros` (`idlibros`, `titulo`, `edicion`) VALUES
(1, 'primer libro', 'primera edicion'),
(2, 'Introduccion a la informatica', 'tercera edicion'),
(3, 'La odisea', 'segunda edicion'),
7
--Crear tabla libros_autor_editorial:
create table libros_autor_editorial (idlibros int (11) not null, idautores int(11) not null, ideditorial
int(11) not null, constraint fk_l foreign key(idlibros) references libros(idlibros) on delete cascade
on update cascade, constraint fk_a foreign key (idautores) references autores (idautores) on delete
cascade on update cascade, constraint fk_la foreign key (ideditorial) references editorial
(ideditorial) on delete cascade on update cascade);
--Ingresar registros tabla libros_autor_editorial:
INSERT INTO `libros_autor_editorial` (`idlibros`, `idautores`, `ideditorial`) VALUES
(1, 1, 1),
(2, 2, 2),
(3, 3, 3);
--Crear tabla libros_prestamos_usuarios
create table libros_prestamos_usuarios (idlibros int(11) not null, carnetprestamos int(11) not
null, constraint fk_lp foreign key(idlibros) references libros(idlibros) on delete cascade on update
cascade,constraint fk_lu foreign key(carnetprestamos) references prestamos(idprestamos)on delete
cascade on update cascade);
--Ingresar registro tabla libros_prestamos_usuarios:
INSERT INTO `libros_prestamos_usuarios` (`idlibros`, `carnetprestamos`) VALUES
(1, 1),
(3, 2),
(5, 3);
8
Lista de Consultas
--Mostrar todos los registros de la tabla editorial:
select * from editorial;
-- Mostrar todos los registros de la tabla libros:
select * from libros;
-- Mostrar todos los registros la tabla usuarios
select * from usuarios;
-- Mostrar todos los registros de la tabla préstamos:
select * from prestamos;
-- Mostrar todos los registros de la tabla autores:
select * from autores;
--Contar los registros de la tabla autores
select count(idautores) as total from autores;
--Mostrar las primeras 10 filas de la tabla autores
SELECT * FROM autores LIMIT 10;
--Mostar todos los datos de los libros ordenados del mayor al menor de los idlibros.
SELECT * FROM libros ORDER BY idlibros DESC;
--consultar parte de las columnas de la tabla prestamos
SELECT idprestamos, carnet, fechaprestamos FROM prestamos;
9
--cambiar el orden de las columnas libros_autor_editorial
SELECT idautores, idlibros, ideditorial FROM libros_autor_editorial;
--mostrar todos los usurios menos los que vivan en san marcos, san salvador y La Libertad
select * from usuarios
where direccion not in('san marcos','san salvador','La Libertad');
--ordenar los datos según un campo de la tabla usuarios
select * from usuarios
where direccion IN('san salvador','san marcos','La Libertad')
order by direccion ASC;
10
CONCLUSION
Debido a la necesidad de mejoras en los sistemas de control de datos y a la pérdida de
tiempo que significa llevar este control manual, la implantación del sistema automatizado
para controlar el servicio de préstamos de libros y el proceso de consultas a ficheros de las
bibliotecas, se traduce en una mejora significativa en la calidad de este servicio.
11