1. Inicio
  2. Diferencias
  3. Clave primaria y clave foránea

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 primariaClave foránea
Qué esIdentificador único de cada fila dentro de su propia tabla.Campo que referencia la clave primaria de otra tabla.
UnicidadObligatoriamente única; no puede repetirse en dos filas.Puede repetirse en varias filas de su tabla.
Valores nulosNunca puede ser nula.Puede ser nula si la relación es opcional.
FunciónIdentificar sin ambigüedad un registro dentro de su tabla.Vincular un registro con el de otra tabla relacionada.
EjemploEl 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

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.

Ver también