Tablas Campos Formularios Consultas Relaciones Volver

RELACIONES

¿Cómo relacionar tablas?

Diferencia de una base de datos relacional

La diferencia de las bases de datos relacionales con respecto a una base de datos plana consiste en que los datos sólo se introducen una sola vez en una tabla, pero gracias a las relaciones pueden aparecer en las tablas que se quiera.

Cualquier modificación sólo hay que realizarla una sola vez y automáticamente se realizará en todas las demás tablas. De este modo se ahorra mucho tiempo, espacio y exactitud en los datos que siempre estarán actualizados independientemente de la tabla en la que estemos. 

Tipos de relaciones

Existen tres tipos de relaciones, que se explican a continuación. Más adelante se verá cómo quedan guardadas relaciones de este tipo en Access. 

Relación uno a uno

Cada registro de la tabla A se relaciona sólo con un registro de una tabla B y cada registro de la tabla B se relaciona sólo con un registro de la tabla A.

Relaciones de este tipo se almacenan guardando en la tabla el identificador de la otra tabla con la que mantiene la relación.

Relación uno a varios

Cada registro de la tabla A está relacionado con varios registros de la tabla B y cada registro de la tabla B está relacionado con un sólo un registro de la tabla A.

Aplicando esto al ejemplo2 de este manual, una relación de este tipo se daría entre la tabla pacientes y la tabla médicos, ya que el mismo médico se hará cargo de varios pacientes. Un solo registro de la tabla de médicos se relaciona con varios registros de la tabla de pacientes. Pero un registro de la tabla de pacientes sólo se relaciona con un registro de la tabla médicos. 

Relación varios a varios

Cada registro de la tabla A puede estar relacionado con más de un registro de la tabla B y cada registro de la tabla B puede estar relacionado con más de un registro de la tabla A.

Si existiera una base de datos con dos tablas: médicos y pacientes, con una relación directa entre ellos, un médico atendería muchos pacientes y un mismo paciente podría ser atendido por varios médicos. Varios registros de la tabla de médicos se relacionaría con varios registros de la tabla de pacientes.

Relaciones de este tipo se almacenan creando una tabla especial donde se colocan los identificadores de cada tabla y otros campos que puedan ser de utilidad, por ejemplo la fecha, la hora, comentarios acerca de la visita médica, etc. En el ejemplo 1 esta tabla especial es la tabla Visitas, donde aparecen tanto el código del médico como el del paciente.

TIPOS DE RELACIONES

RELACIONES.

 

Es común que informaciones de una tabla estén asociadas con informaciones de otras tablas. En este caso podemos establecer una relación entre las dos tablas. Es a través de la relación que el Access consigue, a partir de informaciones en una tabla, obtener informaciones registradas en la otra tabla. Existen tres tipos de relaciones entre dos tablas A y B: uno – a – uno, uno – a – varios, varios – a – varios.

 

Relaciones uno a uno

 

La relación uno a uno ocurre cuando un registro de la tabla A posee como máximo un registro asociado en la tabla B y un registro de la tabla B posee como máximo un registro asociado en la tabla A.

 

Esta relación está presente en el número de gerente/número de empleado, entre el PADRÓN DE DEPARTAMENTOS y el PADRÓN DE EMPLEADOS. Para cada número de gerente identificamos apenas un registro en el PADRÓN DE EMPLEADOS y cada funcionario es eventualmente gerente de apenas un departamento.

 

Relaciones uno a varios.

 

La relación uno a varios ocurre cuando un registro de la tabla A puede tener mas de un registro asociado en la tabla B, mientras que, un registro de la tabla B posee como máximo un registro asociado en la tabla A.

 

Esta relación está presente en la sigla del departamento entre el PADRÓN DE DEPARTAMENTO y el PADRÓN DE EMPLEADOS.

 

Para cada sigla del PADRÓN DE DEPARTAMENTOS identificamos varios registros con esta sigla en el PADRÓN DE EMPLEADOS, mientras que, para cada sigla en el PADRÓN DE EMPLEADOS identificamos como máximo un registro en el PADRÓN DE DEPARTAMENTOS.

 

También debe quedar claro que, en principio, podemos tener departamentos sin funcionarios y funcionarios que momentáneamente no están asignados a ningún departamento.

 

 Relaciones varios a varios.

 

La relación varios a varios ocurre cuando un registro de la tabla A puede tener mas de un registro asociado en la tabla B y, análogamente, un registro en la tabla B puede tener mas de un registro asociado en la tabla A.

 

Los cargos ocupados por un empleado a lo largo del tiempo constituyen una relación de esta naturaleza. Cada empleado ocupó varios cargos y un cargo fue ocupado por diversos empleados. En esta relación queda inmediatamente aparente que al par empleado/cargo probablemente estarán asociadas otras informaciones, por ejemplo, la fecha en que el empleado asumió el cargo en cuestión.

 

Relaciones de este tipo varios a varios no pueden ser especificadas directamente en Access. Es necesario la creación de una tabla intermediaria que en nuestro caso podría tener el nombre: cargos ocupados. Cada registro en esta tabla sería compuesto de tres campos: Número de empleado, Código del cargo y Fecha de admisión a este cargo. Como se observa, se creó una relación uno a varios entre el PADRÓN DE EMPLEADOS y el PADRÓN DE CARGOS OCUPADOS y, análogamente, otra relación uno a mucho entre el PADRÓN DE CARGOS Y SALARIOS y el PADRÓN DE CARGOS OCUPADOS. Por lo tanto una relación varios a varios es convertida en dos relaciones una a varios cuando hubiera informaciones asociadas a los pares relacionados.

 

Creación de relaciones.

 

En Access podemos crear relaciones localizadas, utilizadas en una consulta especifica, o relaciones globales que posiblemente tendrán un uso más general. Relaciones de uso localizado serán vistas mas adelante en el capítulo referente a consultas.

 

Las Relaciones de uso general son útiles porque pueden ser usadas automáticamente en nuevas consultas, facilitan la generación de subformularios y subinformes y permiten un cierto grado de protección en operaciones de actualización al imponerse la integridad referencial para las relaciones como será visto mas adelante.

 

La creación y edición de relaciones es hecha en la ventana Relaciones como muestra la figura 2.1. En esta ventana se muestra el diagrama de relaciones entre las tablas. Para cada tabla son mostrados sus campos y líneas de asociación con campos de otras tablas. Estas líneas representan las relaciones.

FIGURA 16.1.Ventana de Relaciones

 

Para exhibir la ventana Relaciones, se pica en el botón Relaciones de la barra de herramientas de la ventana Base de Datos. En respuesta aparece la ventana acompañada de la ventana de diálogo Mostrar tabla. Si el diálogo no aparece, basta cliquear el botón Mostrar tabla en la barra de herramientas. En el caso fueron adicionadas tres tablas anteriormente construidas. Las tablas adicionales pueden ser arrastradas y redimensionadas hasta que queden visualmente legibles.

 

Para crear una relación entre el PADRÓN DE DEPARTAMENTOS y el PADRÓN DE EMPLEADOS, picar sobre el campo Sigla del departamento en la tabla PADRÓN DE DEPARTAMENTOS y se arrastra asta el campo Sigla del departamento en la tabla PADRÓN DE EMPLEADOS. En respuesta surge la ventana de diálogo de relaciones (figura 16.3.) Para que sean provistas mas especificaciones sobre la ligazón en cuestión. En el caso que se desee alterar posteriormente estas especificaciones basta dar un doble clic sobre la línea de unión, esto hace aparecer la ventana de diálogo relaciones.

 

En el caso que se desee Exigir la integridad referencial para imposibilitar el empadronamiento de empleados en departamentos inexistentes en el PADRÓN DE DEPARTAMENTOS. Al activar esta opción pasa a ser necesario especificar también cual es el tipo de relación El tipo uno a varios ya aparece seleccionado porque es el padrón del Access. Además de eso, es necesario indicar si desea guardar el layout de esta ventana. Conviene guardarlo si una nueva distribución de las tablas fuera visualmente mas adecuada. Se debe observar que el diseño de las relaciones indica si él es del tipo uno a varios (algoritmo 1 y símbolo de infinito 8) o un a uno (algoritmo 1). Los bordes más gruesos de la línea de unión indican que la integridad referencial fue impuesta por la relación.

 

 Borrado de relaciones.

 

Para borrar una relación basta seleccionar la línea de unión y accionar la tecla DEL.

Para borrar una tabla basta seleccionarla y accionar también la tecla DEL.

 

Es importante recordar que la eliminación de una tabla no borra la relación. Si la ventana relaciones fue cerrada y accionada de nuevo, entonces la tabla borrada es mostrada nuevamente con todas sus relaciones. Por lo tanto, para borrar una relación es necesario seleccionar la relación explícitamente y accionar DEL, enseguida se borra la tabla.

 

Se puede borrar todo el contenido de la ventana Relaciones. Para eso, basta en el menú Edición accionar Borrar diseño. Pero esto no borra las relaciones registradas Internamente. Enseguida se puede adicionar una tabla y utilizar el botón de la barra de herramientas. Mostrar todas relaciones directas para exhibir apenas las relaciones directamente asociadas a la tabla. Para exhibir todo, accione el botón Mostrar todas las relaciones.

 

FIGURA 16.2 Barra de herramientas de la ventana relaciones

Volver