Você está na página 1de 34

Relaciones en Access

2010

Tipos de relaciones

Se pueden distinguir tres tipos de relaciones:

Relacin Uno a Uno. Relacin Uno a Varios. Relacin Varios a Varios.

Relacin Uno a Uno

Relacin Uno a Uno: Cuando un registro de una tabla solo puede estar relacionado con un nico registro de la otra tabla y viceversa. Por ejemplo: tenemos dos tablas una con los datos de diferentes poblaciones y otra con una lista de alcaldes. Una poblacin solo puede tener un alcalde, y un alcalde lo ser nicamente de una poblacin.

Uno a Varios

Relacin Uno a Varios: Cuando un registro de una tabla (tabla secundaria) solo puede estar relacionado con un nico registro de la otra tabla (tabla principal) y un registro de la otra tabla(tabla principal) puede tener ms de un registro relacionado en la primera tabla (tabla secundaria). Por ejemplo: tenemos dos tablas una con los datos de diferentes poblaciones y otra con los habitantes, una poblacin puede tener ms de un habitante, pero un habitante pertenecer en una nica poblacin.

Varios a Varios

Relacin Varios a Varios: Cuando un registro de una tabla puede estar relacionado con ms de un registro de la otra tabla y viceversa. Por ejemplo: tenemos dos tablas una con los datos de clientes y otra con los artculos que se venden en la empresa, una cliente podr realizar un pedido con varios artculos, y un artculo podr ser vendido a ms de un cliente. Las relaciones Varios a Varios se suelen representar definiendo una tabla intermedia entre las dos tablas.

Anlisis

Analizar una pequea base de datos para intentar entender mejor porqu son necesarias y para qu sirven las relaciones.

Vamos a suponer que disponemos de las siguientes tablas en Access:

Biblioteca

Tablas

Tablas

En esa tabla el socio con DNI 111222111 tiene el nombre Alicia Marn Garca. As pues sabemos que se ha prestado el libro Soy leyenda a Alicia Marn Garca el da 20/03/2006. De la misma forma podemos saber qu otros libros se han prestado a los socios. Segn los datos que hay almacenados en la tabla Prstamos se ha realizado un prstamo del libro La mquina del tiempo (cdigo 2) al socio Antonio Garca Castillo (DNI 555444555) el da 25/03/2006. Y otro prstamo se ha realizado a Laura Hernndez Gutirrez, del libro Viaje al centro de la tierra el da 26/03/2006.

Ejemplo

Ahora vamos a suponer que se introduce un nuevo registro en la tabla Prstamos.

Ejemplo

De la misma forma puede darse el caso de que en la tablaPrstamos aparezca el DNI de un socio que en realidad que no exista en la tabla de Socios.

Debera una base de datos permitir este tipo de situaciones?

La respuesta es NO.

Precisamente uno de los objetivos de las bases de datos es evitar inconsistencias en los datos almacenados y mantener la coherencia en los resultados. Para evitar este tipo de situaciones, en las bases de datos se utilizan las relaciones.

Relaciones en Access

Para poder relacionar tablas entre s se deber especificar un campo en comn que contenga el mismo valor en las dos tablas y dicho campo ser clave principal en una de ellas. Las tablas se relacionan de dos a dos, donde una de ellas ser la tabla principal de la que parte la relacin y la otra ser la tabla secundaria destino de la relacin.

Relaciones en Access

Para realizar relaciones en Access hay que pulsar el icono, situado en la barra de herramientas.

Relaciones en Access

A continuacin aparecer la siguiente ventana en la que tenemos que seleccionar todas las tablas que formarn parte de las relaciones a crear (debemos seleccionar las tablas y pulsar el

botn Agregar).

Ahora aparecer la ventana de Relaciones con las tablas aadidas en el paso anterior.

Relaciones en Access

Para iniciar una relacin hay que seleccionar el campo de la tabla principal y arrastrarlo hasta el campo de la tabla secundaria que forma parte de la relacin. Cuando se realiza una relacin entre dos campos aparece el siguiente cuadro de dilogo:

Relaciones

En la parte superior deben estar los nombres de las dos tablas relacionadas y debajo de stas el nombre de los campos de relacin.

Ojo! siempre se deben relacionar campos que tengan el mismo tipo de datos.

Exigir integridad referencial

A continuacin activa el recuadro Exigir integridad referencial haciendo clic sobre ste. Tambin puedes activar las casillas Actualizar en cascada los campos relacionados y Eliminar en cascada los registros relacionados. Hacer clic sobre el botn Crear. Se crear la relacin y sta aparecer en la ventana de relaciones.

Notas

Los campos que forman parte de una relacin deben ser del mismo tipo. Por ejemplo, si en cdigo de libro en la tabla Libros el tipo de texto es de tamao 10 y en la tabla Prstamos es numrico, no puede realizarse la relacin. Tampoco puede realizarse si, por ejemplo, en cdigo de libro el tipo de texto es de tamao 10 en la tabla Libros y de tamao 15 en la tabla Prstamos.

Notas

Si ahora abrimos la tabla Libros podemos observar que aparece el smbolo + al principio de cada registro de la tabla. Si pulsamos sobre dicho smbolo en alguno de los registros podremos ver el DNI del socio al que se le ha prestado el libro y la fecha de prstamo.

Integridad referencial.

La integridad referencial es un sistema de reglas que utiliza Access para asegurarse que las relaciones entre registros de tablas relacionadas son vlidas y que no se borren o cambien datos relacionados de forma accidental.

Integridad referencial.

Al exigir integridad referencial en una relacin le estamos diciendo a Access que no nos deje introducir datos en la tabla secundaria si previamente no se han introducido en la tabla principal.

Integridad referencial.

La integridad referencial entre dos tablas debemos de indicarla en el siguiente cuadro de dilogo (aparece cuando se realiza la relacin entre dos campos).

Integridad referencial.

Si al hacer las relaciones entra las tablas Socios, Prstamos y Libros hemos marcado en todas ellas la opcin de Exigir integridad referencial, y ahora intentamos introducir en la tabla Prstamos un libro que no existe en la tabla Libros aparecer el siguiente mensaje de error:

Integridad referencial.

De la misma forma si intentamos introducir en la tabla Prstamos un DNI que no existe, en la tabla Socios aparecer el siguiente mensaje de error:

Conclusin

Una de las ventajas de la integridad referencial es que no podemos introducir datos en la tabla secundaria si previamente no se han introducido en la tabla principal. De esta forma se evitan incoherencias y se mantiene la consistencia de la base de datos.

Actualizar registros en cascada y eliminar registros en cascada.

La integridad referencial dispone de dos acciones: Actualizar registros en cascada: Cuando se cambie el valor del campo de la tabla principal, automticamente cambiarn los valores de sus registros relacionados en la tabla secundaria

Ejemplo

Por ejemplo: Si en la tabla Libros cambiamos el cdigo del libro nmero 1 a 100, en la tabla Prstamos tambin cambiar el cdigo del libro a 100.

Eliminar registros en cascada

Cuando se elimina un registro de la tabla principal se borrarn tambin los registros relacionados en la tabla secundaria.

Ejemplo

Si borramos en la tabla Libros el libro con cdigo 2, ste tambin desaparecer de la tabla Prstamos.

Ejercicio

Aplicar todo lo visto hasta la fecha en el curso.