Académique Documents
Professionnel Documents
Culture Documents
Nombre:
Bryan Roberto Fnez Estrada
Catedrtico:
Roberto Rodrguez
Asignatura:
Bases de Datos
Trabajo:
Proyecto Final: Desarrollo de base de datos de Biblioteca
Fecha:
24/04/2013
Contenido
PLANTEAMIENTO ........................................................................................................................................................................................................... 2 Solucin al Ejercicio ....................................................................................................................................................................................................... 3 Diagrama EER ............................................................................................................................................................................................................. 3 Diagrama de clases .................................................................................................................................................................................................... 4 Diagrama de esquema ............................................................................................................................................................................................... 5 Diagrama de esquema de las relaciones con ejemplos ............................................................................................................................................. 6 Operaciones de Algebra Relacional ........................................................................................................................................................................... 7 Operacin seleccin: .............................................................................................................................................................................................. 7 Operacin Proyeccin: ........................................................................................................................................................................................... 8 Operacin Renombrar: .......................................................................................................................................................................................... 9 Operacin Unin: ................................................................................................................................................................................................. 10 Operacin Interseccin: ....................................................................................................................................................................................... 11 Operacin Resta: .................................................................................................................................................................................................. 12 Producto Cartesiano: ........................................................................................................................................................................................... 13 Equicombinacin o Equireunin: ........................................................................................................................................................................ 15 Reunin Natural: .................................................................................................................................................................................................. 16 Secuencia de Instrucciones para la Creacin de la Base de Datos: ............................................................................................................................. 18 Referencias................................................................................................................................................................................................................... 19
PLANTEAMIENTO Considere la siguiente informacin sobre una biblioteca universitaria, y en base a ella resuelva cada uno de los puntos solicitados ms abajo: La biblioteca cuenta con 16.000 socios, 100.000 ttulos y 250.000 volmenes (media de 2,5 copias de cada libro). Suele mantenerse en prstamo el 10% de los volmenes. Los bibliotecarios se aseguran de que los libros que quieran pedir los socios se encuentren disponibles. Tambin deben conocer cuntas copias de cada libro se encuentran prestadas. Se desea disponer de un catlogo on-line con acceso por ttulo, por autor y tema. Adems en el catlogo se guarda una descripcin del libro, que ocupa desde una lnea a varias pginas. La plantilla de la biblioteca se divide en: jefe de biblioteca, bibliotecarios asociados a departamentos, bibliotecarios que atienden consultas, personal de prstamos y ayudantes de biblioteca. Los libros se pueden prestar por un periodo de 21das. Slo se permite tener en prstamo 5 libros a la vez. Los socios suelen devolver los libros al cabo de 3 o 4 semanas. La mayora de socios sabe que disponen de otra semana de gracia hasta que les llegue a casa una notificacin. Aproximadamente el 5% de socios ha recibido alguna vez una de estas notificaciones. La mayor parte de los libros no devueltos en plazo se devuelven dentro del mes siguiente al vencimiento. Aproximadamente el 5% de los libros no devueltos en plazo no se devuelven nunca. Aquellos socios que solicitan prstamos un mnimo de 10 veces al ao son considerados como los ms activos. El 1% de los socios solicita el 15% de los prstamos. El 10% de los socios solicita el 40% de prstamos. Cerca del 20% de socios son inactivos (nunca solicitan prstamos). Para darse de alta como socio hay que rellenar un formulario donde se pide el N de Carnet, Nombre completo, direccin y nmero de telfono. Con estos datos se confecciona una tarjeta con banda magntica y fotografa con una validez de 4 aos. Un mes antes de caducar la tarjeta se enva una notificacin de renovacin. Los profesores se consideran socios automticamente. Cuando se contrata un nuevo profesor, su informacin se transfiere desde el registro de empleados y su tarjeta de lector se le enva a su direccin del campus. A los profesores se les permite tener libros en prstamo durante periodos de 3 meses y tienen un periodo de gracia de 2 semanas. Las notificaciones de renovacin de profesores se envan a la direccin del campus. Los bibliotecarios mantienen una lista de libros por los que hay inters en su adquisicin pero que no se puede como algunos libros curiosos, descatalogados, perdidos o prestados y no devueltos. La biblioteca tiene algunos libros exentos de prstamo, como los libros de consulta y mapas. Lo mismo sucede con algunas copias de libros. Cada libro se identifica por su ISBN. Dos libros iguales pero en diferente idioma o con distinta encuadernacin tienen diferente ISBN. Lo mismo pasa con las diferentes ediciones de un mismo libro. El sistema de bases de datos debe mantener la informacin propuesta para los socios, los libros, el catlogo y las operaciones de prstamo.
Solucin al Ejercicio
Diagrama EER
Diagrama de clases
Diagrama de esquema
Autor Id Catalogo Id_libro Libro Id Volumen ISBN Planilla Nombre Prestamo Id Socio N_carnet Nombre Direccion Telfono tipo Plazo_prestamo Tiempo_gracia Fecha_renovacion Fecha_prestamo Fecha_devoucion ISBN_volumen tipo Id_libro Estado Titulo Tema Id_autor descripcion Nombre
Autor
Id 1 2 Nombre P. J. Deitel Rusell Norving
Libro
Id 1 2 Descripcion Libro muy bueno de como programar en java Ingenieria Artificial: todo sobre la ingeniera de robots y mucho mas 3 Titulo Java como programar Ingeniera Artificial Como programar en C++ Tema Programacin Electrnica Programacin Id_autor 1 2 1
Catalogo
Id_libro 1 2
Planilla
Nombre Katy Urrutia Daniel Avila Paty Hernndez Tipo Jefe Personal de prstamo Personal de consulta
Prestamo
Id 1 2 Fecha_prestamo Fecha_devoucion 11/02/2012 1/04/2013 4/03/2012 22/04/2013 ISBN_volumen 898-450-261260-5 978-970-261190-6 Id_socio 100204 100403
Socio
Volumen
ISBN 978-970-26-1190-5 978-970-26-1190-6 898-450-26-1260-5 978-970-21-5520-2 Id_libro 1 1 2 3 Estado Disponible Prestado Extraviado Disponible 10040 3 02245 3 Brian Funez UNADE CA 80822 250 22155 45 Alum no Profe sor 21 dias 3 Meses 5 dias 2 Semanas 1/12/2013 1/12/2015 N_car net Nombr e Direcci on Telfo no 88544 25 tipo Alum no Plazo_pres Tiempo_gr Fecha_renov tamo acia acion 21 dias 5 dias 1/12/2013
A continuacin se presentan 4 diferentes solicitudes por cada una de las operaciones del algebra relacional seguida del resultado que esta mostrara en las relaciones y por ltimo la sentencia que se usara en SQL para llevar a cabo la misma accin Operacin seleccin: 1. Descripcin: Seleccionar el autor cuyo id = 1: Algebra:
id=1 (Autor)
Resultado: Id 1 Nombre P.J. Deitel
Implementacin en SQL: SELECT * FROM autor WHERE id=1; 2. Descripcin: Seleccionar los libros cuyo id de escritor sea 1: Algebra:
id_escritor=1 (Libro)
Resultado: Id 1 3 Titulo Tema Id_escritor 1 1
Programacin Programacin
estado=disponible (Volumen)
Resultado:
Id_libro 1 3
Implementacin en SQL: SELECT * FROM Libro WHERE id_escritor=1; 4. Descripcin: Seleccionar los socios cuyo tipo sea = Alumno: Algebra:
tipo=Alumno (Socio)
Resultado:
id (Autor)
Resultado: Id 1 2 Implementacin en SQL: SELECT id FROM autor; 2. Descripcin: Mostrar los ttulos de los libros que hay en catalogo: Algebra:
id_escritor=1 (Libro)
Resultado:
nombre (Planilla)
Resultado:
id_escritor=1 (Libro)
Resultado:
Id 1 2
NuevaR id (Autor)
Resultado: NuevaR Id 1 2 Implementacin en SQL: SELECT id FROM autor as NuevaR; 2. Descripcin: Seleccionar los libros cuyo id de escritor sea 1 y renombrar a copia_libro: Algebra:
Titulo
Tema
Id_escritor 1 1
Programacin Programacin
3. Descripcin: Mostrar los nombres los trabajadores en plantilla y renombre a copia_tplanilla( trabajadores) : Algebra:
Nombre P. J. Deitel Rusell Norving Katy Urrutia Daniel Avila Paty Hernndez
Implementacin en SQL: SELECT nombre FROM autor UNION SELECT nombre FROM planilla; 3. Algebra: ( nombre (socio)) ( nombre (Planilla))
Nombre Marcos Prez Brian Funez Edy Echenique Katy Urrutia Daniel Avila Paty Hernndez
Implementacin en SQL: SELECT nombre FROM Socio UNION SELECT nombre FROM planilla; 4. Algebra: ( Id (libro)) ( Id_libro (volumen))
Id 1 2 3
Implementacin en SQL: SELECT id FROM libro UNION SELECT id_libro FROM volumen;
10
Nombre
Implementacin en SQL: SELECT nombre FROM autor INTERSECT SELECT nombre FROM planilla; 3. Algebra: ( id_socio (Prestamo)) ( N_carnet (Socio))
Id 1 2 3
Implementacin en SQL: SELECT id FROM libro INTERSECT SELECT id_libro FROM volumen;
11
Id_socio
Implementacin en SQL: SELECT id_socio FROM Prestamo MINUS SELECT N_carnet FROM Socio; 4. Algebra: ( N_carnet (Socio)) - ( id_socio (Prestamo))
N_carnet 022453
Implementacin en SQL: SELECT N_carnet FROM Socio MINUS SELECT id_socio FROM Prestamo;
12
Id 1 1 2 2 3
Titulo Java como programar Java como programar Ingeniera Artificial Ingeniera Artificial Como programar en C++ Como programar en C++
Id_autor 1 1 2 2 1
Id 1 2 1 2 1
Nombre P. J. Deitel Rusell Norving P. J. Deitel Rusell Norving P. J. Deitel Rusell Norving
Programacin
Id 1
Tema Programacin
Id_autor 1
Id_libro 1
Descripcion Libro muy bueno de como programar en java Ingenieria Artificial: todo sobre la ingeniera de robots y mucho mas Libro muy bueno de como programar en java Ingenieria Artificial: todo sobre la ingeniera de robots y mucho mas Libro muy bueno de como programar en java Ingenieria Artificial: todo sobre la ingeniera de robots y mucho mas
Programacin
Ingeniera Artificial
Electrnica
Ingeniera Artificial
Electrnica
Programacin
Programacin
3. Algebra:
Estado Disponible
Id 1
Fecha_prestamo Fecha_devoucion ISBN_volumen Id_socio 11/02/2012 4/03/2012 898-450-261260-5 898-450-261260-5 898-450-261260-5 898-450-261260-5 978-970-261190-6 978-970-261190-6 978-970-261190-6 978-970-261190-6 100204
Prestado
11/02/2012
4/03/2012
100204
Extraviado
11/02/2012
4/03/2012
100204
Disponible
11/02/2012
4/03/2012
100204
Disponible
1/04/2013
22/04/2013
100403
Prestado
1/04/2013
22/04/2013
100403
Extraviado
1/04/2013
22/04/2013
100403
Disponible
1/04/2013
22/04/2013
100403
Implementacin en SQL: SELECT * FROM (SELECT isbn, estado FROM Volumen), Prestamo;
Id 1
Tema Programacin
Id_autor 1
Id_libro 1
Estado Disponible
Programacin
Prestado
Implementacin en SQL: SELECT * FROM Libro where id=1 , Volumen where id_libro=1;
14
Autor
Id 1 2 3
Id_autor 1 2 1
Id 1 2 1
2. Algebra: Libro
idr= id_libro
Catalogo
Id 1
Tema Programacin
Id_autor 1
Id_libro 1
Descripcion Libro muy bueno de como programar en java Ingenieria Artificial: todo sobre la ingeniera de robots y mucho mas
Ingeniera Artificial
Electrnica
Implementacin en SQL: SELECT * FROM Libro AS P,Catalogo AS D WHERE p.id= d.id_libro 3. Algebra:
ISBN
Estado
Id 1
1/04/2013
22/04/2013
100403
15
4. Algebra: Libro
id=id_libro
Volumen
Id 1
Tema Programacin
Id_autor 1
Id_libro 1
Estado Disponible
Programacin
Prestado
id,titulo,tema,id_libro (libro)
Id_libro 1 2 3
Id 1 2 1
Id 1
Tema Programacin
Id_autor 1
Descripcion Libro muy bueno de como programar en java Ingenieria Artificial: todo sobre la ingeniera de robots y mucho mas
Ingeniera Artificial
Electrnica
16
3. Algebra: R1
Id 1 2
Id 1
Tema Programacin
Id_autor 1
Estado Disponible
Programacin
Prestado
17
-- ---------------------------------------------------------- Estructura de tabla para la tabla `socio` -CREATE TABLE IF NOT EXISTS `socio` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nombre` varchar(200) NOT NULL, `direccion` text NOT NULL, `telefono` varchar(50) NOT NULL, `tipo` varchar(50) NOT NULL, `plazo_prestamo` varchar(50) NOT NULL, `tiempo_gracia` varchar(50) NOT NULL, `Fecha_renovacion` date NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- ---------------------------------------------------------- Estructura de tabla para la tabla `volumen` -CREATE TABLE IF NOT EXISTS `volumen` ( `isbn` varchar(16) NOT NULL, `libro_id` int(11) NOT NULL, `estado` varchar(50) NOT NULL, PRIMARY KEY (`isbn`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
18
Referencias 1keydata.com. (07 de 02 de 1999). 1keydata.com. Obtenido de http://www.1keydata.com/es/sql/sql-intersect.php 1keydata.com. (08 de 02 de 1999). 1keydata.com. Obtenido de http://www.1keydata.com/es/sql/sql-minus.php 1keydata.com. (12 de 02 de 1999). 1keydata.com. Obtenido de http://www.1keydata.com/es/sql/sql-union.php deletesql.com. (01 de 2005). deletesql.com. Obtenido de http://deletesql.com/viewtopic.php?f=5&t=18 Navathe, R. E. (2007). Fundamentos de Sistemas de Bases de Datos. Madrid: PEARSON EDUCACION S.A. Sicilia, M. A. (19 de 11 de 2008). cnx.org. Obtenido de http://cnx.org/content/m18351/latest/
19