lunes, 8 de noviembre de 2010

BASE DE DATOS DE UNA BIBLIOTECA

1. Objetivo: Aplicar los conocimientos adquiridos en el modulo Base de Datos.

Se desea tener acceso rápido a información relevante de una biblioteca, razón por la cual se requiere realizar la Base de Datos de la misma, ejerciendo control sobre los libros y los socios a la biblioteca.  Una de las consideraciones es un libro no puede ser editado por diferente editoriales, de ser  así se considerará como libros diferentes.

2. Metodología:
  • Identificar Las entidades involucradas.
  • Encontrar las relaciones correspondientes entre las Entidades.
  • Generar El modelo Entidad-Relación
  • Realizar la Base de Datos

3. Identificación conjuntos de Entidades:
  • Libro
  • Editorial
  • Autor
  • Tema
  • Ejemplar
  • Socio
  • Préstamo


4. Modelo Entidad-Relación:
    5.  Relaciones en Access:
                                                         Figura 2. Relaciones Base de Datos Basándonos en las relaciones definidas con anterioridad, se se procede a realizar la creación de cada una de las tablas correspondientes a las entidades identificadas, describiendo para cada entidad (tabla)  los respectivos atributos que se le asignan.
CREACIÓN TABLAS BASE DE DATOS:

Tabla Libro:
                                                            
Los atributos son las características que posee cada una de las entidades  y que agrupadas permiten distingirla de las demás, de esta forma, para la entidad Libro según los requerimientos definidos los atributos tenidos en cuenta son:

  • Título: Cabe resaltar que diferentes libros pueden tener el mismo título, por lo     cual es un atributo que no es de carácter único.
  • IDlibro: Es la clave primaria o llave principal de la tabla.
  • Editorial
  • Autor
  • Tema
  • Ubicación
  • Idioma.
  • Categoría: Las categorías están subdividas desde la A hasta la F, igual que la clase de usuario o socio, dependiendo de esta clasificación los libros podrán ser prestados únicamente a categorías idénticas, es decir un libro categoría A solo podrá ser prestado a un socio categoría A.  
  • Formato: Hace referencia al tipo de formato en el cual se encuentra el libro, y podemos encontrar tanto físico como digital.
Tabla Tema


                                                           
Los atributos que se tienen para esta tabla solamente abarcan:
  • Nombre del tema 
  • IDtema o clave principal
Esta tabla es generada con el fin de facilitar la consulta de libros basandose en los temas por parte de los usuarios.

Tabla Editorial:

                                                           
Los atributos para esta entidad son:
  • Nombre 
  • Dirección 
  • Teléfono
Estos datos cobran gran importancia a la hora de realizar la sustitución de determinado libro, ya sea por uso o por pérdida del mismo, pues la editorial será la encargada de enviar los nuevos ejemplares.

TABLA AUTOR

                                                      
                                                          
Esta tabla se crea con el fin de tener una referencia acerca de datos biográficos de los autores de los libros, como lo son el nombre y su fecha de nacimiento, debido a que ninguno de estos dos atributos son únicos, se genera el IDAutor como clave principal.

TABLA EJEMPLAR

                                          
TABLA SOCIO

                                                
Esta entidad se representa por medio de los siguientes atributos:
  • Nombre
  • Dirección
  • Categoría
  • Teléfono
  • IDSocio: Será la clave principal
TABLA PRÉSTAMO:



Se  necesita tener conocimiento tanto de la fecha en que se hace el préstamo del libro como la fecha en la cual es devuelto el libro, si en el atributo fecha devolución es un campo nulo querrá decir que el libro aún se encuentra en poder del prestamista.





Consultas

1.      Se desea conocer cuales libros de la biblioteca pertenecen a la categoría A.

SELECT  IDLibro, Titulo, Categoría
FROM Libro
WHERE (Categoría=A);


2.Consultar que socio prestó al menos un libro en febrero de 2.010

SELECT  Prestamista, month(Fecha_Prestamo)
FROM Préstamo
WHERE (month(Fecha_Prestamo)=02);


3. Visualizar los libros editados por la editorial E002

SELECT IDLibro, Editorial
FROM Libro
WHERE Editorial='E002';


4. Obtener los datos de número de Edición y socios que han prestado algún libro con ubiación H-247.


SELECT Ubicación, Edición, Prestamista
FROM Préstamo, Ejemplar
WHERE  Ubicación='H-247';


5. Contar los libros que existen en la biblioteca.

SELECT Count('IDLibro') AS cantidadlibros
FROM Libro;


6. Conocer la fecha exacta de devolución de todos los libros que fueron regresados a la biblioteca durante el mes de agosto.

SELECT  Fecha_Devolución,  month(Fecha_Devolución)
FROM Préstamo
WHERE (month(Fecha_Devolución)=08);


7.  Listar tanto los libros que fueron editados por la editorial E001 como el tema 

SELECT Editorial, IDLibro
FROM Libro
WHERE  Editorial='E001'
UNION
SELECT IDTema, Nombre
FROM Tema
WHERE  IDTema='T001';


8. Ordenar en forma ascendente los autores respecto a  el año de nacimiento.

SELECT Nombre, Fecha_Nacimiento
FROM Autor
ORDER BY year(Fecha_Nacimiento);

9. Seleccionar todos los datos existentes de los socios que su nombre comienza en un rango diferente al de las letras desde la A a la H. 

SELECT *
FROM Socio
WHERE Nombre LIKE '[!a-h]*';


10.  Listar el nombre del socio y la categoría a la cual pertenece, incluyendo también datos como el teléfono y las fechas tanto de devolución como préstamo de los libros.

SELECT Nombre, Categoría, Teléfono, Fecha_Prestamo, Fecha_Devolución
FROM Préstamo INNER JOIN Socio
ON (Préstamo.Prestamista = Socio.IDSocio);