Establecer relaciones entre tablas Puede establecer relaciones entre tablas que contengan información o campos similares. Hay tres tipos de relaciones que puede establecer entre los campos de las tablas: uno a uno, uno a varios y varios a varios. Las relaciones varios a varios no entran en el ámbito de este curso. Existe una relación uno a uno cuando dos tablas tienen un campo idéntico que contiene la misma información; es decir, todos los registros de una tabla tienen un registro coincidente en otra tabla relacionada. Por ejemplo, tanto la tabla tblemployees como la tabla tblhumanresourcesdata tienen un campo IdEmpleado que contiene 28 registros que muestran los Id. de empleado de los 28 mismos empleados de Adventure Works. Las listas son idénticas; es decir, el empleado H101 tiene un registro en la tabla tblemployees (que muestra la dirección y el número de teléfono de los empleados) y un otro en la tabla tblhumanresourcesdata (que muestra el salario, el cargo, los datos de contratación y las horas trabajadas por semana del empleado). La relación entre las tablas tblemployees y tblhumanresourcesdata es de uno a uno porque si hay un registro que contiene H101 en el campo IdEmpleado de la tabla tblemployees, hay un registro y sólo uno que contiene H101 en la tabla tblhumanresourcesdata. La mayoría de las relaciones de las bases de datos son relaciones uno a varios. Existe una relación uno a varios cuando todos los registros de una tabla tienen uno o varios registros coincidentes en la tabla relacionada. Por ejemplo, la tabla tblvendors muestra una lista de los proveedores que venden productos a Adventure Works. Cada proveedor y su Id. de proveedor aparecen sólo una vez en la tabla tblvendors. Los productos pedidos a estos proveedores se muestran en la tabla tblproducts y, puesto que cada proveedor vende varios productos, el campo
IdProveedor aparece varias veces en esta tabla. Si establece una relación entre las tablas tblvendors y tblproducts, el resultado sería una relación uno a varios. Una ventaja de establecer relaciones entre las tablas es que puede exigir la integridad referencial, que ayuda a evitar que se introduzcan valores inexactos en los campos relacionados. La integridad referencial requiere que los registros de una tabla de la relación tengan uno o varios registros correspondientes en la otra tabla de la relación. Si se exigiese la integridad referencial entre las tablas tblvendors y tblproducts, por ejemplo, no podría introducir ningún producto en la tabla tblproducts si el proveedor no estuviese también en la tabla tblvendors. Las relaciones entre las tablas se pueden crear, modificar y exigir con la integridad referencial desde la ventana Relaciones, que se abre haciendo clic en el botón Relaciones de la barra de herramientas Base de datos. Puede imprimir las relaciones como aparecen en la ventana Relaciones haciendo clic en el comando Imprimir relaciones del menú Archivo. Al imprimir relaciones, se crea un informe que contiene las relaciones exactamente como aparecen en la ventana Relaciones. Puede personalizar este informe y guardarlo como objeto independiente de la base de datos. En este ejercicio, va a crear una relación uno a varios entre los campos IdProveedor de las tablas tblvendors y tblproducts, a imprimir la relación de la base de datos y a exigir la integridad referencial. 1 En la barra de herramientas Base de datos, haga clic en el botón Relaciones. Aparece la ventana Relaciones. 2 En la barra de herramientas Relaciones, haga clic en el botón Mostrar tabla. Aparece el cuadro de diálogo Mostrar tabla. Access 2002 permite imprimir una copia de las relaciones de las bases de datos. Los informes se explican con todo detalle en la lección 6, Diseño de un informe.
3 Haga clic en tblproducts y en Agregar. Access agrega la lista de campos de la tabla tblproducts a la ventana Relaciones. 4 Haga clic en tblvendors y en Agregar. Access agrega la lista de campos de la tabla tblvendors a la ventana Relaciones. 5 Haga clic en Cerrar Se cierra el cuadro de diálogo Mostrar tabla y se ve entera la ventana Relaciones.
También puede abrir el cuadro de diálogo Mostrar tabla haciendo clic en el comando Mostrar tabla del menú Relaciones. 6 En la lista de campos de la tabla tblproducts, haga clic en el campo IdProveedor y arrastre el nombre del campo a la parte superior del campo IdProveedor de la lista de campos de la tabla tblvendors. Aparece el cuadro de diálogo Modificar relaciones, como se muestra a continuación.
7 Active la casilla de verificación Exigir integridad referencial y haga clic en Crear. Se cierra el cuadro de diálogo Modificar relaciones y aparece una línea entre los campos IdProveedor de la tabla tblproducts y la lista de campos de la tabla tblvendors, indicando que existe una relación. El 1 situado junto a la tabla tblvendors indica que está en la parte de uno de la relación uno a varios, mientras que el símbolo de infinito situado junto a la tabla tblproducts indica que está en la parte de varios. 8 En la barra de herramientas Relaciones, haga clic en el botón Guardar. Access guarda la ventana Relaciones. 9 En el menú Archivo, haga clic en Imprimir relaciones. Las relaciones de la base de datos aparecen como informe en la vista preliminar. 10 En la barra de herramientas Vista preliminar, haga clic en el botón Imprimir. Aparece un cuadro de mensaje, que indica que Access está imprimiendo la tabla. 11 Haga clic en el botón Cerrar situado en la esquina superior derecha de la ventana Vista preliminar. Aparece un cuadro de alerta, que pregunta si desea guardar los cambios. 12 Haga clic en No.
Se cierra el cuadro de alerta. 13 Haga clic en el botón Cerrar de la esquina superior derecha de la ventana de Relaciones. Se cierra la ventana Relaciones. 14 Haga clic en tblproducts y después en Abrir en la barra de herramientas de la ventana Base de datos. La tabla se abre en la vista Hoja de datos. 15 Haga clic en el botón Nuevo registro. 16 En el campo IdProveedor, escriba RQ y presione Tab. 17 En el campo Descripción, escriba Bombones (1000) y presione Entrar. Aparece un cuadro de alerta, que indica que no puede agregar este registro porque se requiere un registro relacionado en la tabla tblvendors. 18 Haga clic en Aceptar. Se cierra el cuadro de alerta. 19 Haga clic en el campo IdProveedor, elimine el texto existente, escriba RS y, a continuación, presione Entrar. Access selecciona el texto del campo Descripción. No aparece ningún cuadro de alerta, RS es un valor que puede aceptarse. 20 Haga clic en el botón Cerrar de la esquina superior derecha de la tabla tblvendors. La tabla se cierra. RS es el código de Ritzy Restaurant Supply, que es un registro de la tabla tblvendors.