Está en la página 1de 3

Relaciones de base de datos SQL

Como hemos visto, el modelo relacional se basa en las relaciones


existentes entre las diferentes tablas de base de datos (BBDD). En esta
sección nos centraremos en explicar y ejemplificar los diferentes tipos
de relaciones imprescindibles en la administración de bases de datos
relacionales.

Los ejemplos de esta sección se basan en capturas de diagramas


definidos desde el editor de Sql Server Management Studio (SSMS).
Esta sección solo tiene objetivo de explicar conceptualmente los
fundamentos de los diferentes tipos de relaciones.

Relación 1 a 1
Este tipo de relación entre dos tablas se establece cuando un registro
de una tabla solo puede estar vinculado a un único registro en otra
tabla. Este tipo de relación se utiliza generalmente para relaciones
exclusivas cuando tenemos gran cantidad de campos. Dicha relación
nos permite dividir la información en tablas más pequeñas con menos
cantidad de campos y facilitar la gestión de nuestras bases de datos.

Dicha relación se establece a través de una Foreign Key que se


vincula directamente con la Primary Key de la tabla principal. En este
tipo de relaciones será indistinto que tabla considerar principal y que
tabla dependiente para establecer la Foreign Key, siendo ello decisión
de diseño del administrador de acuerdo a los datos que guardar en las
tablas.

En este ejemplo podemos observar cómo se establece una relación 1 a 1


entre las tablas paises y banderas, ya que un país solo puede tener
asociada una bandera y una bandera solo puede pertenecer a un país.
Constituye un tipo de relación muy utilizada que nos permite organizar
los datos de manera eficiente y sencilla.
Se ha considerado la tabla paises como tabla principal. De esta manera
nos aseguramos que no se puedan guardar banderas en el sistema de
países que aún no se han registrado en la base de datos.

Relación 1 a n
Este tipo de relación entre dos tablas, también llamada relación 1 a
muchos, se establece cuando un registro de una tabla puede estar
asociado a varios registros de otra tabla, pero no de manera inversa.

En este caso la Foreign Key siempre se definirá en la tabla secundaria


o dependiente, la cual podrá repetirse n veces en función a la Primary
Key con la que se establece la relación.

En este ejemplo podemos ver como se establece una relación 1 a n entre


la tabla clientes y la tabla pedidos ya que un cliente puede tener varios
pedidos y varios pedidos solo pueden pertenecer a un cliente.

La Primary Key de un cliente podría repetirse varias veces en la Foreign


Key de la tabla pedidos ( id_clientes ) para guardar la información de
todos los pedidos realizados por un cliente determinado.

Relación n a n
El tipo de relación n a n o muchos a muchos se establece cuando
varios registros de una tabla se asocian a varios registros de la otra.
Para ello es necesario definir una tercera tabla intermedia para
establecer primero dos relaciones 1 a n y poder vincular
correctamente las dos tablas principales.

Usualmente la Primary Key de la tercera tabla intermedia será una


clave Compuesta o Composite key de las Primary Key de las dos
tablas principales y a través de dichas claves formará dos Foreign Key
a cada tabla con la que establece relación. Además, esta tercera tabla
aparte de establecer las relaciones intermedias, también podrá
guardar información adicional como por ejemplo información de
auditoría u otros datos importantes del establecimiento de la relación.

En este ejemplo podemos ver como se establece una relación n a n entre


la tabla alumnos y asignaturas ya que los alumnos pueden tener varias
asignaturas y las asignaturas pueden tener varios alumnos.

Vemos que para establecer dicha relación se necesita una tercera tabla
intermedia llamada asignaturasAlumnos que además guarda información
adicional como la fecha en la que un alumno determinado se matricula de
una asignatura específica.

Observamos igualmente que la Primary Key de la tabla


asignaturasAlumnos es la concatenación
de idAlumnos e idAsignaturas dando lugar a una CompositeKey. A
su vez idAlumnos forma la ForeignKey que se relaciona con la tabla
alumnos e idAsignaturas la ForeignKey vinculada a la tabla
asignaturas.

También podría gustarte