Relaciones en Bases de datos Relacionales (SQL)

Tipos de Relaciones y sus propiedades en SQL

Los diseños de la base de datos están estrechamente relacionados con las relaciones de la base de datos, la asociación entre dos columnas en una o más tablas. Los tipos de relaciones no deben confundirse con los tipos de datos en SQL, siendo conceptos distintos.

Las relaciones se definen sobre la base de columnas de clave coincidentes.

En SQL, estas relaciones se definen utilizando restricciones de clave principal a clave externa.

Se crea un enlace entre dos tablas donde la clave principal de una tabla se asocia con la clave externa de otra tabla utilizando las relaciones de la base de datos.

Cardinalidad

La cardinalidad es una restricción en una relación que especifica el número de instancias de entidad que una entidad específica puede estar relacionada a través de la relación. 

Cuando preguntamos ¿Cuántos empleados pueden trabajar en un solo departamento? 
¿en qué departamentos puede trabajar un empleado? estamos haciendo preguntas con respecto a la cardinalidad de la relación.

Las tres clasificaciones son: uno a uno, uno a muchos y muchos a muchos.

A continuación, el diagrama muestra una relación entre las líneas de pedidos y los clientes.

diagrama er

La "n" representa un "número arbitrario de instancias", y el "1" representa "como máximo uno".

Interpretamos las especificaciones de cardinalidad con la siguiente regla comercial:


La "n" indica que la misma entidad de pedidos se puede especificar a cualquier número de pedidos.

El "1" indica que una entidad de cliente especifica a lo más un Pedido.

Mapeo de cardinalidades

La cardinalidad define la cantidad de entidades en un conjunto de entidades, que pueden asociarse con el número de entidades de otro conjunto a través del conjunto de relaciones.

Uno a uno

Una entidad del conjunto de entidades A puede asociarse con a lo sumo una entidad del conjunto de entidades B y viceversa.

Uno a muchos

Una entidad del conjunto de entidades A puede asociarse con más de una entidad del conjunto de entidades B, sin embargo, una entidad del conjunto de entidades B puede asociarse con, como máximo,a una entidad.

Las relaciones uno-a-uno tienen 1 especificado para ambas cardinalidades, y no parecen surgir muy a menudo. Para ilustrar un uno-a-uno, requerimos reglas comerciales muy específicas.

Supongamos que tenemos personas y vehículos. Supongamos que solo nos preocupamos por el conductor actual de un vehículo, y que solo nos preocupa el vehículo actual que el conductor está conduciendo. Entonces, tenemos una relación uno-a-uno entre Vehículo y Persona.

Muchos a uno

Más de una entidad del conjunto de entidades A puede asociarse como máximo con una entidad del conjunto de entidades B, sin embargo, una entidad del conjunto de entidades B puede asociarse con más de una entidad del conjunto de entidades A.

Una entidad de A puede asociarse con más de una entidad desde B y viceversa.

Este tipo de relación tiene 1 y n especificado para sus cardinalidades, y es muy común en diseños de bases de datos. Supongamos que tenemos clientes y pedidos y las reglas comerciales:

  • una orden está relacionada con un cliente
  • un cliente puede tener cualquier número (cero o más) de pedidos.

Decimos que hay una relación uno a muchos entre el cliente y el pedido, y dibujamos esto como:

cliente pedido

Relación de muchos a muchos

Las relaciones de muchos a muchos tienen "muchos" especificados para ambas cardinalidades, y también son muy comunes.

Sin embargo, si examina un modelo de datos en algún negocio, es muy probable que no vea ninguna relación de muchos a muchos en el diagrama. En esos casos, el modelador de datos ha resuelto las relaciones de muchos a muchos en dos relaciones uno a muchos.

Supongamos que estamos interesados en cursos y estudiantes y el hecho de que
los estudiantes se inscriben en los cursos: cualquier estudiante puede tomar varios cursos, un curso puede ser tomado por varios estudiantes.

Esta situación se representa con una relación de muchos a muchos
entre curso y estudiante:

cursos estudiante

Conjunto de relación

Un conjunto de relaciones de tipo similar se denomina conjunto de relaciones. Al igual que las entidades, una relación también puede tener atributos. Estos atributos se llaman atributos descriptivos.

Grado de relación

El número de entidades participantes en una relación define el grado de la relación.

Binario = grado 2
Ternario = grado 3
n-ario = grado n

Símbolos de relación

Dentro de los diagramas de entidad-relación, las relaciones se usan para documentar la interacción entre dos entidades. Las relaciones suelen ser verbos, como asignar, asociar o realizar, y proporcionan información útil que no se puede discernir solo con los tipos de entidad.

Relaciones de identificación

Relación débil

Las relaciones débiles son conexiones entre una entidad débil y su propietario.

Una relación de identificación es una relación entre un tipo de entidad fuerte y una débil, donde se requiere la clave del tipo de entidad fuerte para identificar de manera única las instancias del tipo de entidad débil. El tipo de entidad débil tendrá un atributo de clave parcial (discriminador) que, junto con la clave del tipo de entidad fuerte, identifica de forma única a la entidad débil.

relacion débil

Relaciones no identificativas

Una relación no identificativa es una relación entre tipos de entidades fuertes. Cada entidad tipo tiene una clave especificada, cada entidad tiene un atributo que lo identifica de manera única y lo distingue de cualquier otra instancia en el conjunto de entidad o extensión correspondiente.

Relaciones recursivas

La recursión en un modelo de datos es un tema especialmente difícil. Decimos que tenemos un una relación ecursiva si el mismo tipo de entidad aparece más de una vez en una relación. Estas relaciones parecen ocurrir siempre en algún lugar en un modelo de datos de tamaño regular a grande. Un típico ejemplo de negocios surge cuando tenemos una regla comercial como "un empleado supervisa otros empleados ".

empleado suervisa