Cómo crear claves externas en Microsoft SQL Server

Uno de los conceptos más importantes en las bases de datos es crear relaciones entre las tablas de la base de datos. Estas relaciones proporcionan un mecanismo para vincular datos almacenados en varias tablas y recuperarlos de manera eficiente.

Uno de los conceptos más importantes en las bases de datos es crear relaciones entre las tablas de la base de datos. Estas relaciones proporcionan un mecanismo para vincular datos almacenados en varias tablas y recuperarlos de manera eficiente. Para crear un enlace entre dos tablas, debe especificar una clave foránea en una tabla que haga referencia a una columna en otra tabla.

Tablas de base de datos y relaciones

Es posible que ya sepa que las bases de datos son simplemente una serie de tablas, similares a las que ya podría usar en un programa de hoja de cálculo, como Microsoft Excel. De hecho, incluso puede convertir una hoja de cálculo de Excel en una base de datos. Sin embargo, cuando las bases de datos difieren de las hojas de cálculo es cuando se trata de construir relaciones poderosas entre tablas.
Considere, por ejemplo, una base de datos utilizada por una empresa para rastrear información de recursos humanos. Esa base de datos puede tener una tabla llamada Empleados que contiene la siguiente información para cada miembro del personal de la compañía:

  • ID de empleado
  • Primer nombre
  • Apellido
  • Telefono de oficina
  • Teléfono de casa
  • ID de posición

En este ejemplo, la ID del empleado es un número entero generado de forma exclusiva que se asigna a cada empleado cuando se agregan a la base de datos. La ID de posición es un código de trabajo utilizado para hacer referencia a la posición del empleado en la empresa. En este esquema, un empleado solo puede tener un puesto, pero varios (o ningún) empleado pueden ocupar cada puesto. Por ejemplo, puede tener cientos de empleados con un puesto de «Cajero».
La base de datos también puede contener una tabla llamada Posiciones con la siguiente información adicional sobre cada puesto:

  • ID de posición
  • Título
  • Nivel de trabajo
  • SkillCategory
  • Ubicación

El campo ID de posición en esta tabla es similar al campo ID de empleado en la tabla Empleados: es un entero generado de forma única que se crea cuando se agrega una posición a la base de datos.
Cuando vamos a extraer una lista de empleados de la base de datos, sería natural solicitar el nombre de cada persona y su título. Sin embargo, esta información se almacena en varias tablas de la base de datos, por lo que solo se puede recuperar mediante una consulta JOIN que requiere una relación existente entre las tablas.
Cuando observa la estructura de las tablas, el campo que define la relación es probablemente obvio: el campo ID de posición. Cada empleado puede tener solo una posición y esa posición se identifica mediante la inclusión de la ID de posición de la entrada correspondiente de la tabla de Posiciones. Además de ser la clave principal para la tabla de Posiciones, en este ejemplo, el campo ID de posición también es una clave externa de la tabla de Empleados a la tabla de Posiciones. La base de datos puede usar este campo para correlacionar información de múltiples tablas y garantizar que cualquier cambio o adición a la base de datos continúe imponiendo integridad referencial.

Una vez que haya identificado la clave externa, puede continuar y extraer la información deseada de la base de datos mediante la siguiente consulta:

 SELECCIONAR Nombre, Apellido, Título 
DESDE Empleados ENTRAR INTERNO Posiciones
EN Empleados.PosiciónID = Posiciones.PosiciónID

Crear claves foráneas en SQL Server

Técnicamente, no necesita definir la relación explícitamente para poder realizar consultas como la anterior. Sin embargo, si define explícitamente la relación utilizando una restricción de clave externa, la base de datos podrá realizar algunos trabajos de limpieza por usted:

  • Cuando agrega un nuevo registro a la tabla Empleados, la base de datos se asegurará de que la ID de posición que ingrese sea una clave principal válida en la tabla Posiciones.
  • Si cambia una ID de posición en la tabla de Posiciones, la base de datos puede realizar las actualizaciones requeridas a la tabla de Empleados para mantener la coherencia.
  • La base de datos puede proteger contra el impacto de la eliminación de una posición de la tabla de posiciones al negarse a eliminar una posición con las entradas correspondientes de los empleados o al realizar una eliminación en cascada de todos los empleados relacionados.

A continuación, le mostramos cómo crearía la clave externa en SQL Server:

 ALTERAR TABLA Empleados 
AGREGAR CLAVE EXTRANJERA (PositionID)
REFERENCIAS Posiciones (PositionID)

También puede crear una clave externa cuando cree una tabla agregando la cláusula:

 REFERENCIAS CLAVE EXTRANJERAS Posiciones (PositionID) 

hasta el final de la definición de columna para la columna de clave externa.

Rate article
labsfabs.com
Add a comment