sábado, 17 de octubre de 2015

Base de datos de una Biblioteca

Antes que nada, escogí la base de datos de una biblioteca para mi proyecto porque es mas accesible obtener información sobre ella.
El programa que usaremos para hacer nuestra base de datos es Mysql en consola, para introducir datos y hacer un diagrama en Mysql Workbench.

Primero hay que saber como funciona una Biblioteca o por lo menos tener una idea.

Los libros tienen un ISBN que es un sistema de código que se le asigna a cada libro a nivel mundial, Titulo, Editorial es la compañía que imprime el libro, País del libro, Área , Autor o Autores, fecha de lanzamiento(el año en que se lanzo), la edición del libro, tipo de libro (que puede ser: libros, enciclopedias, diccionario, etc), saber que en una biblioteca tiene varias veces el mismo libro y manejan el estado que se encuentra el libro(si esta disponible o no).

Nota:  
- No todos los libros poseen un ISBN, un ejemplo claro son obras literarias y hay algunos libros viejos que no poseen aun isbn.
- Los libros no pueden ser impreso por muchas editoriales, solamente por una.
- Con área nos referimos a la clase de libro que es, ejemplo: matemáticas, calculo, ingeniería, sociología, etc.

Ya teniendo esta información podemos empezar a hacer nuestra base de datos.

-Tabla libros: Necesitamos un código que sera univoco en nuestra biblioteca para el libro, isbn, titulo, para no repetir muchas veces el país, el editorial y el tipo de libro en esta tabla, usaremos un código de país, un código de editorial  y un código para el tipo de libro, fecha de lanzamiento y edición.

Para el área y los autores  haremos tablas apartes y no los incluiremos en esta tabla porque hay libros que poseen mas de un área y un autor, entonces provocan que una relación de muchos a muchos.

-Tabla pais: Código de país y nombre del país.
-Tabla editorial: Código de editorial y nombre del editorial.
-Tabla tipolibro: Código para el tipo de libro  y nombre de cada tipo de libro.
-Tabla area: Código de área y nombre del área.
-Tabla autor:Código de autor y nombre del autor.

Las siguientes 2 tablas nos servirán para relacionar la tabla libro con área y libro con autor:
-Tabla librosporarea: Código de libro y código de área.
-Tabla librosporautor: Código de libro y código de autor.

Como mencionamos anterior mente sobre tener varias veces el mismo libro, necesitamos asignarle un código univoco a cada existencia de libro que se tiene en la biblioteca sean libros iguales o no lo sean.
-Tabla librosporexistencia: Código de existencia y código de libro.

Manejaremos el estado en otra tabla para que se nos sea mas fácil consultar el estado de cada existencia de libro.

-Tabla estadoporexistencia: Código de existencia y código de estado para no ir repitiendo disponible,no disponible y extraviado.
-Tabla estado: Código de estado y estado.

Ahora, para que una persona pedir un libro ya sea préstamo interno o externo se necesita de algo que identifique a la persona y para eso se tiene que afiliar a la biblioteca y para esto haremos 3 tablas: afiliado, tipo de préstamo y préstamo.

-Tabla afiliado: Código de afiliado, nombre y apellidos completos, documento que lo identifique (DUI, NIT, pasaporte, etc.), fecha de nacimiento, teléfono y dirección.
-Tabla  tipoprestamo: Código de tipo de préstamo y el tipo de préstamo.
-Tabla prestamo: Código de préstamo, código de existencia de libro, código de afiliado, fecha y hora en que se realizo el préstamo, tipo de préstamo (interno o externo), fecha y hora en que el afiliado entrego el libro.



Ya teniendo todas las tablas tenemos que identificar las primary key y las foreign key en las tablas.














Ahora ya empezamos a crear nuestra base de datos en Mysql.



Es muy importante introducir datos ya que es una manera mas exacta de probar si funciona o no la base de datos. Para mas facilidad he usado Mysql Workbench para introducir los datos ya que uno escribe como si se estuviéramos llenando una tabla, como podemos observar en el siguiente:

Después de introducir datos en todas las tablas, me voy a Mysql consola a ver si los datos de las tablas se introdujeron correctamente ya que Mysql consola me es mas confiable observar la base de datos, por esa razón la he creado en consola y no en workbench. A continuación se muestran las tablas con datos en modo consola:

En este punto ya tenemos creada nuestra base de datos, pero para visualizar mejor nuestra base de datos decidí hacer un diagrama en Mysql workbench.