Published on

December 30, 2019

Comprendiendo las claves foráneas en SQL Server

En el artículo anterior, discutimos el concepto de las claves primarias (PK) en SQL Server. En este artículo, profundizaremos en el concepto de las claves foráneas (FK) y exploraremos cómo están relacionadas con las claves primarias. Comprender las claves foráneas es crucial para construir una base sólida en la teoría de bases de datos.

¿Qué es una clave foránea?

Una clave foránea es un atributo, o una combinación de atributos, en una tabla que está directamente relacionado con la clave primaria de otra tabla. Establece una relación entre dos tablas, donde el atributo en una tabla (llamada tabla hija) está vinculado al atributo de clave primaria en otra tabla (llamada tabla referenciada). La clave foránea asegura que el valor almacenado en el atributo de la tabla hija siempre sea un valor válido de la clave primaria de la tabla referenciada.

Por ejemplo, consideremos dos tablas: “país” y “ciudad”. Ambas tablas tienen un atributo llamado “id” como su clave primaria. En la tabla “ciudad”, hay un atributo adicional llamado “country_id” que sirve como clave foránea. Esta clave foránea establece una relación entre la tabla “ciudad” y la tabla “país”, indicando que el valor almacenado en el atributo “country_id” debe ser un valor válido del atributo “id” en la tabla “país”.

¿Cómo se almacenan/definen las claves foráneas en la base de datos?

Las claves foráneas se almacenan y definen en la base de datos utilizando restricciones específicas. Al crear una clave foránea, se pueden especificar varias propiedades como replicación, hacer cumplir la restricción de clave foránea, regla de eliminación y regla de actualización.

Por ejemplo, al definir una relación de clave foránea entre las tablas “ciudad” y “país”, se puede establecer la regla de eliminación en “Sin acción”. Esto significa que si intentas eliminar una fila de la tabla “país” que tiene registros relacionados en la tabla “ciudad”, la eliminación se evitará para mantener la integridad referencial.

Aquí tienes un ejemplo de cómo se define una clave foránea en SQL Server:

ALTER TABLE [dbo].[ciudad]
ADD CONSTRAINT [ciudad_pais] FOREIGN KEY ([country_id]) REFERENCES [dbo].[país] ([id])

¿Qué hace realmente una clave foránea?

Una clave foránea realiza varias comprobaciones importantes para garantizar la integridad de los datos:

  • Cuando se agrega una fila a una tabla, el/los atributo(s) incluido(s) en la clave foránea deben tener un valor correspondiente en la tabla referenciada. Esto asegura que la relación entre las dos tablas se mantenga.
  • Si se agrega un valor al atributo de la clave foránea que no existe en la tabla referenciada, se producirá un error, lo que evitará la inserción de datos inconsistentes.
  • Cuando se eliminan datos de la tabla referenciada, la restricción de clave foránea evita la eliminación si hay registros relacionados en la tabla hija. Esto asegura que se mantenga la integridad de los datos y se eviten registros huérfanos.

Por ejemplo, si intentas eliminar un país de la tabla “país” que aún tiene ciudades asociadas, la restricción de clave foránea evitará la eliminación para evitar dejar ciudades huérfanas sin un país válido.

Conclusión

Las claves foráneas desempeñan un papel crucial en el establecimiento de relaciones entre tablas en una base de datos de SQL Server. Garantizan la integridad de los datos y mantienen la integridad referencial entre tablas relacionadas. Comprender las claves foráneas es esencial para diseñar una base de datos bien estructurada y confiable.

En futuros artículos, exploraremos temas más avanzados relacionados con las claves foráneas, como diferentes tipos de relaciones, integridad referencial e índices.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.