¿Qué es una clave externa?

Las bases de datos están compuestas por tablas en las que se almacenan datos o información. Una clave externa es un mecanismo en una base de datos relacional que permite la asociación de esas tablas, o que las tablas tengan una relación entre sí. Hay características únicas que debe tener una clave externa. Debe ser una columna o un grupo de columnas en una tabla cuyos valores establezcan una relación con valores en otra tabla dentro de la misma base de datos.

Una clave externa garantiza que las filas de una tabla se correspondan con las filas de otra tabla, lo que establece relaciones o referencias en toda la base de datos. La tabla que contiene la clave externa es el «hijo» y la otra tabla es el «padre». Es posible que el valor de una clave externa sea nulo o vacío y que realmente haga referencia o se relacione con lo que se conoce como la clave principal de la tabla en la que se encuentra. Esto se conoce como autorreferencia.

Uno debe tener una buena comprensión de lo que es una clave primaria antes de intentar comprender completamente el concepto detrás de las claves externas. Por ejemplo, si hay dos tablas en una base de datos que almacenan información sobre libros publicados para un sitio web que vende libros, una tabla podría ser la tabla de editores y la otra la tabla de libros. La tabla de editores podría constar de dos columnas, una clave principal que siempre es única para cada registro y una columna de nombre de editor. Un mínimo de tres columnas conformarían la tabla de libros, conteniendo la clave principal o identificador único de cada libro, los títulos de los libros y una columna a través de la cual se establecería una relación con la tabla de editores. Esa columna sería la clave externa.

La clave principal para la tabla de editores podría ser algo como «pub_id» con valores de: P01, P02, P03, etc. Se establecería una relación con la tabla de libros si contuviera una columna de pub_id con los mismos valores. Esta sería la clave externa que relacionaría esta tabla secundaria con su tabla principal, la tabla de editores.

Sin embargo, una clave externa puede tener un nombre de columna diferente al de la clave principal a la que hace referencia. La comprensión sólida del funcionamiento de las claves primarias y externas es esencial para mantener la integridad referencial. Las bases de datos muy grandes que se componen de muchas tablas o que involucran una tabla de unión presentan más de un tipo de relación, lo que puede complicar la tarea de trabajar con claves externas.