Relaciones en SQL: una guía completa con ejemplos

En este artículo, vamos a echar un vistazo más de cerca a las relaciones de SQL Server, incluidas las relaciones de uno a uno, de muchos a muchos y de muchos a uno, y profundizaremos en los detalles para crearlas usando dbForge. Estudio para SQL Server.

Las relaciones establecidas en la base de datos le permiten crear estructuras de tabla claras y ayudar a reducir al mínimo los datos redundantes. La creación de enlaces efectivos en la base de datos es muy importante: ayuda a garantizar la integridad de la referencia, lo que a su vez ayuda a normalizar la base de datos.

En las bases de datos, existen cinco tipos de relaciones: uno a uno, uno a muchos, muchos a uno, muchos a muchos y autorreferenciales. Entonces, ¿cuál es la diferencia entre estos tipos de relaciones de bases de datos? En el artículo consideraremos cada tipo por separado y daremos un ejemplo práctico de su uso.

TABLA DE CONTENIDO
¿Qué es una relación de base de datos?
Tipos de relaciones en la base de datos.
Relaciones de uno a muchos
Relación entre sí
Las actitudes son muchas a muchas
Las relaciones son de muchos a uno.
Relaciones relacionadas con uno mismo
Cree tablas de relaciones en SQL Server usando SQL Designer
Cómo ver las relaciones de tablas en SQL Server

Índice

    ¿Qué es una relación de base de datos?

    Comencemos con alguna terminología básica.

    Plazo relación a veces se usa para hacer referencia a una tabla en una base de datos relacional. Sin embargo, se usa más comúnmente para describir las relaciones que existen entre tablas en una base de datos relacional.

    A relación entre dos tablas de base de datos asume que una tiene una clave externa que hace referencia a la clave principal de la otra tabla.

    Asunto de la base de datos—En sentido estricto, es una persona, lugar, cosa, objeto o cualquier elemento, cuyos datos se almacenan en la base de datos. Sin embargo, este término se usa comúnmente para referirse a una tabla de base de datos porque las tablas son esencialmente implementaciones físicas de objetos.

    Un El diagrama esencia-conexión, también conocido como ERD, gráfico ER o modelo ER, contiene una representación gráfica de cómo los sujetos se relacionan entre sí en una base de datos.
    Los modelos ER se usan ampliamente en el desarrollo de bases de datos porque son bastante abstractos y fáciles de ver y analizar.

    Echemos un vistazo al diagrama de relación de entidades de la base de datos de BicycleStore usando la herramienta Diagrama de base de datos que viene con dbForge Studio para SQL Server.

    Tipos de relaciones en la base de datos.

    Hay 3 tipos principales de relaciones en una base de datos:

    • el uno al otro
    • uno a muchos
    • muchos a muchos.

    Sin embargo, también puede encontrar referencias a relaciones de "muchos a uno", que son esencialmente un caso especial de relaciones e interrelaciones de "uno a muchos" que surgen cuando solo se trata de una tabla.

    Echemos un vistazo más de cerca a cada tipo de relación y consideremos las características de construir relaciones en SQL.

    Relaciones de uno a muchos

    Comencemos con las relaciones de uno a muchos, ya que este es el tipo más utilizado. Entonces, ¿cuál es la relación de uno a muchos en SQL? Una relación de uno a muchos ocurre cuando un registro en la Tabla 1 está vinculado a uno o más registros en la Tabla 2. Sin embargo, un registro en la Tabla 2 no puede vincularse a más de un registro en la Tabla 1. Podemos llegar a cientos de ejemplos de tales relaciones: las páginas y el libro al que pertenecen, los alumnos y su clase, los pedidos y el cliente que los hizo, etc.

    ¿Cómo conectar tablas con relaciones de uno a muchos en SQL? Los INNER JOIN se consideran la forma más eficiente de combinar datos de dos tablas que relacionan uno con muchos. Consultemos dos tablas SQL que se relacionan entre sí.

    SELECT
      *
    FROM country c
    INNER JOIN city c1
      ON c.country_id = c1.country_id

    Un ejemplo de una relación de uno a muchos en SQL Server

    Cómo implementar relaciones de uno a muchos al desarrollar una base de datos:

    1. Cree dos tablas (Tabla 1 y Tabla 2) con sus propias claves principales.
    2. Agregue una clave externa a la columna de la Tabla 1 en función de la clave principal de la Tabla 2. Esto significará que la Tabla 1 puede tener uno o más registros asociados con un solo registro en la Tabla 2.

    Paso 1

    CREATE TABLE dbo.city (
      city_id int IDENTITY,
      city varchar(50) NOT NULL,
      country_id int NOT NULL,
      CONSTRAINT PK_city PRIMARY KEY CLUSTERED (city_id)
    )
    ON [PRIMARY]
    GO
    
    
    CREATE TABLE dbo.country (
      country_id int IDENTITY,
      country varchar(50) NOT NULL,
      CONSTRAINT PK_country PRIMARY KEY CLUSTERED (country_id)
    )
    ON [PRIMARY]
    GO

    Paso 2

    ALTER TABLE dbo.city WITH NOCHECK
      ADD FOREIGN KEY (country_id) REFERENCES dbo.country (country_id)
    GO

    Relación entre sí

    La relación entre sí en la base de datos ocurre cuando cada fila en la Tabla 1 tiene solo una fila relacionada en la Tabla 2. Por ejemplo, un departamento puede tener solo un jefe, un esposo, solo una esposa, un empleado, un automóvil de la empresa, etc. .

    Ejemplo de relación entre sí en SQL:

    Implementar una relación con los demás.

    ¿Cómo construir relaciones entre sí en SQL Server? Para hacer esto, deberá crear dos tablas, luego definir una relación de clave externa primaria simple entre ellas y establecer la columna de clave externa como única.

    CREATE TABLE Employee (
      ID int PRIMARY KEY,
      Name VARCHAR(50)
    );
    
    CREATE TABLE Salary (
      EmployeeID int UNIQUE NOT NULL,
      SalaryAmount int
    );
    
    ALTER TABLE Salary
    ADD CONSTRAINT FK_Salary_Employee FOREIGN KEY (EmployeeID)
    REFERENCES Employee (ID);

    Las actitudes son muchas a muchas

    Una relación de "muchos a muchos" surge cuando múltiples registros en una tabla están vinculados a múltiples registros en otra tabla. Por ejemplo, productos y proveedores: un proveedor puede suministrar uno o más productos y, al mismo tiempo, una empresa puede pedir un producto a uno o más proveedores.

    Un ejemplo de la relación de muchos a muchos en SQL:

    La relación entre el objeto "Producto" y la entidad "Pedido" es "muchos a muchos", ya que un producto puede estar en muchos pedidos y muchos pedidos pueden contener el mismo producto.

    Un ejemplo de construcción de relaciones es muchos a muchos en SQL

    Las bases de datos relacionales no admiten relaciones directas entre las dos tablas. Entonces, ¿cómo implementar una relación de muchos a muchos en SQL? Para crear muchas relaciones con muchas en una base de datos, debe crear una tercera tabla para conectar las otras dos. Esta nueva tabla (también conocida como Enlaces, unión, superación, o desenlace table) contendrá las columnas de clave principal de las dos tablas que desea vincular y servirá como una tabla intermedia entre ellas.

    Consideremos el siguiente ejemplo de cómo construir relaciones de muchos a muchos en SQL. Digamos que queremos establecer una relación de "muchos a muchos" entre dos tablas: películas y categoría. Primero creamos dos tablas.

    CREATE TABLE films (
      film_id INT PRIMARY KEY
     ,title VARCHAR(50)
     ,director VARCHAR(50)
     ,year_released DATETIME
    );
    
    
    CREATE TABLE category (
      category_id INT PRIMARY KEY
     ,name VARCHAR(50)
    );
    

    A continuación, cree una tabla de vínculos categoría_película que mostrará estas dos tablas juntas, en referencia a las claves principales de ambas tablas.

    CREATE TABLE film_category (
      film_id INT
     ,category_id INT
     ,CONSTRAINT film_cat_pk PRIMARY KEY (film_id, category_id)
     ,CONSTRAINT FK_film
      FOREIGN KEY (film_id) REFERENCES films (film_id)
     ,CONSTRAINT FK_category
      FOREIGN KEY (category_id) REFERENCES category (category_id)
    );

    Se ha establecido con éxito una relación de "muchos a muchos" entre las películas y las tablas de categorías.

    Las relaciones son de muchos a uno.

    Muchos expertos no destacan la relación “muchos a uno” como una clase separada porque no hay mucha diferencia entre las relaciones “uno a muchos” y “muchos a uno”. Es solo una cuestión de concentración. Por ejemplo, si una clase de la escuela puede constar de varios estudiantes, entonces la relación entre la clase y el estudiante es una relación de uno a muchos (una clase consta de muchos estudiantes), mientras que la relación entre el estudiante y la clase es de muchos a uno (muchos estudiantes). los estudiantes estudian en una clase).

    Ejemplo de una relación uno a uno en SQL:

    Relaciones relacionadas con uno mismo

    Una auto-relación (también conocida como relación recursiva) en una base de datos ocurre cuando una columna en una tabla está vinculada a otra columna en la misma tabla. Solo una tabla está involucrada en tal relación. por ejemplo, en Personal la tabla contiene información sobre los empleados de la empresa y sus gerentes, pero el personal incluye a los propios gerentes.

    Ejemplo de relación en SQL:

    Cómo crear una relación de relación en una base de datos de SQL Server

    Para establecer una relación con una referencia en una tabla, creamos una tabla, definimos una clave principal y luego agregamos una clave externa que hace referencia a esa clave principal.

    CREATE TABLE Sales.Staff (
      StaffId int IDENTITY,
      FirstName varchar(50) NOT NULL,
      LastName varchar(50) NOT NULL,
      Email varchar(255) NOT NULL,
      Phone varchar(25) NULL,
      Active tinyint NOT NULL,
      StoreId int NOT NULL,
      ManagerId int NULL,
      PRIMARY KEY CLUSTERED (StaffId),
      UNIQUE (Email)
    )
    ON [PRIMARY]
    GO
    
    
    ALTER TABLE Sales.Staff
      ADD FOREIGN KEY (ManagerId) REFERENCES Sales.Staff (StaffId)
    GO

    Para obtener más información sobre cómo establecer relaciones en una base de datos, consulte "Fundamentos del diseño de bases de datos SQL con ejemplos".

    Cree tablas de relaciones en SQL Server usando SQL Designer

    Los métodos descritos anteriormente para determinar las relaciones en una base de datos de SQL Server no son tan simples ni directos. Implican un poco de codificación y requieren un cierto nivel de conocimiento de SQL. ¿Hay una manera más fácil de construir una relación? Echemos un vistazo a cómo implementar relaciones visualmente, usando SQL Designer que viene con dbForge Studio para SQL Server.

    Base de datos Designer es una utilidad inteligente de modelado de datos que le permite crear visualmente nuevas bases de datos y analizar rápidamente las estructuras existentes. Entonces, con dbForge Studio para SQL Server, puede diseñar sin esfuerzo sus bases de datos tanto a nivel lógico como físico y aprovechar estas características:

    • Arrastre objetos de la base de datos desde el Explorador de la base de datos directamente al gráfico
    • Crear y editar objetos de base de datos en un gráfico
    • Agrupe los objetos del gráfico en contenedores para una mejor visibilidad
    • Establecer relaciones entre los actores.
    • Seguir las relaciones lógicas entre las tablas.
    • Ingeniería de base de datos inversa
    • Exportar gráficos de bases de datos como imágenes
    • Imprimir grandes gráficos de bases de datos SQL
    • Agregue notas, sellos e imágenes al gráfico

    Cómo ver las relaciones de tablas en SQL Server

    Comprender y evaluar las relaciones de las tablas en una base de datos es importante en cada etapa del desarrollo de la base de datos, desde el diseño hasta el mantenimiento. dbForge Studio para SQL Server le permite visualizar y realizar un seguimiento de las relaciones entre las tablas con unos pocos clics. Con Virtual Relations Manager puede crear y editar relaciones virtuales entre tablas y luego convertirlas en claves externas.

    Conclusión

    El artículo analiza los diferentes tipos de relaciones de esencia en una base de datos: relaciones entre sí, uno a muchos, muchos a uno, muchos a muchos y relaciones que se relacionan con uno mismo. Manejar una relación con una base de datos con las manos desnudas puede ser un desafío increíble. Aquí es donde entra en juego dbForge Studio para SQL Server, que proporciona una poderosa herramienta de gráficos de bases de datos que maneja de manera eficiente incluso las relaciones de bases de datos más complejas.

    ¡Descargue la versión de prueba gratuita de 30 días de dbForge Studio para SQL Server ahora mismo y disfrute de la funcionalidad de Base de datos Designer junto con muchas otras características confiables de la mejor herramienta GUI de SQL Server que puede encontrar!

    Artículos de interés

    Subir