jueves

Relaciones en Access

Introducción

Tras crear una tabla para cada tema en la base de datos, es preciso proporcionar a Office Access 2007 los medios para recopilar de nuevo esa información cuando sea necesario. Para ello, se colocan campos comunes en las tablas que están relacionadas y se definen las relaciones entre las tablas. De ese modo, se pueden crear consultas, formularios e informes que muestren a la vez la información de varias tablas. Por ejemplo, el formulario que se muestra a continuación incluye información recopilada de varias tablas:

Formulario Pedidos que muestra información relacionada de cinco tablas

Llamada 1 La información de este formulario procede de la tabla Clientes...

Llamada 2 ...la tabla Pedidos...

Llamada 3 ...la tabla Productos...

Llamada 4 ...y la tabla Detalles de pedidos.

El nombre de cliente del cuadro Facturar a se obtiene de la tabla Clientes, los valores de Id. de pedido y Fecha de pedido proceden de la tabla Pedidos, el nombre de producto viene de la tabla Productos, y los valores Precio por unidad y Cantidad proceden de la tabla Detalles del pedido. Estas tablas se vinculan entre sí de varias formas para recopilar información de cada una e incorporarla al formulario.

Siguiendo en el ejemplo anterior, los campos de las tablas deben coordinarse de modo que muestren información acerca del mismo pedido. Esta coordinación se lleva a cabo mediante las relaciones de tablas. Una relación de tabla hace coincidir los datos de los campos clave (a menudo un campo con el mismo nombre en ambas tablas). En la mayoría de los casos, estos campos coincidentes son la clave principal de una tabla, que proporciona un identificador único para cada registro, y una clave externa de la otra tabla. Por ejemplo, los empleados pueden asociarse a los pedidos de los que son responsables mediante la creación de una relación de tabla entre los campos Id. de empleado en las tablas Empleados y Pedidos.

Id. de empleado usado como clave principal en la tabla Empleados y como clave externa en la tabla Pedidos.

Llamada 1 Id. de empleado aparece en ambas tablas; como clave principal ...

Llamada 2 ... y como clave externa.

Tipos de relaciones de tabla

Existen tres tipos de relaciones de tabla.

  • Una relación uno a varios
Considere una base de datos de seguimiento de pedidos que incluya una tabla Clientes y una tabla Pedidos. Un cliente puede realizar cualquier número de pedidos. Por lo tanto, para cualquier cliente representado en la tabla Clientes puede haber representados muchos pedidos en la tabla Pedidos. Por consiguiente, la relación entre la tabla Clientes y la tabla Pedidos es una relación de uno a varios.
Para representar una relación de uno a varios en el diseño de la base de datos, tome la clave principal del lado "uno" de la relación y agréguela como un campo o campos adicionales a la tabla en el lado "varios" de la relación. En este caso, por ejemplo, agregaría un nuevo campo: (el campo Id. de la tabla Clientes) a la tabla Pedidos y le denominaría Id. de cliente. Access utilizaría entonces el número de identificador del cliente de la tabla Pedidos para localizar el cliente correcto de cada producto.
  • Una relación de varios a varios
Considere la relación entre una tabla Productos y una tabla Pedidos. Un solo pedido puede incluir varios productos. Por otro lado, un único producto puede aparecer en muchos pedidos. Por tanto, para cada registro de la tabla Pedidos puede haber varios registros en la tabla Productos. Además, para cada registro de la tabla Productos puede haber varios registros en la tabla Pedidos. Este tipo de relación se denomina relación de varios a varios porque para un producto puede haber varios pedidos, y para un pedido puede haber varios productos. Tenga en cuenta que para detectar las relaciones de varios a varios existentes entre las tablas, es importante que considere ambas partes de la relación.
Para representar una relación de varios a varios, debe crear una tercera tabla, a menudo denominada tabla de unión, que divide la relación de varios a varios en dos relaciones uno a varios. Debe insertar la clave principal de cada una de las dos tablas en la tercera. Como resultado, la tercera tabla registra cada ocurrencia, o instancia, de la relación. Por ejemplo, la tabla Pedidos y la tabla Productos tienen una relación varios a varios que se define mediante la creación de dos relaciones uno a varios con la tabla Detalles de pedidos. Un pedido puede incluir muchos productos, y cada producto puede aparecer en muchos pedidos.
  • Una relación uno a uno
En una relación uno a uno, cada registro de la primera tabla sólo puede tener un registro coincidente en la segunda tabla y viceversa. Este tipo de relación no es común porque, muy a menudo, la información relacionada de este modo se almacena en la misma tabla. Puede utilizar la relación uno a uno para dividir una tabla con muchos campos, para aislar parte de una tabla por razones de seguridad o para almacenar información que sólo se aplica a un subconjunto de la tabla principal. Cuando identifique esta relación, ambas tablas deben compartir un campo común.

¿Por qué crear relaciones de tabla?

Puede crear relaciones de tabla explícitamente mediante la ventana Relaciones, o arrastrando un campo desde el panel Lista de campos . Office Access 2007 usa relaciones de tabla para combinar tablas si hay que utilizarlas en un objeto de base de datos. Existen varias razones por las que se deben crear relaciones de tabla antes de crear otros objetos de base de datos, como formularios, consultas e informes.

  • Las relaciones de tabla informan de los diseños de consulta
Para trabajar con registros de más de una tabla, a menudo se debe crear una consulta que combine las tablas. La consulta compara los valores del campo de clave principal de la primera tabla con el campo de clave externa de la segunda tabla. Por ejemplo, para devolver filas que enumeren todos los pedidos de cada cliente, deberá crear una consulta que combine la tabla Clientes con la tabla Pedidos de acuerdo con el campo Id. de cliente. En la ventana Relaciones, puede especificar manualmente los campos que desea combinar. Sin embargo, si ya tiene definida una relación entre las tablas, Office Access 2007 suministrará la combinación predeterminada, de acuerdo con la relación de tabla existente. Además, si usa uno de los asistentes para consultas, Access utilizará la información recopilada de las relaciones de tabla ya definidas para presentarle selecciones bien fundamentadas y para rellenar de antemano los valores predeterminados de las opciones de la propiedad.
  • Las relaciones de tabla informan de los diseños de formulario e informe
Al diseñar un formulario o informe, Office Access 2007 utiliza la información recopilada de las relaciones de tabla ya definidas para presentarle selecciones bien fundamentadas y para rellenar de antemano los valores predeterminados de las opciones de la propiedad.
  • Las relaciones de tabla son la base con la que exigir integridad referencial y evitar los registros huérfanos en la base de datos. Un registro huérfano es el que hace referencia a otro registro que no existe por ejemplo, un registro de un pedido que hace referencia a un registro de un cliente que no existe.
Al diseñar una base de datos, se divide la información en tablas, cada una de las cuales tiene una clave principal. A continuación, se agregan claves externas a las tablas relacionadas que hacen referencia a dichas claves principales. Estos pares de clave principal y clave externa forman la base de las relaciones de tabla y de las consultas de varias tablas. Por lo tanto, resulta importante, que dichas referencias de clave principal y clave externa estén sincronizadas. La integridad referencial sirve para asegurarse de que las referencias permanecen sincronizadas y depende de las relaciones de tabla.

 

No hay comentarios:

Publicar un comentario