Diferencia entre clave primaria y clave foránea
Tema: tecnología.
La clave primaria es el campo, o conjunto de campos, que identifica de forma única cada fila de una tabla; la clave foránea es un campo que apunta a la clave primaria de otra tabla (o de la misma) para establecer una relación entre ambas.
La clave primaria vive «dentro» de su tabla y no admite repeticiones; la clave foránea «mira hacia afuera», y sus valores sí pueden repetirse tantas veces como filas se relacionen con el mismo registro.
Tabla comparativa: clave primaria y clave foránea
| Clave primaria | Clave foránea | |
|---|---|---|
| Qué es | Identificador único de cada fila dentro de su propia tabla. | Campo que referencia la clave primaria de otra tabla. |
| Unicidad | Obligatoriamente única; no puede repetirse en dos filas. | Puede repetirse en varias filas de su tabla. |
| Valores nulos | Nunca puede ser nula. | Puede ser nula si la relación es opcional. |
| Función | Identificar sin ambigüedad un registro dentro de su tabla. | Vincular un registro con el de otra tabla relacionada. |
| Ejemplo | El campo «id» de una tabla de clientes. | El campo «cliente_id» en una tabla de pedidos. |
Qué es la clave primaria
La clave primaria es el campo, o la combinación de campos, elegido para que ningún valor se repita entre las filas de una tabla y ninguna fila quede sin valor en ese campo. Gracias a esa doble condición —unicidad y obligatoriedad— cualquier fila de la tabla puede localizarse sin ambigüedad a partir de su clave primaria, sin necesidad de comparar el resto de los datos.
Lo habitual es usar un número autogenerado, como un identificador entero que aumenta con cada fila nueva, aunque también puede usarse un dato ya único por naturaleza, como un número de documento de identidad.
Qué es la clave foránea
La clave foránea es un campo de una tabla cuyo valor debe coincidir con el de la clave primaria de otra tabla (o, en casos de jerarquías, de la misma tabla). Su función es enlazar dos tablas relacionadas: por ejemplo, que cada pedido «sepa» a qué cliente pertenece, sin necesidad de repetir todos los datos de ese cliente dentro de la tabla de pedidos.
A diferencia de la clave primaria, una clave foránea sí puede repetirse: es normal que un mismo cliente aparezca como valor de la clave foránea en varios pedidos distintos. También puede permitir valores nulos, si el sistema admite que un registro exista sin estar todavía vinculado a otro.
Ejemplos que muestran la diferencia
En una tabla de clientes, el campo «id» es la clave primaria: cada cliente tiene un número distinto y ninguno se repite.
En una tabla de pedidos, el campo «cliente_id» es una clave foránea que apunta al «id» de la tabla de clientes, y puede repetirse si el mismo cliente hace varios pedidos.
Una tabla de empleados puede tener una clave foránea «jefe_id» que apunta a la clave primaria de esa misma tabla, para representar quién supervisa a quién.
Cuándo usar cada término
- Usa clave primaria al hablar de cómo se identifica de forma única cada registro dentro de una tabla.
- Usa clave foránea al hablar de cómo se conectan los datos de dos tablas distintas en una base de datos relacional.
- Recuerda que una clave foránea siempre debe coincidir con un valor existente de una clave primaria (o quedar nula, si se permite); esa regla es la que mantiene la coherencia entre las tablas.
Preguntas frecuentes
¿Puede una tabla tener más de una clave foránea?
Sí. Una tabla puede tener varias claves foráneas si se relaciona con varias tablas distintas; una tabla de pedidos, por ejemplo, puede tener una clave foránea hacia clientes y otra hacia empleados.
¿Puede una clave foránea ser nula?
Depende del diseño de la base de datos: si la relación es opcional, sí puede quedar nula; si la relación es obligatoria, el sistema exige que siempre tenga un valor válido.
¿Qué es la integridad referencial?
Es la regla que garantiza que toda clave foránea apunte a un valor que realmente existe como clave primaria en la otra tabla, evitando registros «huérfanos» que hagan referencia a datos inexistentes.