Sie sind auf Seite 1von 5

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:

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:

Vamos a rellenarla:
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.

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:


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:
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í:

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.