¿Qué tablas necesito para gestionar una biblioteca?

Me preguntaba un lector recientemente cómo debía crear las tablas para gestionar su biblioteca y decidí escribir este artículo ya que la mayoría de las veces abarcamos temas más complejos olvidándonos de los que empiezan a utilizar Access, así pues ¿Qué tablas necesito para poder gestionar mi biblioteca?

La pregunta la vamos a responder de forma genérica pues desconozco los pormenores de su aplicación cómo tampoco sé si se trata de una biblioteca particular o una pública donde se requiera un control sobre el alquiler de los libros. Empecemos por lo principal, “Los Libros”.

Los libros

En una biblioteca lo que queremos controlar son los libros que tenemos en ella, hagamos un ejercicio y pensemos en los datos que necesitamos almacenar de ellos:

Gestión Biblioteca 01

 

Nota: he utilizado espacios en los nombres de las tablas para que se entienda mejor, lo cual, aunque funcional, nos es lo correcto. En la normalización de los nombres de las tablas se aconseja no usar espacios, por ejemplo: “FechaDeLanzamiento”

Lo primero que tenemos que definir es un campo clave.  Un campo por el que identifiquemos inequívocamente cada uno de los libros… ¡EL TÍTULO, EL TÍTULO! Aguaaaaaanta, que has corrido mucho, el título podría ser pero no nos vale porque se puede repetir. Te puedes encontrar con el mismo título en ediciones de años diferentes por lo que no nos valdría. Un dato que sería único para cada libro puede ser el número ASIN o ISBN, que tiene cada libro que debería ser único.

El segundo punto es determinar si hay datos que debieran de ir en tablas aparte, veamos un ejemplo:

 

ASIN

Título Autor

B0046H9ZE0

Confieso Ramón Cerda

B00J2B17IK

La ira de los Caídos Daniel Granados Rodríguez

B00634ILGW

El arqueólogo Martí Gironell

B0062XCKWA

Dime quién soy Julia Navarro

B00ATT9QRK

El Fantasma de los sueños Ramón Derda

 

El primero y el último son del mismo autor “Ramón Cerda”. Ahora supongamos que queremos hacer una búsqueda de todos los libros que tenemos de dicho autor. ¿Cuál crees que me va a aparecer? Si te fijas bien verás que sólo aparece el primero porque el último contiene una errata en el nombre que evitará que aparezca en nuestra búsqueda. ¿Cómo evitamos en la medida de lo posible esos errores?

Teoría de la división de tablas

Si prevemos que en uno de nuestros campos puede repetirse la información de un registro a otro, y con ello, cometer nosotros errores a la hora de escribir los datos, debemos dividir la tabla.

¿Y si tenemos una tabla donde dar de alta los autores? Si fuera así, sólo necesitaríamos dar de alta una sola vez al autor en vez de tantas veces como libros suyos tengamos en la base de datos.

Crearemos una tabla para los autores con los siguientes campos:

Gestión Biblioteca 02

 

Vamos a rellenarla:

Gestión Biblioteca

 

Relacionando las dos tablas

Ahora debemos de cambiar la forma en la que, desde la tabla Libros, hacemos mención a su autor. En vez de escribir su nombre lo que haremos será escribir el código del autor de la tabla autores que identificará el autor inequívocamente. Lo primero es cambiar el Tipo de Datos del campo autor, de la tabla Libros, de texto a numérico puesto que ahora no almacenaremos el nombre sino el código del autor.

Gestión Biblioteca 04

 

Mi consejo es que este tipo de operaciones se piensen concienzudamente antes de empezar a crear tablas. Una vez creadas y con datos introducidos, cambiar un campo de tipo texto a numérico provocará que todo el texto que hubiera en dicho campo se pierda, por ello, coge bolígrafo y papel y dedica un rato a apuntar tus necesidades.

Y ahora relacionamos las tablas:

Gestión Biblioteca con Access

 

Esa sería la estructura correcta, y el mecanismo para introducir el autor en la tabla Libros sería configurar, en dicho campo un cuadro combinado para que muestre los nombres de los autores en vez de su código, pero eso lo trataremos en otro artículo.

Ahora, sobre lo que se ha explicado, observa del resto de campos de la tabla Libros y determina, cuáles de ellos podríamos dividir. Aquí la pista:

Gestión Biblioteca

 

Como extra, si lo que necesitamos es controlar el alquiler/préstamo de los libros debemos de crear dos tablas más. Una para los lectores que se llevarán los libros y otra que relacione los lectores con los libros, más o menos así:

Gestión Biblioteca

 

Con esta estructura estaríamos diciendo que un libro se puede alquilar varias veces y que un Lector puede alquilar varios libros. La tabla alquileres tiene relaciones de uno a varios con los Libros y los Lectores.

Hasta aquí un análisis sencillo, el lector tendrá que identificar todas sus necesidades y determinar si es necesario dividir tablas o no.

Otras referencias

En el blog de programadordepalo puedes encontrar una serie de cuatro artículos que complementan lo visto en este artículo sobre la normalización y relaciones de las tablas en Microsoft Access.

Estudió formación profesional en la rama de electrónica hasta que descubrió el apasionante mundo de los ordenadores personales. Desde entonces, la administración de bases de datos, hojas de cálculo y programación en Microsoft Visual Basic para aplicaciones le han acompañado hasta el día de hoy. En estos momentos, su principal interés está enfocado a portabilizar las bases de datos a dispositivos móviles Windows e IOS, en entornos cliente servidor, enfocado en desarrollos con Microsoft Access, FileMaker y Servidores en la nube como Microsoft SQL Azure.

6 Comments

  1. Responder keciell@hotmail.com

    esta interesante esta informacion deseo que me ayuden para enviar desde los primeros pasos para una base de datos ya que no he manipulado.

  2. Responder Geraldo Vargas Gómez

    Hola, soy administrador de sistemas en una preparatoria. Y me están solicitando una aplicación para gestionar una biblioteca por lo que realicé las tablas tal y como aquí se muestra pero al momento de establecer la relación entre la tabla libros/editorial con la tabla editorial/IdEditorial me aparece el siguiente error:
    “La relación debe ser sobre el mismo número de campos con el mismo tipo de datos”

    Activé las siguientes opciones al relacionar:
    -Exigir integridad referencial
    -Actualizar y eliminar en cascada los campos relacionados

    Y en tipo de combinación selecciones la opción 3: Incluir todos los registros de libros.

    Gracias por publicar este tipo de tutoriales que sirve de mucha ayuda para aprender cosas nuevas. Espero me puedan ayudar. Saludos cordiales!

Deja un comentario

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR