¿Repetimos datos con frecuencia? un método eficaz para optimizar los datos en Access.

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

 Access-datos-repetidos2

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

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.