Ya vimos en el artículo, “¿Qué información queremos guardar en Access?”, algunos ejemplos sobre que se puede almacenar en una base de datos creada en Microsoft Access. En este artículo vamos a ampliar las características de las tablas a través de un nuevo concepto que no tuvimos en cuenta en el citado artículo.
Imagine que estamos guardando en una tabla la lista de películas que tenemos en nuestra videoteca particular. Podríamos tener una tabla, la simplificaré mucho, con una estructura más o menos así:
- Título
- Año
- Director
- Actor Principal
- Clasificación
Y ahora introduzcamos algunos datos a esa tabla.
Id | Título | Año | Director | Actor Principal | Clasificación |
0001 | Batman Returns | 1992 | Tim Burton | Michael Keaton | Más de 12 |
0002 | Sleepy Hollow | 1999 | Tim Burton | Johnny Depp | Más de 17 |
0003 | El planeta de los simios | 2001 | Tim Butron | Mark Wahlberg | Más de 12 |
0004 | Armageddon | 1998 | Michael Bay | Bruce Willis | Más de 7 |
0005 | El último boy scout | 1991 | Tony Scott. | Brcue Willis | Más de 12 |
En un sistema de base de datos la finalidad de almacenar la información es poder recuperarla de forma fácil y sencilla. En este caso podríamos filtrar esta tabla buscando algunas respuestas y que Access nos facilite esta información, así que vamos a ello, imagina que eres Access y contéstame a la siguiente pregunta ¿cuántas películas tenemos en la base de datos de Tim Burton?:
¡Sencillo! Tres películas, “Batman Returns”, “Sleepy Hollow” y “El planeta de los simios”.
Y te quedas tan pancho, ¿verdad? ¿Y si te digo que te has equivocado? Esto es como el juego que purula por Internet donde tienes que adivinar cuantos cuadrados hay en una imagen. Para ello hay que fijarse muy bien en lo que estamos viendo, en la información que hemos introducido en la base de datos, por qué la hemos introducido nosotros, humildes humanos, y no una máquina, ¿verdad?
Bien, yo te digo que, en esa tabla, de Tim Burton, sólo hay dos películas, “Batman Returns”, “Sleepy Hollow”. Access hubiera respondido lo mismo. “El planeta de los simios”, parece, y sólo lo parece, que es de Tim Burton, sin embargo no lo es porque he cometido un error tipográfico al escribir el nombre. En este caso ha sido intencionadamente pero te puedo asegurar que cuando escribimos solemos equivocarnos con bastante más frecuencia que la deseada. Así que, a Access, si le aplicamos un filtro por director, esa película la ignorará porque no es lo mismo Tim Burton que Tim Butron.
Ya sabemos algo más, ahora otra pregunta similar, solo que esta vez ya no te voy a pillar porque ya estás prevenido. ¿Cuántas películas tenemos de “Bruce Willis”?. Efectivamente, una sola, la otra tiene el nombre mal escrito y no la encontrará si aplicamos el filtro sobre la columna correspondiente.
Tenemos claro que, como humanos, podemos equivocarnos, de hecho, nos vamos a equivocar seguro.
El problema principal
El problema principal es que tenemos información almacenada en Microsoft Access que se repite a lo largo de nuestra tabla. Un director o un actor pueden aparecer en muchas películas y escribir, una y otra vez sus nombres puede llevarnos a cometer errores tipográficos que luego nos van a repercutir y perjudicar notablemente a la hora de buscar información de nuestra base de datos.
La solución
La solución pasa por extraer esa información susceptible de equivocaciones a otra tabla, por poner un nombre, de “Actores” donde introduzcamos al actor una sola vez. Si, una sola vez. Exactamente, una sola vez. Y no me he equivocado, lo he repetido para que se te quede a fuego. Lo mismo con los actores que con los directores.
Veamos el ejemplo de la tabla “Actores”
- Código
- Nombre
- Apellido
- Año Nacimiento
Introduzcamos algunos datos en la nueva tabla:
Código | Nombre | Apellido | Año Nacimiento |
0001 | Michael | Keaton | 1951 |
0002 | Johnny | Depp | 1963 |
0003 | Mark | Wahlberg | 1971 |
0004 | Bruce | Willis | 1955 |
Ahora, en la tabla de películas, sustituiríamos el Nombre del actor por su código:
Id | Título | Año | Director | Código Actor Principal | Clasificación |
0001 | Batman Returns | 1992 | Tim Burton | 0001 | Más de 12 |
0002 | Sleepy Hollow | 1999 | Tim Burton | 0002 | Más de 17 |
0003 | El planeta de los simios | 2001 | Tim Burton | 0003 | Más de 12 |
0004 | Armageddon | 1998 | Michael Bay | 0004 | Más de 7 |
0005 | El último boy scout | 1991 | Tony Scott. | 0004 | Más de 12 |
De esta forma, en cada película que aparezca “Bruce Willis” sólo tendríamos que hacer referencia a su código “0004” en vez de tener que escribir su nombre completo. Con esto ya hemos minimizado algo el error tipográfico.
Ya, pero es que ahora no veo el nombre del actor en la tabla películas, solo veo un número ¿Cómo sé a qué actor pertenece? Vayamos por partes, como decía Jack el destripador. En próximos artículos comprobaremos que relacionando ambas tablas mediante la herramienta “Relaciones” que incorpora Microsoft Access, y con un simple truco visual, conseguiremos, por un lado, que sólo podamos seleccionar un Actor de la tabla Actores, evitando tener que teclear su código, y que no nos deje poner otro actor que no exista en nuestra tabla Actores y, además, que se vea su nombre completo en vez de su código. Realmente lo que haremos será aplicar la lógica de programación de Access para que todo sea mucho más fácil de utilizar.
¿Si ahora te repito la misma pregunta de antes? ¿Cuantas películas tengo de Bruce Willis, con el código 0004, en la base de datos? Ahora ni tú, ni Access, ni yo nos vamos a equivocar. Si contamos las veces que aparece este código obtendremos dos películas.
Bien, pues lo mismo que hemos aplicado a la tabla Actores deberíamos de hacerlo con la tabla Directores. Deberíamos de tener una sola tabla para los directores donde darlos de alta en nuestra base de datos UNA SOLA VEZ, evitando de esta forma, tener que escribir su nombre muchas veces.
Otra cosa muy interesante de esta nueva forma de hacer las cosas es que ahora, en la tabla “Actores”, no solo tenemos su nombre, sino que además tenemos más datos sobre ellos, esto nos va a permitir que, conociendo únicamente su código y mediante las relaciones que veremos en próximos artículos, seamos capaces de recuperar el resto de información, a parte de su nombre.
Te reto a que revises la tabla películas a ver si hay algún otro campo que cumpla las condiciones anteriores.
En próximos artículos relacionaremos las tablas, veremos que tipo de datos debemos de seleccionar al crear campos en nuestra base de datos y limitaremos el tipo de datos a introducir en nuestros campos.
- Relacionando las tablas
- ¿Qué tipo de datos vamos a utilizar?
- ¿Pondremos limitaciones a la hora de introducir los datos?
Este artículo forma parte de una serie donde estamos tratando todos los aspectos de la creación de tablas en Microsoft Access. Te recomiendo que revises el artículo, “¿Qué información queremos guardar en Access?” y anteriores donde aprenderás, paso a paso, como debes crear las tablas de tu base de datos.
2 comentarios