Estableciendo relaciones entre tablas Access

Y seguimos avanzando, ya tenemos una base de datos con cuatro tablas, ha llegado el momento de establecer las relaciones que hay entre ella, y eso lo haremos con una herramienta gráfica de la que dispone Microsoft Access.

Porque establecer relaciones entre tablas?

En un entorno de base de datos, la mayoría de las veces, la información la fraccionamos en distintas tablas con el fin de mejorar el rendimiento, y/o la ocupación.

Ese forma de trabajar hace necesario que cada vez que necesitemos presentar información, debemos relacionar varias tablas y extraer información de todas ellas. Por ejemplo, para poder mostrar el nombre de la categoría a la que pertenece un producto, debemos relacionar la tabla de Productos con la Tabla de categoría.

Es cierto que esa relación la podemos realizar de una forma dinámica, en el momento de realizar la consulta, pero si la definimos previamente, Access nos ayudará

Tambien hay otro motivo, y mas importante, para definir estas relaciones Supongamos que tenéis una base de datos con un millar de productos pertenecientes a la categoría «Barritas», y en un despiste, vais a la tabla de Categorías y borrais varios registros, entre ellos ese. La siguiente vez que intenteis visualizar los productos, todos aquellos pertenecientes a las categorias borradas, o no aparecerán , o aparecerán con la categoría en blanco.

Este ultimo caso, podemos complicarlo todo lo que queramos, pensando en tablas de relación en donde cada registro une dos tablas distintas….

Esta protección es la que conocemos como integridad referencial, y la establecemos por medio de la definición de las relaciones entre tablas, impidiendo o gestionando cualquier modificación de una tabla de la que dependen otras

Access. La herramienta de Relaciones

Para definir relaciones en Access, podemos activar la pestaña de «HERRAMIENTAS DE BASES DE DATOS» y pulsar en «Relaciones»

Access.Relaciones

En la ventana que aparece a continuación, están todas las tablas que tengamos definidas

Mostrar tablas relaciones

En nuestro caso, podemos seleccionarlas todas y pulsar en agregar,y después «Cerrar»

En la pantalla aparecerán las 4 tablas y podemos arrastrarlas con el ratón, y redimensionarlas hasta que queden cómodas, ahora estableceremos las relaciones.

Pantalla de relaciones. Access

Podemos señalar ahora el campo «id_categoria» de «Producto» y arrastrarlo hasta el campo «id_categoria» de «Categoría»

Access

Al hacerlo, aparecerá la pantalla para que podamos definir las relaciones:

Definicion de relacion. Access

Nos indica que el campo «id_categoria» de «Categoría» (1), y el campo «id_categoria» de la tabla «Productos»(2) están relacionados. Si durante el arrastre hubierais cometido algún error respecto a los campos, ahora los podéis modificar.

Una vez los campos sean correctos, nos podemos fijar en el punto 3. Si no lo marcamos, la relacion se podra utilizar para ayudar a Access en las consultas, pero no se garantizara la integridad referencial, por lo que vamos a marcarla.

Entonces se activa la posibilidad de marcar:

  • «Actualizar en cascada los campos  relacionados» Si lo marcamos, hace que si tenemos que cambiar el lado «uno», en este caso Categoria.id_categoria, Access cambia automáticamente el lado «dos» Producto.id_categoria» en todos los registros que tuvieran esa categoria
  • «Eliminar en cascada los registros seleccionados» Si lo marcamos, Access borrará todos los registors correspondientes del lado «dos» (Producto) en caso de que se borre un registro en el lado «uno» (Categoria)

Como podeis imaginar, estas dos opciones no deberíamos utilizarlas muy a menudo, ya que los borrados de un registro de Categoria, se hara despues de haber borrado/cambiado por el método adecuado todos los registros de Producto que cuelgan de él

Cardinalidad de la relación

Para entender el porqué en el párrafo anterior he estado utilizando  «lado uno» y «lado dos» tenemos que ver la pantalla que se encuentra detrás del botón de «Tipo de combinación» (4):

Propiedades de la combinación. Access

  1. Esta selección es adecuada cuando estamos relacionando dos tablas en donde cada registro de una tabla, tiene uno y solo un registro equivalente en la otra tabla, un ejemplo podría ser cuando los datos de acceso y los datos de usuario los tuviéramos en dos tablas distintas, entonces cada registro de acceso corresponde a uno y solo un usuario, por lo que podríamos definir su relación con 1
  2. Los valores 2 y 3 dependen del orden en que se haya realizado el arrastre, por lo que deberemos interpretarlos por las tablas a las que se refieren. En este caso dice «TODAS las categorías y solo los productos relacionados», y ese no es nuestro caso,
  3. En nuestro caso, queremos ver todos los productos, y solo la categoría correspondiente, esto es por cada registro de Categoría hay infinitos productos. Esta es nuestra opción

Si ahora pulsamos en Aceptar, y nuevamente Aceptar deberíamos ver en la ventana de relaciones:

2016-05-12_20h01_11

en donde ya aparece la dependencia dibujada, con su cardinalidad.

Con esto, ya deberíais saber como establecer la relación entre Usuarios y tipos, para que al final quede asi:

Access relaciones

Con las relaciones definidas, en el siguiente articulo, podremos empezar con las consultas!

Acerca de Miguel Garcia

Programador, Desarrollador web, Formador en distintas areas de informatica y director de equipos multidisciplinares.
Esta entrada fue publicada en Formacion, Microsoft Access y etiquetada . Guarda el enlace permanente.

Deja un comentario

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