¿Qué es una clave externa de base de datos? Los diseñadores de bases de datos hacen un amplio uso de las claves al desarrollar bases de datos relacionales. Entre las más comunes de estas claves se encuentran las claves primarias y las claves externas. Una clave externa de base de datos es un campo de una tabla relacional que coincide con la columna de clave primaria de otra tabla. Para entender cómo funciona una clave externa, echemos un vistazo más de cerca a la idea de una base de datos relacional.
Algunos fundamentos de las bases de datos relacionales
En una base de datos relacional, los datos se almacenan en tablas que contienen filas y columnas, lo que facilita la búsqueda y manipulación de los mismos.
Con fines prácticos (y no matemáticos), una base de datos relacional almacena los datos relacionados en filas y columnas. Además – y aquí es donde se pone interesante – la mayoría de las bases de datos están diseñadas para que los datos de una tabla puedan acceder a los datos de otra tabla. Esta capacidad de crear relaciones entre tablas es el poder real de una base de datos relacional.
Uso de claves externas
La mayoría de las tablas, especialmente las de bases de datos grandes y complejas, tienen claves primarias. Las tablas que están diseñadas para acceder a otras tablas también deben tener una clave externa.
Para utilizar la base de datos de Northwinds, aquí hay un extracto de una tabla de Productos:
ProductoIDNombre del productoCategoríaIDQuantityPerUnitPrice1Chai110 cajas x 20 bolsas18.002Chang124 – botellas de 12 oz19.003Jarabe anisado212 – botellas de 550 ml10.004Chef Anton’s Cajun Seasoning248 – 6 oz frascos22.005Chef Anton’s Gumbo Mix236 cajas21.356Grandma’s Boysenberry Spread212 – 8 oz frascos25.007Uncle Bob’s Organic Dried Pears712 – 1 lb pkgs.30.00 Extracto de la tabla de productos de la base de datos Northwind
La columna ProductID es la clave principal de esta tabla. Asigna un ID único a cada producto.
Esta tabla también contiene una columna de clave externa, CategoryID . Cada producto de la tabla Producto enlaza con una entrada de la tabla Categorías que define la categoría de ese producto.
Note este extracto de la tabla Categorías de la base de datos:
CategoríaIDCategoríaNombreDescripción1BebidasBebidas, cafés, tés, cervezas y ales2CondimentosSalsas dulces y saladas, condimentos, condimentos y condimentos3ConfiturasPostres, caramelos y mollejas5Productos lácteosQuesosBases de datos de la base de datos de viento del norte Extracto de la tabla
La columna CategoryID es la clave principal de esta columna. (No tiene clave externa porque no necesita acceder a otra tabla.) Cada clave externa de la tabla Producto enlaza con una clave primaria de la tabla Categorías. Por ejemplo, al producto Chai se le asigna la categoría «Bebidas», mientras que el jarabe de anís se encuentra en la categoría Condimentos.
Este tipo de enlace crea una miríada de maneras de usar y reutilizar datos en una base de datos relacional.