Está en la página 1de 9

TIPOS RELACIONES ACCESS 2010

UNO A UNO
Relacin uno a uno: si ambos campos relacionados son claves principales o tienen
ndices nicos.
Se caracteriza porque un registro en la tabla A solo puede tener un registro
dependiente en la tabla B.
Este tipo de relacin no es habitual, debido a que la mayora de la informacin
relacionada de esta forma estara en una sola tabla.
Puede utilizar la relacin uno a uno para dividir una tabla con muchos campos, para
aislar parte de una tabla por razones de seguridad o para almacenar informacin
que slo se aplica a un subconjunto de la tabla principal. Por ejemplo, puede crear
una tabla que registre los empleados participantes en un partido de ftbol benfico.
Cada jugador de ftbol de la tabla Jugadores de ftbol tiene un registro coincidente
en la tabla Empleados.
* Cada jugador de ftbol tiene un registro coincidente en la tabla Empleados.
* Este conjunto de valores es un subconjunto del campo Id. de empleado y la tabla
Empleados.

Ejemplo

Cada registro de EMPLEADO_PERSONAL puede relacionarse con uno y slo un


registro de EMPLEADO_LABORAL.
Un registro de EMPLEADO_LABORAL slo tiene una relacin con uno y
necesariamente uno de EMPLEADO_PERSONAL. Sin embargo un registro de
EMPLEADO_PERSONAL puede no participar en ninguna relacin, es decir no
necesariamente con un registro de EMPLEADO_LABORAL

UNO A VARIOS
Este tipo de relaciones es una de las ms habituales e indica que un elemento de la tabla
principal, estar en relacin con varios registros de la tabla vinculada. La tabla principal ser
la que tenga la clave principal en la relacin.
Vamos a poner un pequeo ejemplo. Pongamos que tenemos la tabla clientes y la tabla
facturas. Si hacemos una lectura rpida de la relacin que deben tener estas tablas,
podemos observar que UN cliente puede tener VARIAS facturas pero haciendo la lectura al
revs observamos que UNA factura solo puede pertenecer a un UN solo cliente. En este
ejemplo nuestra tabla principal es Clientes y la tabla vinculada Facturas.

Como vemos en el ejemplo, al tener en la tabla clientes un campo numrico (en este caso
autonumrico), el campo que vincularemos de la tabla facturas, debe tener el mismo tipo de
datos.
Finalmente en la pantalla de relaciones, enlazaremos los dos campos. Eso nos permitir tener
los datos separados cada uno en su tabla pero tenerlos enlazados.

VARIOS A VARIOS

Este tipo de relaciones tambin es bastante frecuente. En este caso un elemento de la tabla
principal puede tener varios registros relacionados de la tabla vinculada y a la inversa.

Vamos a ver dos opciones


Creamos la tabla con otra clave
Vamos a ver un ejemplo. Disponemos de una tabla de empleados y una tabla de mquinas
reponedoras. UN empleado puede reponer VARIAS mquinas reponedoras. A su vez UNA
mquina reponedora puede ser "repuesta" por VARIOS empleados diferentes. En estos casos,
necesitamos crear una tabla intermedia que nos permita vincular las dos tablas. Vamos a
verlo.

Como comentbamos anteriormente, en este caso no podemos crear una relacin directa
entre ambas tablas ya que los empleados harn ms de una reposicin y las mquinas se
repondrn ms de una vez, por tanto deberemos crear una tabla intermedia que adems nos
permitir incluir campos como la fecha de la reposicin, tiempo empleado...

De ste modo la relacin nos quedara as:

Creamos tabla con las claves de la otra


Relacin de varios a varios: es, en realidad, dos relaciones de uno a varios con una tercera
tabla cuya clave principal consta de dos campos: las claves externas (clave externa: uno o ms
campos de tabla (columnas) que hacen referencia al campo o campos de clave principal de
otra tabla. Una clave externa indica cmo estn relacionadas las tablas.) de las otras dos
tablas.
Pensemos en las entidades PRODUCTOS y NUM_VENTA. Hay una relacin entre
ambas entidades puesto que una instancia de PRODUCTOS puede relacionarse con
muchas filas de nmeros de venta, entidad NUM_VENTA. Pero una venta tambin
puede relacionarse con varios productos, siempre a travs de una tabla de unin (la
entidad VENTAS) con una lleve mltiple. Para crear una llave mltiple selecciona los
campos clave y pulsa (en Access) el icono llave. En la imagen de abajo ves la
manera de crear una llave mltiple, para una relacin n: m. En la otra imagen vers
otras tablas que completan la estructura...
En realidad se trata de dos relaciones 1 a muchos:
La primera entre NUM_VENTAS y VENTAS, un numero de venta cualquiera estar
relacionado con 1 o ms filas de VENTAS si la venta supone varios productos.
La segunda entre PRODUCTOS y VENTAS, un producto se puede vender muchas
veces...

RELACION INDEFINIDA o INDETERMINADA


Este tipo de relacin aparece cuando no hay coherencia de tipos de datos. Access
no puede determinar el tipo de relacin que existe entre las tablas. Los datos
relacionados de esta manera normalmente son incoherentes y por tanto debe
evitarse..

En resumen, para evitar las relaciones indeterminadas debemos


controlar las siguientes variables:
1.- Debe existir una clave principal.
2.- La clave externa debe ser del mismo tipo que la clave principal.
3.- Es necesario activar la integridad referencial.
4.- Para poder activar la integridad referencial es necesario que no
haya registros hurfanos..

REGISTRO HUERFANO, FILA O TUPLA COLGADA


Qu es un registro hurfano en un modelo de tablas relacionales?
Antes de nada vamos a observar con detalle la imagen

Tenemos dos tablas con una relacin de uno a muchos:


1 Tabla PROVEEDORES (lado uno a la derecha)
2 Tabla PEDIDOS (lado muchos a la izquierda en la que existen tuplas colgadas...
------------Explicacin: nuestra tabla de proveedores tiene 9 proveedores de los productos de
nuestra empresa, pero al observar la tabla de PEDIDOS vemos los pedidos 5, 7 y 8
cuyos nmeros de proveedor (columna NP) son 0, 11 y 12 y es aqu donde se
encuentra la inconsistencia. Quines son los proveedores 0, 11 y 12? Estos
proveedores no existen y por tanto forman pedidos de productos inexistentes. Son
registros absurdos, hurfanos o colgados...
Los datos en rojo son registros hurfanos en la relacin entre PROVEEDORES y
PEDIDOS. Access crear una relacin indeterminada o se deber desactivar la
Integridad referencial...

Integridad referencial
La integridad referencial es un sistema de reglas que utiliza Access 2010 para
asegurarse que las relaciones entre registros de tablas relacionadas son vlidas y
que no se borren o cambien datos relacionados de forma accidental.
Al exigir integridad referencial en una relacin le estamos diciendo a Access 2010
que no nos deje introducir datos en la tabla secundaria si previamente no se ha
introducido el registro relacionado en la tabla principal.
Por ejemplo: Tenemos una tabla de habitantes y una tabla de poblaciones, en la
tabla Habitantes tengo un campo Poblacin que me indica en qu poblacin vive el
habitante, las dos tablas deberan estar relacionadas por el campo Poblacin, en
esta relacin de tipo uno a varios la tabla Poblaciones es la tabla principal y la

tabla Habitantes la secundaria (una poblacin tiene varios habitantes). Si


marcamos la casilla Integridad Referencial, no nos dejar asignar a un habitante
una poblacin que no exista en la tabla Poblaciones.
La integridad referencial dispone de dos acciones asociadas:
Actualizar en cascada los campos relacionados: Hace que cuando se
cambie el valor del campo de la tabla principal, automticamente cambiarn
los valores de sus registros relacionados en la tabla secundaria.
Por ejemplo: Si cambiamos el nombre de la poblacin Vizcaya por Bizkaia en
la tabla Poblaciones, automticamente en la tabla Habitantes, todos los
habitantes de Vizcaya se cambiarn a Bizkaia.

Eliminar en cascada los registros relacionados: Cuando se elimina un


registro de la tabla principal se borrarn tambin los registros relacionados
en la tabla secundaria.
Por ejemplo: Si borramos la poblacin Vizcaya en la tabla Poblaciones,
automticamente todos los habitantes de Vizcaya se borrarn de la tabla de
Habitantes.

Si no marcamos ninguna de las opciones no nos dejar ni cambiar el nombre de


una poblacin ni eliminar una poblacin si sta tiene habitantes asignados.

También podría gustarte