Sie sind auf Seite 1von 10

¿Qué es una relación de varios a varios?

Las relaciones de varios a varios son las más utilizadas. Proporcionan información
importante, como con qué clientes han contactado sus vendedores y qué
productos se encuentran en los pedidos de los clientes.

Una relación de varios a varios se da cuando uno o más elementos en una tabla
puede tener una relación con uno o más elementos de otra tabla. Por ejemplo:

 La tabla Pedido contiene pedidos de varios clientes (que se muestran en la tabla


Clientes) y un cliente puede hacer más de un pedido.
 La tabla de productos contiene los productos individuales que vende, que forman
parte de varios pedidos en la tabla Pedido.
 Un pedido puede incluir una instancia (o más de una instancia) de un producto
específico o una instancia (o más de una instancia) de varios productos.

Por ejemplo, número de pedido 1012 de la clienta Verónica Fuentes podría


contener un ejemplar de los productos 12 y 15 y cinco del producto 30.

Crear relaciones de varios a varios

Las relaciones de varios a varios se crean forma distinta a las de uno a uno o uno a
varios. Para esas relaciones, basta con conectar los campos adecuados con una
línea. Para crear relaciones de varios a varios, deberá crear una nueva tabla que se
conecte con las otras dos. Esta tabla se denomina tabla de nivel intermedio (o, a
veces, tabla de vinculación o unión).

En el escenario descrito anteriormente, se crea una tabla Detalles de pedidos con


registros que contienen el Id. de la tabla Pedidos y el Id. de la tabla Productos para
cada elemento. Creará una clave principal para esa tabla con las claves combinadas
de las otras dos tablas.

En nuestro escenario, el número de pedido 1012 de Verónica Fuentes contiene los


productos 12, 15 y 30. Eso significa que nuestras entradas de Detalles del pedido
tienen este aspecto:
Id. de pedido Id. de producto
1012 2007
1012 15
1012 semestre

Verónica ha pedido un ejemplar de los productos 12 y 15 y cinco del producto 30.


No podemos agregar otra fila con 1012 y 30 porque el Id. de pedido y el Id. de
producto combinadas constituyen la clave principal y las claves
principales deben ser únicas. En su lugar, se agregue el campo Cantidad a la tabla
Detalles de pedido.

Id. de pedido Id. de producto Cantidad


1012 2007 1D
1012 15 1D
1012 semestre 3,5

Crear una tabla intermedia

1. Seleccione Crear > Tabla.


2. Seleccione Guardar .
3. Como nombre de la tabla, escriba un título descriptivo. Para indicar su propósito,
es posible que desee incluir unión o nivel intermedio en el nombre de la tabla.

Crear campos de la tabla de nivel intermedio

Como la primera columna de tabla, Access agrega automáticamente un campo de


Id. Cambie ese campo para que coincida con el Id. de la tabla en la relación de
varios a varios. Por ejemplo, si la primera tabla es una tabla de pedidos
denominada Id. de pedido y su clave principal es un número, cambie el nombre del
campo Id. en la nueva tabla por Id. de pedido y use el tipo de datos número.

1. En la vista Hoja de datos, seleccione el encabezado de columna Id. y escriba el


nuevo nombre para el campo.
2. Seleccione el campo cuyo nombre acaba de cambiar.
3. En la pestaña Campos, en Tipo de datos, seleccione un tipo de datos que coincida
con el campo de la tabla original, como Número o Texto corto.
4. Seleccione Hacer clic para agregar y después seleccione un tipo de datos que
coincida con la clave principal de la segunda tabla. En el encabezado de columna,
que ya está seleccionado, escriba el nombre del campo de la clave principal de la
segunda tabla, como Id. del producto.
5. Si necesita realizar un seguimiento de cualquier otra información acerca de estos
registros, como la cantidad de artículos, cree campos adicionales.

Combinar campos de Id. principal

Ahora que tiene campos con los Id. de las dos tablas que va a conectar, cree una
clave principal basada en esos Id. en la tabla de nivel intermedio.

1. En la vista Diseño, abra la tabla intermedia.


2. Seleccione las filas que contienen los Id. (Si ha seguido el procedimiento anterior,
son las dos primeras filas).
3. Seleccione Diseño > Clave principal.
Aparecen iconos de clave junto a ambos campos Id.

Conectar las tres tablas para crear la


relación de varios a varios
Para completar la relación de varios a varios, cree
una relación uno a varios entre el campo de clave
principal en cada tabla y campo coincidente en la
tabla de nivel intermedio. Para más información
sobre cómo hacer esto, vea Introducción a las
relaciones de tabla.
Cuando haya terminado, las relaciones deberían
tener un aspecto parecido a este:

Use una relación de varios a varios entre las tablas cuando un solo elemento de la
tabla A pueda estar relacionado con muchos elementos de la tabla B y viceversa.
Por ejemplo, un producto puede aparecer en varios pedidos y un pedido puede
contener varios productos.

En esta demostración, ampliaremos nuestra base de datos en un sistema básico de


seguimiento de pedidos con tablas de productos y pedidos.

Aprenderemos sobre la tabla de unión y la clave compuesta y las usaremos con


nuestras otras tablas para crear la relación de varios a varios.

El primer paso para crear una relación de varios a varios es crear una tabla nueva.

Se denomina “tabla intermedia” y la usaremos para almacenar los datos de las


otras tablas implicadas en la relación.

La tabla intermedia también se conoce como la tabla de "vinculación" o de "unión".

Lo siguiente que hay que hacer es crear un par de relaciones uno a varios entre la
tabla de unión y las otras tablas implicadas en la relación.
Como parte del proceso, debe identificar estos dos campos como clave principal
de la tabla de unión. Se convertirá en la "clave compuesta".

Crearemos la tabla de unión en la vista Diseño, así que


seleccionamos Crear, Diseño de tabla. Aquí está nuestra nueva tabla en blanco.

Ahora vamos a abrir las tablas Productos y Pedidos.

Echemos un vistazo a las claves principales de ambas tablas. La tabla Productos usa
un campo Autonumeración, denominado Id. del producto.

La clave principal de la tabla Pedidos se denomina Id. de pedido y también es un


campo Autonumeración.

Ahora volvemos a nuestra tabla de unión, en la que escribimos el Id. del producto,
seleccionamos Número, escribimos el Id. de pedido y volvemos a
seleccionar Número.

Ahora, vamos a seleccionar ambos campos. Para ello, sitúe el puntero en el cuadro
gris junto a cualquiera de los campos y arrástrelo.

Con ambos campos seleccionados, en la cinta de opciones, seleccione Clave


principal. Se crea la clave compuesta de la tabla de unión.

Tener ambos campos en la clave compuesta asegura que se identifique


exclusivamente cada pedido y todo el contenido DE cada pedido .

Pulse Control G para guardar la tabla de unión y denomínela Detalles de pedidos.

Ahora podemos crear las relaciones. Para empezar, cierre todas las tablas abiertas.
Seleccione Herramientas de base de datos y después Relaciones.

En la pestaña Diseño, seleccione Mostrar tabla. Agregue las tablas Productos,


Pedidos y Detalles de pedidos. Cierre el cuadro de diálogo.

Organice las tablas de forma que Detalles de pedidos, la tabla de unión, esté en la
parte central. Arrastre el campo Id. de pedido de la tabla Pedidos sobre la tabla de
unión.

En el cuadro de diálogo Modificar relaciones, seleccione Exigir integridad


referencial y luego seleccione Crear para crear la relación.
Haga lo mismo con el campo Id. del producto. Seleccione Exigir integridad
referencial, seleccione Crear y ya está.

Presione Control G para guardar los cambios en el diseño del diagrama de


relaciones.

Ahora ha usado una tabla de unión y la clave compuesta con las tablas existentes
para crear una relación de varios a varios en la base de datos de Access.
stablecer relaciones muchos a muchos en
OpenOffice Base
En este tipo de relaciones no sirve la solución anterior de crear una columna en la
tabla del lado del muchos apuntando a la otra tabla porque, como cualquier fila de
cada una de las dos tablas puede apuntar a varias filas de la otra tabla, ¿a cuál de
las filas de la otra tabla apuntaríamos?.
La solución en este caso es crear una nueva tabla (a la que llamaremos
Protagonistas, ver Figura 4.16) con, al menos, dos columnas, cada una de ellas
para apuntar a cada una de las claves primarias respectivas de las tablas que
queremos relacionar, de manera que cada fila de esta tabla va a representar las
relaciones que existen entre las filas de ambas tablas; es decir, cada una de las
relaciones que veíamos representadas en la figura 4.9 en forma de flecha van a
ser una fila de esta nueva tabla como se puede apreciar en la figura 4.17.
Figura 4.16. Diseño de la tabla Protagonistas

Figura 4.17. Contenido de la tabla Protagonistas

De la tabla que acabamos de crear falta puntualizar dos cosas. La primera, que es
posible añadir nuevas columnas a esta tabla para guardar más información, es
decir, no habría ningún problema, por ejemplo, en añadir una nueva columna
llamada Papel donde guardáramos el nombre del personaje que el intérprete
realiza en dicha película. Lo segundo, que para fijar la clave primaria debemos
seleccionar juntas las dos columnas que apuntan a las otras tablas e indicar que
ambas juntas son claves primarias. Esto último se puede apreciar también en la
figura 4.16 donde se ve que ambas figuran con el símbolo de la llave que significa
que son clave primaria.
Una vez que tenemos creada esta tabla nos falta indicar en OOo Base las
relaciones existentes, siguiendo la misma mecánica que hemos visto en el anterior
apartado.
Así, una vez que nos hemos situado de nuevo en la ventana Relaciones y hemos
añadido las tablas que queremos relacionar a dicha ventana, debemos indicar que
existe una relación entre la tabla Peliculas y Protagonistas por un lado (Figura
4.18) y la tabla Protagonistas e Interpretes por otro (Figura 4.).
Figura 4.18. Relación entre Peliculas y Protagonistas

Figura 4.19. Relación entre Protagonistas e Interpretes

Como podemos observar en el diagrama resultante (Figura 4.20), al añadir la tabla


Protagonistas, la relación muchos a muchos que existía entre Peliculas e
Interpretes se ha convertido en una relación uno a muchos de Peliculas a
Protagonistas y en otra relación uno a muchos de Interpretes a Protagonistas. Esto
es debido a que, dada una fila de Protagonistas, va a estar relacionada con una de
Interpretes y una de Peliculas pero, dada una fila de Interpretes y Peliculas,
pueden estar relacionadas con muchas de protagonistas. Por ejemplo, la fila de
Protagonistas con los valores [5,10] sólo va a estar relacionada con la película La
Comunidad del Anillo por un lado y la interprete Liv Tyler por otro, pero, La
Comunidad del Anillo está y puede estar relacionada con muchas filas de
Protagonistas (tantas como protagonistas guardemos de esa película) y la
intérprete Liv Tyler también está y puede estar relacionada con muchas filas de
Protagonistas (tantas como en películas haya participado).
Esto ocurre siempre con las relaciones muchos a muchos: primero se crea una
tabla intermedia para relacionar ambas tablas y luego la relación que pasan a
tener las dos tablas originales con la recién creada es de uno a muchos,
respectivamente. Además, en este caso, es recomendable fijar las opciones de
actualización y borrado a “en cascada”.

Figura 4.20. Diagrama de relaciones final

Das könnte Ihnen auch gefallen